WinNMP - Nginx MariaDB Redis Php 7 development stack for Windows
A lightweight, fast and stable server stack for developing php mysql applications on windows, based on the excellent webserver Nginx. A lighter alternative to XAMPP and WAMP, with Composer, Adminer, LetsEncrypt certificates, WinSCP, multiple PHP versions, projects and virtual servers.
example shortcut: D:/Work/bin/WinNMP.exe --debug --backup --phpCgiServers=2
-d --debug Display debug messages
-e --editor="notepad.exe" Path to editor to be used to edit configuration files
-s --startServers Starts all the servers in background and minimizes to systray
-k --killAll Kills all running servers and exits
-b --backup Forces automatic daily backups
-l --latestPhp Forces the use of the latest PHP version
-p=n --phpCgiServers=n Forces the number of PHP-CGI Servers, between 1 and 99
-j --hideProjects Hides Projects list at startup
-n --noUpdates Disables weekly Update checks
-w --wwwDir="c:\Dir" Custom WWW folder path for projects
WinNMP stands for Windows Nginx MySql(MariaDB) PHP (solution stack)
WinNMP was previously known as WTServer (for 2 years) and WT-NMP for (3 years).
WinNMP is portable, but it is better if you run the installer once on each new machine:
The installer fixes some windows networking issues that will make Nginx super fast and also allows faster connections to the Mysql server. Also installs Visual C++ Redistributable required by PHP
The installer registers php, mysql and composer executables to PATH. If you move WinNMP, those executables won`t be available globally anymore.
So, if you need to copy/clone WinNMP to a new machine, you should run the installer once, then overwrite the folder with the cloned folder
Nginx: One of the reasons Nginx is so fast, it`s because it does not process .htaccess files. Therefore URL Rewriting and User Access must be set in nginx.conf.
MariaDb: If it refuses to start and in log\mysql.log you find [ERROR] Table 'mysql.user' doesn't exist , then run c:\WinNMP\bin\MySql\bin\mysql_install_db -d c:\WinNMP\data in order to recreate the table
Redis is available only on 64bit systems
PHP is configured in a very restrictive way, like on most hosting providers. Comment out disable_functions, disable_classes, open_basedir in conf/php.ini, if you need a more permissive PHP configuration.
PHP Extensions: most of them are disabled by default, enable them in conf/php.ini (see src/defaults/php.ini for opcache, xdebug, xcache)
PHP MySql extension is disabled by default and is deprecated as of PHP 5.5.0, and will be removed in the future. Instead, the MySQLi or PDO_MySQL extension should be used. If you really want to enable mysql extension, add or uncomment in conf/php.ini: extension = php_mysql.dll
PHP: Starting only one PHP-CGI server with WinNMP.exe --phpCgiServers=1 will result in slow ajax requests since Nginx will not be able to process PHP scripts simultaneous.