Manual:Maintenance scripts/Running the scripts
The maintenance scripts must then be run from the command line. Users who do not access the server directly from its terminal will usually establish a connection through SSH.
- For Linux/Unix users this is by using the SSH client in a shell.
- 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.
Get into server
editLinux/MacOS user
editMost the Linux system and MacOS comes SSH client built-in. So you don't need to any SSH client. You can check SSH client in your system by running following command in your terminal.
$ ssh -V OpenSSH_8.6p1, LibreSSL 2.8.3
If this command gives error then you need to install SSH client in your system.
Debian/Ubuntu - sudo apt install openssh-client
MacOS - brew install openssh
Once you get the SSH client in your system then you can run following command to get into server.
$ ssh -p 22 root@examplewiki.com Welcome to Ubuntu 18.04.5 LTS (GNU/Linux 4.15.0-161-generic x86_64) * Documentation: https://help.ubuntu.com * Management: https://landscape.canonical.com * Support: https://ubuntu.com/advantage System information as of Tue Feb 15 10:32:00 UTC 2022 System load: 0.0 Processes: 106 Usage of /: 29.8% of 24.06GB Users logged in: 0 Memory usage: 51% IP address for eth0: XXX.XXX.XXX.XXX Swap usage: 0% IP address for eth1: 10.116.0.2 Last login: Tue Feb 15 10:27:28 2022 from XX.XXX.XX.XXX root@-s-1vcpu:~#
The default port for SSH connection is 22
and user is root
.
But shared hosting provider gives the custom user and SSH port number.
Replace these values with yours.
Now, you can run the MediaWiki maintenance script on server.
Windows user
editFor Windows user, there are two ways to get into server.
Native SSH client
editYou can install/enable SSH client using Windows Settings on Windows Server 2019 and Windows 10 devices. They support the SSH natively. See Official doc.
To install the OpenSSH component:
- Open
Settings
, selectApps
>Apps & Features
, then selectOptional Features
. - Scan the list to see if the OpenSSH is already installed. If not, at the top of the page, select
Add a feature
, then:- Find
OpenSSH
Client, then clickInstall
.
- Find
It will install the SSH client in your system. Now, you can SSH to server using PowerShell.
$ ssh -p 22 root@examplewiki.com
The default port for SSH connection is 22
and user is root
.
But shared hosting provider gives the custom user and SSH port number.
Replace these values with yours.
Now, you can run the MediaWiki maintenance script on server.
Putty (or other 3rd party SSH client)
editYou can use PuTTY or other 3rd party SSH client on Windows machine:
- Step 1: Download and run PuTTY, a terminal emulator.
- Step 2: In PuTTy, under the Host Name (or IP address) enter the IP Address of your web hosting site (Contact your website provider if necessary) and click Open.
- Step 3: A command screen will pop up. At the login as: line enter the FTP user name.
- Step 4: Enter the FTP password.
Now, you can run the MediaWiki maintenance script on server.
Running the script
editOnce you get into to the server (See "Get into server" above) then you can follow these steps.
Step 1: Goto the MediaWiki root directory. In most cases, it would be /var/www/html
root@-s-1vcpu:~# cd /var/www/html/
Step 2: Run the script
root@-s-1vcpu:/var/www/html# php maintenance/run.php showSiteStats Total edits : 11 Number of articles: 3 Total pages : 6 Number of users : 2 Active users : 0 Number of images : 0
If you are using Windows server and get an error (for example: php.exe is no valid Win32 application), try the following.
$ php-cgi maintenance/run.php showSiteStats
or
$ C:\path\to\php\php-win.exe C:\path\to\mediawiki\maintenance\run.php showSiteStats
maintenance/run.php
. Invoking maintenance scripts directly will trigger a warning.MW_INSTALL_PATH
environment variable to point to the root of your MediaWiki installation. This will help scripts to find the necessary files, and is particularly relevant when running maintenance scripts provided by third-party extensions.
Standard command-line options
editAlmost every PHP script in /maintenance
supports several standard options:
Option | Description |
---|---|
--help | Displays help message |
--conf <path> | Location of LocalSettings.php, if not default (at parent directory of the script) |
--dbuser <username> | Database account to use instead of the one specified in LocalSettings.php, not used for scripts that don't require a database connection or when SQLite database backend is used |
--dbpass <password> | Database password to use instead of the one specified in LocalSettings.php, not used for scripts that don't require a database connection or when SQLite database backend is used |
--globals | Output globals at the end of processing for debugging |
--memory-limit <value> | Set memory limit for the script. Accepts ordinary numbers, standard php.ini abbreviations (1024K, 20M, 1G), max for no limit (will be used by default if omitted) and default for no change. (introduced in 1.17)
|
--quiet | Suppress non-error output |
--wiki | Wiki ID for wiki farms. This may be of the form dbname or dbname-prefix . LocalSettings.php will be run with the MW_DB and MW_PREFIX constants defined accordingly.
|
--profiler | Profiler output format (usually "text"). (introduced in 1.22) |
--mwdebug | Enable built-in MediaWiki development settings. (introduced in 1.31) |
MediaWiki installs that use symlinks
editIn cases where the MediaWiki PHP files are symlinked to a central installation, you will need to specify to the maintenance script the path of the LocalSettings.php file. For example:
php maintenance/importImages.php --conf /var/www/html/LocalSettings.php /tmp/wikiimages .jpg .png .svg
MediaWiki installs that use shared settings (family type)
editSometimes MediaWiki is installed as a family for many languages and settings (LocalSettings.php) are split to common part and language parts (see Wiki family#Shared Settings ) where common part is located outside of /w
directory and accessed using relative link (require_once "../ExtensionSettings.php";
). In this case maintenance scripts will not work when running them in /w/maintenance
directory. Run them from /w
directory instead.
No shell access
editOn many shared hosts, you won't have shell access. The following extensions may be useful to run maintenance scripts via the web.