Installing

The installation of Wamp.NET can either be automatic using the installer or manual.

Automatic Install

Use the installer to install the latest available version (internet connection required).

Manual Install

To install manually, perform the following steps:

When you execute Wamp.NET.exe, your default browser will navigate to 127.0.0.1:7777 by default. These settings can be changed in the Wamp.NET.ini file.

Packages

Packages are installed by clicking the install packages button on the status screen.

All packages need to be started before they can be used except for PHP when Apache is being used as the webserver.

When installing a package, you will be able to select the interface they will bind to. By default, it will be localhost or 127.0.0.1 meaning they will only be accessable from the machine where Wamp.NET is installed. To allow connections from other machines, select either 0.0.0.0 (all interfaces) or a specific interface.

Packages started will remain running if you close the Wamp.NET application from the system tray but will not survive a reboot. To have packages start automatically when your PC starts, select the Service checkbox on the status page.

Sites

Creating a site will configure your chosen installed webserver, create an SSL certificate, and update the Windows hosts file.

You can safely delete a site or switch between webserver and PHP versions without the document root being affected.

Domain Name

This is your domain name without any subdomain part e.g. example.local OR cnn.com

If you were to enter cnn.com then you wouldn't be able to visit the real cnn.com as it will resolve to your own machine.

Aliases

You can specify subdomains separated by comma's e.g. www OR www, ftp

You can also use * as a wildcard meaning anything.example.local will match. Since Windows doesn't support wildcard entries in the hosts file, you can either install the Wildthing package or add hosts manually using the Hosts Editor tool.

Document Root

If you leave the document root field empty, a folder with the name of the domain you specified will be created in the default sites folder %WAMP.NET%\example.local

You'll manually need to add /public if you are using a framework that requires it.

Webserver

You'll be shown the available webserver packages installed i.e. Apache or Nginx.

PHP version

The version of PHP you would like to use. For a static site, this can be left on disabled.

If you're using Nginx as the webserver, remember to start the PHP package. This is not required for Apache.

Auto Installers

Packages such as Wordpress, Joomla, Drupal, Laravel etc. can be installed with a few clicks.

The package installer will create the database that you specify on the chosen database server and create the required configurations files. In the case where there is no pre-config file, the database settings will be injected into the package's install wizard. You can just next, next, next..., finish.

Wilcard DNS

Install the Wildthing package. Change your windows DNS configuration to use the interface and port specified during the package install (127.0.0.1:53 by default).

Mail

All mails sent through PHP are saved to disk and can be viewed by clicking on the mail link in the menu.

The following will create a test mail:

<?php

$body  = "Dear Prudence,\n\n";
$body .= "I hope you're doing well!\n\n";
$body .= "Just wanted to confirm your attendance to Sunday's high tea? Steve will be there too; it's going to be a blast!\n\n";
$body .= "Cheers,\n";
$body .= "Billy.";

$headers = "From: Billy Idol \n\n";

var_dump(mail("siouxsie@banshees.com", "High Tea on Sunday", wordwrap($body, 70), $headers));

Tools

System Path

You can add, remove, and change the order of your system variables here.

The .php and .mysql paths are used by Wamp.NET.

Processes

This gives you a list of all running processes on your system with a kill button should you need to terminate them.

Hosts Editor

Creating and updating sites will automatically manage your hosts file. You can make manual changes here should you need to.

Benchmarks

This uses Apache Bench to give basic benchmarking for your site.

The Requests Per Second is the most important metric but only for comparison between your own sites for the host you are developing on.

This is useful to compare the performance of your site under load using different packages and versions running in Wamp.NET.

Settings

Proxy Server

You can specify a proxy server to be used for package downloads and updates.

Code Editor

There is a button next to each site on the sites page that will launch whichever command you type for this setting.

The variable %folder% will be substituted for the document root.

If the document root ends with /public, it will automatically be removed so as to open the root of your site.

e.g If you are using Sublime text as your editor, you would enter:

"c:\program files\Sublime Text\sublime.exe" %folder%

Note: commands that contain spaces need to be in quotes. This excludes arguments and the %folder% variable.

CLI default instances

This allows you to set a default PHP and MySQL package for use on the command line.

A symbolic link is updated and added to your system path

This is useful for running php based apps such as composer or the mysql binaries such as mysqldump from anywhere on your system.

Security

Wamp.NET requests elevation when starting, meaning that all packages started from Wamp.NET are running as the administrator user.

This can easily be tested by creating a .php page with the following code:

<?php

echo shell_exec('netstat -abn');

You will see the output of the netstat command in this case.

Until you see the following, you should NOT run Wamp.NET in a production environment:

The requested operation requires elevation.

Steps to running Wamp.NET in a production environment:

  1. Ask yourself why you'd want to? With VPS providers charging as little as $5/month, you're better off hosting your projects there
  2. Make sure your Windows machine is fully up to date with updates
  3. Enable the firewall and allow external connections on specific ports only e.g. 443
  4. Run your packages as services with a non privilaged user
    • Apache: only the apache service needs to run as a non privileged user
    • Nginx: both the Nginx and PHP package needs to run as a non privileged user
  5. Give the non privileged user read only access to the document root and write access only when required to specified directories e.g. upload
  6. Once you've followed all these steps, refer back to step 1. This really is a bad idea :-)

Updates

Clicking on the version number in the menu will check for updates.

Updates do not affect your installed packages and are perfectly safe to perform.

In most cases this is a seamless process with an "Update Successful" message upon completion.

Updates offer improvements and fixes to Wamp.NET as well as making additional packages available for install.

Unfortunately updates are not yet accumulative i.e. keep updating until you get the message that you're on the latest version.

Uninstalling

  1. Backup your %Wamp.NET%\sites and %Wamp.NET%\data folders
  2. Stop any running packages
  3. Remove the checkmark for any packages marked as services
  4. Delete your Wamp.NET folder