PříručkaːÚdržbářské skripty
Údržbářské skripty se používají pro různé administrativní úlohy, import dat, údržbu, generování reportů a také při aktualizaci. Jsou napsány v PHP a u nainstalované MediaWiki je najdete v podadresáři maintenance
.
Jsou to desítky skriptů, které mají různou kvalitu zpracování i užitnou hodnotu. Než nějaký skript použijete, tak byste si měli pozorně přečíst jeho dokumentaci. Pokud není řádně zdokumentován, nejprve ho řádně prostudujte, abyste věděli co udělá, dřív než ho spustíte.
Konfigurace
Aby bylo možné spouštět údržbářské skripty, které potřebují sáhnout na databázové schéma (jako např. Manuál:Update.php ) a udělat změny ke kterým uživatel nastavený v konfigurační proměnné Manual:$wgDBuser nemusí mít dostatečná práva, tak by měly být nastaveny také konfigurační proměnné $wgDBadminuser
a $wgDBadminpassword
. Obejdete se bez nich, pokud skriptu při spouštění na příkazové řádce předáte uživatele s těmito právy a jeho heslo přes parametry --dbuser a --dbpass. Předávaná hodnota, resp. hodnota těchto proměnných se může lišit, podle toho jakou databázi jste použili pro svou MediaWiki.
Alternatively, you can pass the --dbuser and --dbpass parameters to the script.
The values for these variables differ based on the database engine that is being used to power your installation of MediaWiki.
Pokud tyto proměnné nejsou nastavené, tak skript použije uživatele z $wgDBuser.
MySQL
Některé skripty údržby vyžadují databázová oprávnění, která by z bezpečnostních důvodů hlavní databázový účet MediaWiki neměl mít. Měl by být vytvořen samostatný databázový účet s oprávněními „superuživatele“ pouze pro databázi MediaWiki (pokud již neexistuje). Pokud se databáze, kterou používáte pro MediaWiki, nazývá wikidb
, pak by následující SQL vytvořit takového uživatele, který může vykonávat privilegia superuživatele na localhost .:
A separate database account with 'superuser' privileges for just the MediaWiki database should be created (if it does not already exist.)
If the database that you use for MediaWiki is called wikidb
, then the following SQL would create such a user who can exercise superuser privileges on localhost.:
GRANT ALL PRIVILEGES ON wikidb.* TO 'wikidbadmin'@'localhost' IDENTIFIED BY 'strong-password';
Jakmile účet existuje, měl by být název účtu nastaven v konfigurační proměnné $wgDBadminuser
. Stejně jako ostatní konfigurační proměnné by měl být $wgDBadminuser
nastaven na $2. V konfigurační proměnné $3 musí být nastaveno heslo pro $wgDBadminuser
.
Like other configuration variables, $wgDBadminuser
should be set in LocalSettings.php .
A password for $wgDBadminuser
must be set in the $wgDBadminpassword
configuration variable.
PostgreSQL
PostgreSQL používá jiný bezpečnostní model než MySQL a stejný serverový účet PostgreSQL používaný pro každodenní provoz instalace MediaWiki musí být také použit pro spouštění skriptů údržby. To je nezbytné k zajištění správného nastavení vlastníka nových tabulek vytvořených skripty údržby. Není třeba nastavovat $wgDBadminuser
nebo $wgDBadminpassword
.
This is necessary to ensure that the owner for new tables created by the maintenance scripts is set correctly.
You don't need to set $wgDBadminuser
or $wgDBadminpassword
at all.
Spouštění skriptů
Skripty údržby pak musí být spuštěny z příkazového řádku. Uživatelé, kteří nemají přístup k serveru přímo z jeho terminálu, obvykle naváží spojení pomocí ssh. Pro uživatele Linux / Unix je to pomocí ssh klienta ve shellu. For Windows users, one can use the SSH command line tool introduced in Windows 10 or alternatively use a third-party tool such as PuTTY shown below or use Windows Subsystem for Linux.
Požadovaný program pro uživatele Windows: PuTTY nebo jakýkoli emulátor terminálu
- Krok 1: Stáhněte a spusťte PuTTY, emulátor terminálu.

- Krok 2: Do pole PuTTy zadejte Hostitelský název (nebo IP adresu) IP Address vašeho webhostingového serveru (v případě potřeby kontaktujte poskytovatele webových stránek) a klikněte na Open.

- Krok 3: Objeví se obrazovka s příkazy. Na řádku přihlášení jako: zadejte uživatelské jméno FTP.
- Krok 4: Zadejte heslo FTP.
- Krok 5: Změňte aktuální adresář do podadresáře údržby (maintenance). Zadáním
pwd
zobrazíte složku, ve které se právě nacházíte. Složka údržby je v kořenové složce Mediawiki.
$ cd maintenance
- Krok 6: Spusťte skript údržby:
$ php rebuildall.php
- Pokud se zobrazí chyba (například: php.exe není platná aplikace Win32), zkuste následující:
$ php-cgi rebuildall.php
- Ve Windows je to příkaz:
$ C:\path\to\php\php-win.exe C:\path\to\mediawiki\maintenance\rebuildall.php
MW_INSTALL_PATH
tak, aby ukazovala na kořen vaší instalace MediaWiki. To pomůže skriptům najít potřebné soubory a je to zvláště důležité při spouštění skriptů údržby poskytovaných rozšířeními třetích stran.
Standardní možnosti příkazového řádku
Téměř každý skript PHP v /maintenance
podporuje několik standardních možností:
- --help
- Zobrazí zprávu nápovědy
- --conf <path>
- Umístění LocalSettings.php, není-li výchozí (v nadřazeném adresáři skriptu)
- --dbuser <username>
- Databázový účet, který se má použít namísto účtu uvedeného v LocalSettings.php. Nepoužívá se pro skripty, které nevyžadují připojení k databázi nebo pokud se používá backend databáze SQLite
- --dbpass <password>
- Heslo databáze, které se má použít místo hesla uvedeného v LocalSettings.php. Nepoužívá se pro skripty, které nevyžadují připojení k databázi nebo pokud je použito backend databáze SQLite
- --globals
- Výstup globálů na konci zpracování pro ladění
- --memory-limit <value>
- Nastavuje limit paměti pro skript. Přijímá běžná čísla, standardní zkratky php.ini (1024K, 20M, 1G),
max
bez omezení (ve výchozím nastavení bude použito, pokud bude vynecháno) adefault
beze změny. (zavedeno od 1.17) - --quiet
- Potlačí výstup bez chyb
- --wiki <id>
- Wiki ID pro wiki farmy. Může být ve formě
dbname
nebodbname-prefix
. LocalSettings.php bude spuštěn s konstantamiMW_DB
aMW_PREFIX
. - --profiler
- Výstupní formát profilu (obvykle „text“). (zavedeno od 1.22)
- --mwdebug
- Povolí vestavěné nastavení vývoje MediaWiki. (zavedeno od 1.31)
Instalace MediaWiki používající symlinks
V případech, kdy jsou soubory php MediaWiki sloučeny s centrální instalací, budete muset do skriptu údržby zadat cestu souboru LocalSettings.php. Například:
php maintenance/importImages.php --conf /var/wwwdata/website.org/wiki/LocalSettings.php /tmp/wikiimages .jpg .png .svg
Jinak se zobrazí tato chyba:
A copy of your installation's LocalSettings.php must exist and be readable in the source directory.
Instalace MediaWiki, které používají sdílená nastavení (typ rodiny)
Někdy je MediaWiki nainstalovaná jako rodina pro mnoho jazyků a nastavení (LocalSettings.php) je rozděleno na společné části a jazykové části (viz Příručka: Rodina Wiki # Sdílené nastavení ), kde je společná část umístěna mimo adresář /w a je k ní přístup pomocí relativního odkazu (require_once "../ExtensionSettings.php";
).
V takovém případě nebudou skripty údržby při spuštění v adresáři /w/maintenance fungovat.
Místo toho je spusťte z adresáře /w:
$ php maintenance/rebuildall.php
Žádný přístup do shellu
Na mnoha sdílených hostitelích nebudete mít přístup do shellu. Následující rozšíření mohou být užitečná pro spuštění skriptů údržby přes web: Maintenance a MaintenanceShell .
Přehled údržbářských skriptů
Místo tohoto pravděpodobně zastaralého seznamu
- Procházejte nejnovější obsah adresáře údržby
maintenance
. - https://doc.wikimedia.org/mediawiki-core/master/php/ - Zobrazit jeho generovaný souhrn dokumentace. (Soubory> Seznam souborů> údržba na kartách nebo na levém postranním panelu navigace)
Zde je seznam souborů obsažených v podadresáři maintenance
, který se nachází v kořenovém adresáři instalace MediaWiki. K této příručce můžete přispět aktualizací tohoto seznamu, přidáním popisu specifického účelu těchto souborů a způsobu, jakým by je měl správce používat (příklady příkazového řádku atd.).
You can contribute to this manual by keeping this list up to date, adding a description of these files' specific purpose and of how an administrator should use them (command line examples, etc.).
Mějte na paměti, že tyto byly vytvořeny a pojmenovány ad hoc, takže mají některé problémy s použitelností.
maintenance/
maintenance/archives
maintenance/benchmarks
- Benchmarker.php
- bench_HTTP_HTTPS.php
- bench_delete_truncate.php
- bench_if_switch.php
- bench_strtr_str_replace.php
- bench_utf8_title_check.php
- bench_wfBaseConvert.php
- bench_wfIsWindows.php
- benchmarkHooks.php
- benchmarkParse.php
- benchmarkPurge.php
maintenance/dev/includes
maintenance/language
- StatOutputs.php
- alltrans.php
- checkDupeMessages.php
- checkExtensions.php
- checkLanguage.inc
- checkLanguage.php
- countMessages.php
- date-formats.php
- digit2html.php
- dumpMessages.php
- generateCollationData.php
- generateNormalizerDataAr.php
- generateNormalizerDataMl.php
- langmemusage.php
- listVariants.php
- languages.inc
- transstat.php
maintenance/oracle
maintenance/storage
- checkStorage.php
- compressOld.php
- dumpRev.php
- moveToExternal.php
- orphanStats.php
- recompressTracked.php
- resolveStubs.php
- storageTypeStats.php
- testCompression.php
- trackBlobs.php