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.

Current Package contains:

  • Nginx 1.15.7 web server
  • MariaDB 10.3.11 database server, mysql 5.5.5 replacement (32/64bit)
  • Redis 4.0 Cache/NoSql, memcached alternative (64bit)
  • Php 5.6.39 & PHP 7.0.33 & PHP 7.2.12 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.