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.

Unlike other development stacks, WinNMP doesn't require any aditional software, it includes all runtime libraries. It works out-of-the-box and it is safe to install it over a previous version, or in a folder with spaces or special characters. You can even move it after instalation and it will still work. And most importantly, it dosen't waste your time!

Current Package contains:

  • Nginx 1.15.8 web server
  • MariaDB 10.3.12 database server, mysql 5.5.5 replacement (32/64bit)
  • Redis 4.0 Cache/NoSql, memcached alternative (64bit)
  • Php 5.6.40 & PHP 7.0.33 & PHP 7.2.15 & PHP 7.3.2 scripting language (32/64bit)
  • XDebug, GeoIP, Gender PHP Extensions
  • WinSCP SFTP client
  • HTTPS using free LetsEncrypt certificates
  • Composer dependency manager for php
  • Adminer web based database manager
  • Reg.php regular expressions tester
  • WinNMP Manager (32/64bit), formerly known as WTServer

Features:

  • Easy to upgrade! Backups, configuration files, database data, included libraries and projects are persistent during upgrades (not overwritten)
  • A single installer for both x86 and x64 systems, with 32bit and 64bit versions of MariaDB, PHP and WinNMP Manager
  • Lightning-fast web server. Optimized for best performance
  • Tools: mysql client, php console, composer, acmePhp, hostsEditor, putty, mailToDisk
  • PORTABLE: you can move it to a different location, configuration files are updated automatically
  • For easy access, all configuration files are stored in one place: WinNMP\conf and all log files are stored in one folder: WinNMP\log
  • Multiple PHP Versions and version switcher. Dynamic number of php-cgi processes
  • The server manager runs minimized in the system tray and monitors, logs and restarts crashed servers, just like php-fpm on Linux
  • Project setup, Local Virtual Servers for projects, Upload, Sync and Browse with WinSCP
  • Optional database daily backups can be enabled with --backup. Up to 7 backup files will be created per database per weekday

Installing & Upgrading:

  • Download and execute the latest installer. The installer produces a portable folder.
  • Any previous projects, settings, databases and PHP extensions will not be deleted during upgrades.
  • It is safe to choose any destination folder you want if you don't like C:\WinNMP

Getting Started:

Need some help? Hire a freelance PHP / Linux expert for your project!

  • Start WinNMP
  • Look in the taskbar for the WinNMP icon:
  • Press Options and check Start WinNMP with Windows
  • Type in your browser http://localhost
  • Read WinNMP Basic Usage - Getting Started
  • The default MariaDb(MySql) host is localhost with username root and no password.
  • The default Redis host is localhost port 6379
  • Read our tutorials on How to install Joomla, Magento 2 or Wordpress on Windows

About WinNMP:

  • 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).

Portability:

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 clone WinNMP to a new machine, you should run the installer once, then copy/synchronize C:\WinNMP
  • it is safe to copy/synchronize only \conf \include \www between two WinNMP installations, for collaboration purposes
  • If you also want to copy database data in \data, it is safer if you also copy the MariaDB binaries in \bin\MariaDB\bin

WinNMP Manager command line arguments:

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

Issues:

  • 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 your access to MariaDB is denied or if the privileges table mysql.user is corrupt, delete the file c:\WinNMP\bin\mysql.bat and restart WinNMP
  • 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.