Help:Development environment setup

Some prerequisites to successfully setup a development environment.


 * Operating System
 * Apache
 * MySQL, SQLite, Postgres
 * PHP 5+

Various stacks are available and can help with the basic setup including, , etc.

Is is also possible to use a Docker or mws:Vagrant environment for development tasks.

Environment setup
It is useful to setup the local wiki installation in a way that helps to detect and track down problems quickly. On the one hand, it is useful to use not-so-common installation settings to ensure that they are tested at some point:


 * Use a non-empty DB table prefix when installing MediaWiki.
 * Use $wgArticlePath = "$wgScript?title=$1"; in your LocalSettings.php (CGI compatibility mode). You may also change this back and forth to test both styles of URIs with your code.
 * In addition, enable $wgShowSQLErrors = true; and $wgDebugDumpSql = true; in your LocalSettings.php.

On the other hand, some PHP-specific settings are useful for find code problems:
 * The required version of PHP is found in INSTALL.
 * All developers need to have all errors, warnings, and notices in PHP switched on. Edit your file php.ini to contain error_reporting = E_ALL and remove any other statement of this kind.
 * If you are not running PHP 5.4 or later, then edit your php.ini to contain allow_call_time_pass_reference = Off. This directive was removed in PHP 5.4.
 * Your final code should never create any of the respective messages.
 * Enabling xdebug for your PHP improves the detail of the bug reports (the actual profiling feature of xdebug does not need to be enabled for this).