유지보수 스크립트(maintenance scripts)는 다양한 관리, 가져오기, 유지보수, 보고 및 업그레이드 작업을 수행하는 데 사용됩니다. 이 스크립트는 PHP로 작성되었으며 미디어위키 설치의 maintenance 하위 디렉토리에 있습니다.
일반적인 쓰임새와 품질의 정도가 다른 수십 개의 스크립트가 있습니다. 그것을 사용하기 전에 스크립트의 설명서를 주의깊게 읽어야 합니다; 만약 스크립트가 문서화되어 있지 않으면, 그것을 실행하는 데 더 주의를 기울여야 합니다.
Configuration
$wgDBadminuser와 $wgDBadminpassword 구성 변수는 만약 Manual:$wgDBuser에서 구성된 사용자가 충분한 권한을 가지고 있지 않으면, (Manual:update.php와 같은) 데이터베이스의 구조를 변경해야 하는 유지보수 스크립트를 실행하기 위해 반드시 설정해야 합니다. 대안적으로, --dbuser와 --dbpass 매개변수를 스크립트에 전달할 수 있습니다. 이들 변수에 대해 값은 미디어위키의 설치에서 사용되도록 정한 데이터베이스 엔진에 따라 다릅니다. 만약 구성되지 않으면, 그것은 Manual:$wgDBuser에서 구성된 사용자를 사용할 것입니다.
MySQL
유지관리 스크립트의 일부는, 보안상의 이유로, 주요 미디어위키 데이터베이스 계정은 가져서는 안되는 데이터베이스 권한을 요구합니다. 단지 미디어위키 데이터베이스에 대해 '수퍼유저' 특권을 갖는 별도의 데이터베이스 계정은 (만약 아직 존재하지 않으면) 반드시 생성되어야 합니다. 만약 미디어위키에 사용하는 데이터베이스가 wikidb로 불리면, 다음 SQL은 localhost에서 수퍼유저 권한을 실행할 수 있는 그러한 사용자를 만들 것입니다:
- mysql -u root -p
MariaDB [(none)]> GRANT ALL PRIVILEGES ON wikidb.* TO 'wikidbadmin'@'localhost' IDENTIFIED BY 'strong-password';
한번 계정이 존재하면, 계정 이름은 $wgDBadminuser 구성 변수에서 설정되어야 합니다. 다른 구성 변수와 마찬가지로, $wgDBadminuser는 LocalSettings.php에 설정되어야 합니다. $wgDBadminuser에 대해 암호는 $wgDBadminpassword 구성 변수에서 설정되어야 합니다.
PostgreSQL
PostgreSQL은 MySQL과 다른 보안 모델을 사용하고 미디어위키 설치의 일상적인 작업에 사용되는 같은 PostgreSQL 서버 계정은 유지보수 스크립트를 실행하기 위해 역시 사용되어야 합니다. 이것은 유지보수 스크립트에 의해 생성된 새 테이블에 대해 소유자가 올바르게 설정되었는지 보중하기 위해 필요합니다. $wgDBadminuser 또는 $wgDBadminpassword를 전혀 설정할 필요가 없습니다.
Running the scripts
유지보수 스크립트는, 그런 다음, 반드시 명령 줄에서 실행해야 합니다. 터미널에서 직접 서버에 접근하지 못하는 사용자는 보통 ssh를 통해 연결을 설정할 수 있습니다. 리눅스/유닉스 사용자에 대해 이것은 쉘에서 ssh 클라이언트를 사용하는 것입니다. 윈도우 사용자에 대해 아래에 소개된 것과 같은 ssh 클라이언트 응용 프로그램의 사용은 요구됩니다.
Standard command-line options
디렉토리 /maintenance에서 거의 모든 각 PHP 스크립트는 몇 가지 표준 옵션을 지원합니다:
--help 도움말 메시지를 표시합니다 --conf <path> 만약 (스크립트의 부모 디렉토리인) 기본값이 아니면, LocalSettings.php의 위치 --dbuser <username> LocalSettings.php에 지정된 데이터베이스 계정 대신에 사용하기 위한 데이터베이스 계정, 데이터베이스 연결이 요구되지 않는 스크립트 또는 SQLite 데이터베이스 백엔드가 사용될 때 사용되지 않습니다. --dbpass <password> LocalSettings.php에 지정된 데이터베이스 암호 대신에 사용할 데이터베이스 암호, 데이터베이스 연결이 요구되지 않는 스크립트 또는 SQLite 데이터베이스 백엔드가 사용될 때 사용되지 않습니다. --globals 디버깅을 위한 처리 끝에서 전역 출력 --memory-limit <value> 스크립트에 대해 메모리 제한을 설정하기. 일반 숫자, 표준 php.ini 약어 (1024K, 20M, 1G), 제한이 없는 것에 대해 max (생략하면 기본적으로 사용될 것이며) 및 변경하지 않는 것에 대해 기본값을 허용합니다. (introduced in 1.17) --quiet 비-오류 출력 억제 --wiki <id> 위키 농장에 대해 위키 ID. 이것은 형태 dbname 또는 dbname-prefix일 수 있습니다. LocalSettings.php는 그에 따라 정의된 MW_DB 및 MW_PREFIX 상수와 함께 실행될 것입니다. --profiler 프로파일러 출력 형식 (보통 "텍스트"). (introduced in 1.22) --mwdebug 내장된 미디어위키 개발 설정을 활성화. (introduced in 1.31)
MediaWiki installs that use symlinks
미디어위키 php 파일이 중앙 설치와 심볼릭 링크되는 경우에서 유지관리 스크립트에 LocalSettings.php 파일의 경로를 지정하는 것이 필요할 것입니다. 예를 들어:
php maintenance/importImages.php --conf /var/wwwdata/website.org/wiki/LocalSettings.php /tmp/wikiimages .jpg .png .svg
그렇지 않으면 다음 오류가 발생할 것입니다:
A copy of your installation's LocalSettings.php
must exist and be readable in the source directory.
MediaWiki installs that use shared settings (family type)
때때로 미디어위키가 많은 언어에 대해 패밀리로 설치되고 설정 (LocalSettings.php)은 공통 부분과 언어 부분으로 분리됩니다 (Manual:Wiki family#Shared Settings을 참조하십시요). 여기서 공통 부분은 /w 디렉토리 외부에 위치하고 상대 링크를 사용하여 접근됩니다 (require_once "../ExtensionSettings.php";). 이 경우에서 유지보수 스크립트는 /w/maintenance 디렉토리에서 그들을 실행할 때 동작하지 않을 것입니다. 대신에 그들을 /w 디렉토리로부터 실행하십시오:
$ php maintenance/rebuildall.php
No shell access
많은 공유 호스트에서, 쉘 액세스를 가지지 못할 것입니다. 다음 확장은 웹을 통해 유지관리 스크립트를 실행하기 위해 유용할 수 있습니다: Extension:Maintenance 그리고 Extension:MaintenanceShell.