Category Archives: WAMP Developer Server

WampDeveloper 5 Known Issues and Solutions

v5.0.2.1

Issue: Access of \phpmyadmin is denied to root user (and others)

Status

Fixed in upcoming release.

Effect

When accessing phpmyadmin by using the “phpmyadmin” button in WampDeveloper’s System Tab, or using this URL http://localhost/phpmyadmin, user ‘root’ is not able to log in.

Opposite to the above, this URL does work:

http://127.0.0.1/phpmyadmin

If IPv6 is enabled on your system, and “localhost” get’s resolved to the IPv6 loopback address “::1″, user “root” will not be able to login to URL:

http://localhost/phpmyadmin

Cause

  • 1) phpmyadmin’s configuration file config.inc.php is missing an access entry for the corresponding MySQL “root@::1″ account.
  • 2) “localhost” is getting resolved to IPv6 “::1″ instead of IPv4 “127.0.0.1″ (due to the Windows Hosts file entries).

It’s possible that the installer was not able to update the Windows Hosts file, and/or Windows Defender (or some other security app) was able to undo the changes.

Solution

Edit file:
C:\WampDeveloper\Tools\phpMyAdmin\config.inc.php

Add into the “AllowDeny” rules array line:

'allow root from ::1',

Also edit the Windows Hosts file (LocalDNS Tab, button: Hosts File) -

  • Remove line:
    ::1 localhost
  • Make sure this line is present:
    127.0.0.1 localhost

Exclude the Windows Hosts file in Windows Defender

*If you are also going to use the provided phpmyadmin version that’s compatible with the Legacy Apache 2.0 and PHP 4.4 channel, it might not be possible to apply this fix due to Apache lacking IPv6 support and the syntax (::1) being unknown to Apache and/or phpmyadmin. If it was possible, these files would need to be updated:
Tools\phpmyadmin.php4\config.inc.php
Tools\phpmyadmin.php4\.htaccess
Config\Apache\extra\wampd-phpmyadmin.conf

Issue: LocalDNS does not work, and/or Hosts file gets overwritten

Status

Reported. Could depend on OS, antivirus software, and environment.

Effect

a) On WampDeveloper installation, the entire Windows Hosts file is emptied, or only contains 1 or 2 entries.

b) On website creation or LocalDNS changes, domain-names do not work.

Cause

Antivirus software such as BitDefender (and Windows Defender) block WampDeveloper from making edits to the Hosts file, and/or attempt to restore this file when changes are detected.

Solution

Exclude the process C:\WampDeveloper\wampdeveloper.exe and the folder C:\WampDeveloper\ in the anti-virus software’s settings.

Then open Windows Hosts file (LocalDNS Tab, click button: Hosts file), and add at least these entries in:


127.0.0.1 localhost

127.0.0.1 ServerStatus stat.apache.local
127.0.0.1 ServerInfo info.apache.local
127.0.0.1 ServerHost host.apache.local

127.0.0.1 DefaultWebsite website

127.0.0.1 www.example.com example.com

Issue: PHP’s OPcache crashes Apache on some phpMyAdmin URLs

Status

Fixed in upcoming release.

Effect

Having PHP’s OPcache extension globally enabled AND having “php_admin_flag opcache.enable Off” in either the website’s VirtualHost file or in the configuration of Config\extra\wampd-phpmyadmin.conf will cause Apache to crash after several \phpmyadmin tabs are clicked in succession.

(php.ini)

zend_extension="C:\WampDeveloper\Components\Php\ext\php_opcache.dll"
opcache.enable=1

(C:\WampDeveloper\Config\Apache\extra\wampd-phpmyadmin.conf)
(C:\WampDeveloper\Vhosts\localhost.http.vh.conf)

php_admin_flag opcache.enable Off

URL:

http://localhost/phpmyadmin

It also does not matter if the phpmyadmin file paths are excluded via OPcache’s blacklist file:

(php.ini)

opcache.blacklist_filename="C:\WampDeveloper\Config\Php\opcache.blacklist.txt"

(C:\WampDeveloper\Config\Php\opcache.blacklist.txt)

C:\WampDeveloper\Tools\phpMyAdmin\
C:\WampDeveloper\Tools\phpMyAdmin.php4\

Cause

PHP, OPcache Extension, and/or Apache bug.

Solution

Comment out and do not use “php_admin_flag opcache.enable Off” at all (not in websites’ VirtualHost files nor in Apache configuration files).

If needed, exclude phpmyadmin (and other) file paths via OPcache’s blacklist… Or don’t disable the caching of phpmyadmin if no opcode cache issues are present with used PHP, OPcache Extension, and phpmyadmin versions.

WAMP Component Versions

Apache 2.4.9
PHP 5.5.11 (via mod_php)
phpMyAdmin 4.1.8.0

Howto Start MongoDB and Enable php_mongo in WAMP

Start MongoDB

WampDeveloper comes with MongoDB located in folder:
C:\WampDeveloper\Tools\mongodb

MongoDB can either be started:

A) Manually from the command-line:

mongod --config C:\WampDeveloper\Tools\mongodb\mongodb.conf

B) Or by double-clicking entry “MongoDB” in WampDeveloper’s Applications Tab, in which case, WampDeveloper will run file:
C:\WampDeveloper\Resources\run\tools.mongodb.start.bat

The MongoDB server will run as long as the command-line window is open.

Enable php_mongo

To connect and talk to the MongoDB server via PHP code, PHP extension php_mongo must be loaded.

1. Edit file:
C:\WampDeveloper\Config\Php\php.ini

2. Uncomment section:

[Mongo]
extension=php_mongo.dll
mongo.allow_empty_keys=0
mongo.chunk_size=262144
mongo.cmd="$"
mongo.default_host="127.0.0.1"
mongo.default_port="27017"
mongo.is_master_interval=15
mongo.long_as_object=0
mongo.native_long=0
mongo.ping_interval=5

(* uncomment by removing “;”, section is located near end of file)

3. Save file and restart Apache.

Connecting To and Using MongoDB

A REST interface to some MongoDB stats and information is provided on URL:
http://127.0.0.1:28017/

Example PHP code to test the operations of the MongoDB server is provided here:
http://blog.mongodb.org/post/24960636131/mongodb-for-the-php-mind-part-1

Howto Start Memcached and Enable php_memcache in WAMP

Start Memcached

WampDeveloper comes with memcached located in folder:
C:\WampDeveloper\Tools\memcached

Memcached can either be started:

A) Manually from the command-line:

memcached.exe -l 127.0.0.1 -p 11211 -m 128 -t 4

B) Or by double-clicking entry “memcached” in WampDeveloper’s Applications Tab, in which case, WampDeveloper will run file:
C:\WampDeveloper\Resources\run\tools.memcached.start.bat

The memcached server will run as long as the command-line window is open. The “-m” option specifies the size (in MB) of memory to use.

Enable php_memcache

To connect and talk to the memcached server via PHP code, PHP extension php_memcache must be loaded.

1. Edit file:
C:\WampDeveloper\Config\Php\php.ini

2. Uncomment section:

[Memcache]
extension=php_memcache.dll
memcache.allow_failover="1"
memcache.max_failover_attempts="20"
memcache.chunk_size="8192"
memcache.default_port="11211"
memcache.hash_strategy="standard"
memcache.hash_function="crc32"
memcache.protocol=ascii
memcache.redundancy=1
memcache.session_redundancy=2
memcache.compress_threshold=20000
memcache.lock_timeout=15

(* uncomment by removing “;”, section is located near end of file)

3. Save file and restart Apache.

Connecting To and Using memcached

Example PHP code to test the operation of the memcached server…

<?php

error_reporting(E_ALL);
ini_set('display_errors', 1);

$memcache = memcache_connect('localhost', 11211);

// note - memcache_connect errors must be suppressed (@) for this code to be reached
if ($memcache === false)
{
	echo "Connection to memcached failed.";
	exit;
}

// test string
$key_string = "string to store in memcached";

// test number
$key_number = 123;

// test array
$key_array  = Array(123, 345, 567);

// test object
$key_object = new StdClass;
$key_object->str_attr = 'test';
$key_object->int_attr = 123;

// store the values into memcached
$memcache->set("str_key", $key_string);
$memcache->set("num_key", $key_number);
$memcache->set("arr_key", $key_array);
$memcache->set("obj_key", $key_object);

// retrieve the values from memcached
var_dump($memcache->get('str_key'));
var_dump($memcache->get('num_key'));
var_dump($memcache->get('arr_key'));
var_dump($memcache->get('obj_key'));

?>

Browser’s “Could Not Find” or “Could Not Display” Webpage Message

Oops! Google Chrome could not find domain-name

Server not found. Firefox can’t find the server at domain-name.

Internet Explorer cannot display the webpage

If, from the same system that the WAMP server is running on, your Browser (Chrome, Firefox, IE) is not able to locate your local website, the above messages will be displayed.

This happens when:

A) The Windows Hosts file does not have an entry resolving the website’s domain-name to the “loopback” address (127.0.0.1).

B) The Browser is still using its previous bad DNS resolve cache for this domain-name.

To fix this:

1. In WampDeveloper’s LocalDNS Tab, make sure this website is check-marked. If the check-mark disappears, then LocalDNS is not able to make changes to the Windows Hosts file because this file is being locked by another application.

2. Then click the Windows Hosts file button to open the file.

Make sure something similar to this line is present in the file:
127.0.0.1 website.domain.name website.domain.alias1 website.domain.alias2

And that no other lines have your website.domain.name in them.

Save file if changes are made.

3. After making these changes, close your Browser so the older DNS caches are cleared.

*To unlock the Windows Hosts file see this howto:
http://www.devside.net/wamp-server/unlock-and-unblock-the-windows-hosts-file

*WampDeveloper’s LocalDNS works by resolving the domain-name to the local IP address 127.0.0.1 via the Hosts file, so your local Browser (Chrome, Firefox, IE) knows where to find that website.

*Windows 8 users, see section “Enable IE Intranet Browsing” here: http://www.devside.net/wamp-server/installing-wamp-on-windows-8

Howto Switch WampDeveloper’s Apache PHP MySQL Branches

WampDeveloper provides 3 Apache, PHP, and MySQL channels:

  • Current: Apache 2.4, PHP 5.5, MySQL 5.6
  • Stable: Apache 2.2, PHP 5.3, MySQL 5.5
  • Legacy: Apache 2.0, PHP 4.4, MySQL 5.1

The WAMP server can be switched to use any channel at any time.

For example:

To switch to using WampDeveloper’s “Stable” channel, which is: Apache 2.2, PHP 5.3, and MySQL 5.5…

1. In WampDeveloper’s Components Tab, click the download links to the latest provided releases of Apache 2.2, PHP 5.3 (regular, not FCGI), and MySQL 5.5 – that are not on the system already.

2. Once downloaded, extract each into the appropriate Versions folder:

Apache versions are maintained in: C:\WampDeveloper\Versions\Apache\
PHP versions are maintained in: C:\WampDeveloper\Versions\Php\
MySQL versions are maintained in: C:\WampDeveloper\Versions\Mysql\

See this howto to make sure each packaged version is correctly extracted and placed:
http://www.devside.net/wamp-server/howto-update-wampdevelopers-apache-php-mysql-versions

3. After these versions are on system, close WampDeveloper and open it again to make sure it re-reads everything (*usually not necessary).

4. Select to use the new Apache, PHP, and MySQL versions:

In WampDeveloper’s Components Tab, in the top right corner, there is a group named “Select Subscription”.

Click on its “Channel” dropdown box, it will list items: Current, Stable, Legacy.

Select “Stable”, and all the Apache, MySQL, PHP branches on system in that channel will become selectable via their check-boxes. Select/check-mark the new Apache, PHP, and MySQL versions, then click: Update To Selected

*Channel “Current” will only work for OSs above XP and Server 2003.

*If you are using PHP-FCGI, using dropdown box “PHP Type”, switch selection from Regular to FCGI.

WAMP’s “Internal Server Error” Message

When Apache or PHP encounter a problem, sometimes this message is displayed…

Internal Server Error

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at admin@httpd.host to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.

Apache/2.4.9 (Win32) PHP/5.5.11 Server Port 80

This error is usually 99% of the time a result of an .htaccess file problem.

Check the specific website’s .htaccess file to make sure it’s not using old or incorrect paths and URLs, RewriteRules, nor a bad RewriteBase /path (try commenting it out with a #).

Also, a much more informative/helpful error message will be logged in the website’s HTTP and PHP error logs…

If you select this website in WampDeveloper’s Websites Tab, and click the (“Logs HTTP” group) ErrorLog and PhpLog buttons, the end of the files will tell what the real issue is. It might be something really easy to fix/correct.

If nothing relevant is shown, check the general Apache and PHP error logs files (in WampDeveloper’s Reliability Tab).

Moving Websites and Databases Between 2 WAMP Installs

This assumes you have the same WampDeveloper versions (ex: WampDeveloper 5.0) installed on each system, running the same MySQL branch (ex: MySQL 5.6), and that each WampDeveloper instance is installed on the same path (ex: C:\WampDeveloper).

First, make sure the receiving WampDeveloper installation has the same websites already created via the Websites Tab – so all the VirtualHosts, website folders, and other configuration files exist.

Then stop the Apache and MySQL Services on both systems.

Transferring Websites

Transfer (zip up and copy) to the other system the Websites folder. Select to overwrite everything, if prompted.
C:\WampDeveloper\Websites\

As an alternative, you can instead only move a specific website by transferring sub-folder:
C:\WampDeveloper\Websites\Websites\domain.name\

Transfer Database

Delete the other system’s Database folder. Replace it completely (replace it, don’t copy-over to overwrite files).
C:\WampDeveloper\Database

MySQL Issues

If MySQL does not start/run after the \Database folder is replaced, and both machines are using the same MySQL version…

It’s possible that your ZIP program, FTP program, etc, (whatever you are using to package + transfer the files), or its options, does not preserve this NTFS Junction-Point folder link:
Database\mysql-data –> Database\mysql-data-56

You can re-create it (after transferring the \Database folder) by:

1. Deleting folder: Database\mysql-data

2. Opening the command-line w/administrative-permissions (System Tab button) and executing this command (*all on one line):
mklink /j C:\WampDeveloper\Database\mysql-data C:\WampDeveloper\Database\mysql-data-56

Note that the above example is for WampDeveloper v5.0 using MySQL 5.6.
For MySQL 5.5, the folder is: Database\mysql-data-55
For MySQL 5.1, the folder is: Database\mysql-data-51

And under WampDeveloper v4.x the Database folder is “as-is” (it does not have specific version sub-folders, nor NTFS Junction-Point links).

If this is not the issue, open this log file to see MySQL’s error messages:
C:\WampDeveloper\Logs\Mysql\errorlog.txt

VirtualHosts and other Website Specific Configuration Files

If you’ve made custom changes to the websites’ VirtualHost files, they exist in this folder and can be transferred:
C:\WampDeveloper\Vhosts\

Files:
domain.name.http.vh.conf
domain.name.ssl.vh.conf

If you’ve made custom changes to the websites’ AWStats files, they exist in this folder and can be transferred:
C:\WampDeveloper\Tools\awstats\wwwroot\cgi-bin

File:
awstats.domain.name.conf

Custom DocumentRoot Locations

WampDeveloper expects all websites to be contained under folder C:\WampDeveloper\Websites\ (and it’s best to leave this as-is), but you can work around this by using NTFS “Junction Points” to make a link between an outside folder and either the website’s entire containing folder or the website’s \webroot (DocumentRoot) folder.

First, create a website via WampDeveloper, it will create a website DocumentRoot folder such as:
C:\WampDeveloper\Websites\www.example.com\webroot

Then create an NTFS “Junction Point” from the website’s webroot folder to the real location…

1. Delete (or move to new location) the website’s existing DocumentRoot folder:
C:\WampDeveloper\Websites\www.example.com\webroot

2. Then from the command line (WampDeveloper’s System Tab, Command Line button) execute (all on one line):
mklink /j C:\WampDeveloper\Websites\www.example.com\webroot C:\Users\YourName\Documents\Web\ProjectName\WebsiteRoot

*Note that C:\Users\YourName\Documents\Web\ProjectName\WebsiteRoot has to already exist.

This way you’ll have your real C:\Users\YourName\Documents\Web\ProjectName\WebsiteRoot folder (where the files reside) and a link to that folder from C:\WampDeveloper\Websites\www.example.com\webroot (which is what WampDeveloper will use).

Notes -

“Junction Points” only work between local drives of the system and OS (between local volumes), and will not link to networked drives or remote shares.

It is also not usually possible to directly link the folders of websites, nor the database folder, to a NAS device.

To use network shares, you would need to change Apache’s account from “LocalSystem” to an account that has network share access. Under Windows, while “LocalSystem” can access TCP/IP, it does not have permissions to access network shares.

Non-local file system access will significantly slow down Apache.

Upgrading WampDeveloper Versions

The cleanest and best way to do an upgrade between both minor (v4.2.0.1 to v4.2.0.3) and major versions (v4.2 to v5.0) of WampDeveloper Pro is to perform a clean re-installation followed by a website + database transfer procedure (if needed, to maintain all websites and databases)…

Clean Re-Installation of WampDeveloper

1. Click the Uninstall link at bottom of Components Tab. The un-installation process will not delete any files or databases.

2. Rename folder C:\WampDeveloper to C:\WampDeveloper.old. If Windows does not allow the folder to be renamed, then some files are still open or in-use. Reboot your system to close everything out.

3. Install new version of WampDeveloper to the previous location (ex: C:\WampDeveloper). Then reboot.

4. Use Websites Tab to re-create your websites so all new and updated Virtual Hosts files, other configuration files, and website folders are created.

(for the next websites + databases transfer processes, stop Apache and MySQL…)

Transfer Websites

If you need to preserve your previous websites…

1. Copy from C:\WampDeveloper.old your \Websites folder over the C:\WampDeveloper\Websites folder (copy-over, overwrite all).

* Do not just delete and replace the folder, it should be rather copied-over the existing folder (to preserve default DocumentRoot folders which might not have existed in the previous version).

Transfer MySQL Database Files

If you need to preserve your previous databases…

Note that:

WampDeveloper 4.1 used MySQL 5.1 with database location:
\WampDeveloper\Database\

WampDeveloper 4.2 used MySQL 5.5 with database location:
\WampDeveloper\Database\

WampDeveloper 5.0 uses MySQL 5.6 by default, but can also switch to using MySQL 5.5 and 5.1; with each major MySQL branch maintaining its own database files (because the data format/schema of the files is different for each MySQL branch):

  • MySQL 5.6 as \WampDeveloper\Database\mysql-data-56\
  • MySQL 5.5 as \WampDeveloper\Database\mysql-data-55\
  • MySQL 5.1 as \WampDeveloper\Database\mysql-data-51\

If: Upgrading WampDeveloper Versions (v4.2 to v5.0)

1. Place the previous database files in the new location…

Ex: Delete all files in folder \WampDeveloper\Database\mysql-data-56\, and copy all files from \WampDeveloper.old\Database\* back into this location.

2. The database files, when moved under a newer major MySQL branch, have to be updated for that branch by running (from System Tab, command-line button):

mysql_upgrade.exe

* MySQL needs to be started and running for mysql_upgrade.exe to work (also once it’s finished, make sure to restart MySQL).

If: Re-Installing The Same WampDeveloper Branch (v4.2 to v4.2)

1. Move back in your \Database folder (replace in entirety, don’t copy-over).

Nothing else needs to be done as your MySQL branch remains the same.

If: Upgrading WampDeveloper v4.1 to v4.2 (Special Case)

1. Download v4.2:
http://www.devside.net/download/trial/WampDeveloper-4.2.0.3.zip

2. Replace the \Database folder.

3. Due to a my.ini configuration change (for logfile size) between WampDeveloper v4.1 and v4.2 (and the way MySQL 5.5 behaves), MySQL won’t start until these files are removed:
C:\WampDeveloper\Database\ib_logfile0, and ib_logfile1 (you might only have one)

* You can usually safely delete these files, but in some circumstances and edge-cases, they could contain data that is not yet part of some InnoDB tables.

4. Run MySQL’s datafiles upgrade program (from System Tab, command-line button):

mysql_upgrade.exe

* MySQL needs to be started and running for mysql_upgrade.exe to work (also once it’s finished, make sure to restart MySQL).

Re-Install phpMyAdmin’s Database

When phpMyAdmin is upgraded, its existing database should also be re-installed.

Make sure MySQL is running, open the command-line (from System Tab, command-line button), and execute the following commands:

Open the MySQL shell -

mysql -u root -p

Drop and recreate the phpMyAdmin database -

DROP DATABASE phpmyadmin
SOURCE C:/WampDeveloper/Tools/phpMyAdmin/examples/create_tables.sql
exit

* If you have not set a password for MySQL account: root, leave the ‘-p’ part out.

* Make sure to update the path used in the above SOURCE line if WampDeveloper was installed on a different drive (the above example is for drive C:).

Migrate Custom Changes

If you had any custom changes made to the Apache, PHP, or MySQL configurations, the VirtualHost files, AWStats, etc, those changes would need to be re-implemented.

A quick way to see the difference between two configuration files (previous vs. new), or between all files in two directories (ex: between WD 4.1 and WD 4.2 \WampDeveloper\Config\ folders), is to use a tool such as WinMerge (or WinDiff if you have VS.NET installed).

Howto Update WampDeveloper’s Apache PHP MySQL Versions

WampDeveloper can switch between all provided versions of Apache, PHP, and MySQL automatically, while retaining all websites, configurations, databases, etc.

The process is exactly the same for Apache, PHP, and MySQL.

We will use PHP as an example here.

To switch or update to the latest provided PHP version…

1. Go into the Components Tab, PHP sub-tab.

2. Click on the download link for the version of PHP you’d like to use.

For example: php-5.5.11.0-r1-win32-vc11-standard.zip

(*note that there are Standard and FCGI versions of PHP provided)

3. After downloading the PHP version, extract the contents of the zip directly into this folder:
C:\WampDeveloper\Versions\Php\

Important -

If you’ve downloaded and unzipped the above PHP version (5.5.11) correctly and into the proper Versions folder, this file path should now be valid and exact:
C:\WampDeveloper\Versions\Php\php-5.5.11.0-r1-win32-vc11-standard\php.exe

Most of the issues happen here – everything gets unzipped into the wrong folder, into an deeper/extra sub-folder, or the inner files get extracted without their containing folder.

4. In the Components Tab, top right corner, there is a group named “Select Subscription”. Click on its “Channel” drop-down box, it will list items: Current, Stable, Legacy.

Select Channel “Current” – and all the Apache, MySQL, PHP branches on system and in that channel will become select-able via their check-boxes.

(*this step is only for WampDeveloper v5; WampDeveloper v4 has only 1 channel)

5. Then check-mark the above PHP version (5.5.11) in Components Tab, PHP sub-tab.

If you can’t check-mark it, it’s been unzipped into the wrong place. Otherwise, try closing and opening again the WampDeveloper application.

6. Click “Update To Selected”. WampDeveloper will do the rest. All your websites, the MySQL Database, configurations, and everything else, will remain as-is.

The User-Interface will switch to the new versions in about 10 seconds.