how to update to Apache 2.2.24, PHP 5.4.12 x64
Posted by: Daremo (---.ummhc.org)
Date: March 12, 2013 02:35PM

I am trying to update PHP and Apache to the latest versions on a machine that’s currently running a website. The machine is running Windows Server 2008 R2 64Bit and the 64Bit version of Wamp with PHP 5.4.3 and Apache 2.2.22 which was installed last summer.

Here is some of the info from the test.php page:


System: Windows NT CO-GDCWEB-01 6.1 build 7600 (Windows Server 2008 R2 Enterprise Edition) AMD64
Apache Version: Apache/2.2.22 (Win64) PHP/5.4.3
Apache API Version: 20051115

If I want upgrade PHP and Apache to the latest versions, what do I need to do? Should I just remove the entire old installation of Wamp and then install the newest one and then update the Apache and PHP to the most recent versions, or can I just go ahead and update Apache and PHP leaving the Wamp alone?

I have copies of Apache 2.2.24 x64 from Apachelounge.com and I also found PHP 5.4.12 compiled in x64 from [www.anindya.com] . I need the thread safe versions correct?


Do I need anything else? If I have everything I need, then what do I need to do to update versions?

One other thing that I need to do is disabling Trace in the httpd.conf file for the Apache. How would I do this?

Thanks!



Edited 1 time(s). Last edit at 03/12/2013 03:08PM by Daremo.

Options: ReplyQuote
Re: how to update to Apache 2.2.24, PHP 5.4.12 x64
Posted by: RiggsFolly (---.as13285.net)
Date: March 12, 2013 03:42PM

HowTo: Install a new version of APACHE into WAMP yourself.


This is not intended to replace the wamp addons mechanism of downloading apache version. If the version you require is available as an addon, use that mechanism, its just so easy.


This tutorial is not really for the absolute beginner. It would help if you had a basic knowledge of how apache/php work together and seperately and their individual configuration, as well as an understanding of what wamp is and does for you.


Read all this document before starting any actual attempt to install an apache version.


This guide assumes you are installing a minor version of an apache you already have installed i.e. apache 2.2.x to apache2.2.y.
I will use the versions 2.2.22 and 2.2.23, the tutorial uses these folder names but of course you will probably be installing different versions.

So here is the process:

1. Download the ZIP version of the Apache you want to run ( not the msi installer, only because I dont know what it may do or assume when it installs )
Suggestion only
[www.apachelounge.com]

2. From wamp manager, Stop all services.

3. Go to c:\wamp\bin\apache\ and create a new folder named appropriately for the release you are installing i.e apache.2.2.23

4. Unzip the Apache downloaded and copy the contents of the unzipped apache folder into your newly created folder in the wamp folder structure. apache2.2.23 in this example.
Make sure the directory levels are the same as your existing apache folder i.e. all the folders get unzipped into a folder called something like apache2, just copy all the subfolders to your new folder wamp\bin\apache\apache.2.2.23 folder. I suggest you unzip it somewhere else and then copy that to the wamp folder.

5. Copy c:\wamp\bin\apache\apache2.2.22\wampserver.conf to c:\wamp\bin\apache\apache2.2.23\wampserver.conf
All the folders in here are relative to where this file lives, so normally nothing need changing in here.
Wamp will not see your new install properly if you forget this step.

6. Now you need to bring your existing httpd.conf file from your current instance of apache.

Be carefull here, things change in the httpd.conf file, parameters get deprecated, new ones get created etc. So use the new httpd.conf as the master and only move over parameters you know you have changed for your actual requirements.

First make a backup of the new wamp\bin\apache\apache2.2.23\httpd.conf as wamp\bin\apache\apache2.2.23\httpd.original.conf ( for example )


There is one parameter in the YOUR OLD httpd.conf file that MUST BE CHECKED/CHANGED and thats:
ServerRoot "d:/wamp/bin/apache/apache2.2.22"
Change the version numbers appropriately to the new versions folder i.e. to
ServerRoot "d:/wamp/bin/apache/apache2.2.23" in this tutorial.


Now we must configure apache to use the correct version of PHP.

Wamp default is to runs PHP as an apache handler, that means apache loads the PHP interpreter as an apache module. ( see below )
So you must also check you are loading the correct handler for the version of apache and the version of PHP you want to use.
The PHP folder should contain 1 or more of these handlers ( dll's ) depending on which versions of php it has been compiled for ( not all php version will run with all apache's ).
You must load the correct dll to match the apache version and the php version you want to use.


Ok I am afraid we need a bit of Techy Stuff here.
=================================================
When PHP is compiled, by cleverer people than us! It is actually compiled more than once for various situations.
If you look in the php/phpx.y.z folder you will see a php.exe, php-win.exe, php-cgi.exe, all of which are irrelivant in the context of this document.

You will also see one or more dll files with names like php5apache2.dll, php5apache2_2.dll, php5apache2_4.dll, again depending on which apache you have download.
These are the php interpreter compiled into a dll for use as an apache handler.
The version of apache that this php is comiled to run with, is denoted by the apache2 (apache 2.0 or 2.1) or apache2_2 (apache 2.2 or 2.3) or apache2_4 ( apache 2.4 ) part of the filename.
The php5 part denotes it is a version of php5 ( but does not tell you which version of php5 ).
The version of php is denoted by the fact that you downloaded php5.3.13 and have luckily loaded it into a folder called php5.3.13 so you know whats what.


If you are using PHP 5.4 with an apache 2.4.x instance:
LoadModule php5_module "d:/wamp/bin/php/php5.4.x/php5apache2_4.dll" for using PHP 5.4

If you are using PHP 5.2 or PHP 5.3 with an apache 2.2.x instance:
LoadModule php5_module "d:/wamp/bin/php/php5.2.x/php5apache2_2.dll"

If you want to use PHP with an apache 2.0.x or 2.1.x instance:
LoadModule php5_module "d:/wamp/bin/php/php5.1.x/php5apache2.dll" for using PHP

NOTE:
This parameter is in the httpd.conf but is loading a file from a PHP folder.
============================================================================

If the php version folder does not contain a handler that matches apache version you want to run then that version of php wont run with that version of apache or your php download has not been compiled for that version of apache, normally the former.

Armed with this information you should be able to find the correct handler for the version of apache and php that you want to run together.
www.apachelounge.com appears to be a good place to start when looking for these.



7. If you are using Virtual Servers you will also need to copy the conf\extras\httpd-vhosts.conf file to the new folder now.


8. We should be nearly done, so
Right click wampmanager -> refresh

This will tell wamp manager to re-configure itself and go look for anything new in its folder structure i.e. you new apache.
Check it has worked by: left click wampmanager -> Apache -> Versions, you should see your new one in the list.

8. Now Left click wamp manager -> Apache -> Versions -> and click your new version numbers to activate the new version of Apache.
This will restart apache and run your new version.

If apache fails to start ( wamp manager stays orange ) either you or I have missed a step. I hope its you!


TROUBLE SHOOTING
If you make a mistake check the apache error log for clues, or the windows event viewer, apache writes errors to this as well as its error log.

If all else fails, delete the new apache.x.y.z folder and re run the Right click on wamp manager -> Refresh and it will re configure itself without your new apache and you can start again.







=============================================================





Before you start

On Apache and PHP you will see the acronym VC6 and VC9. This denotes the compiler version used to compile that program or dll. It stands for Visual C V6 or Visual C V9.
Unfortunately you cannot mix the two when it comes to Apache and PHP.
So first you must find out which compiler was used to compile the Apache you are currently using, so you can get the PHP that was compiled with the same version of the compiler.

The way PHP and Apache interact in the default WAMPServer install is that Apache launches the PHP Interpereter as a dll (php5apachex_y.dll) as this is a very close relationship i.e. not communication via a TCP port like PHP and MySQL, so they both have to have been compiled using the same version of Microsoft Visual C Compiler.


1. From WampManager "Stop All Services".

2. Download the PHP Release you want to install from www.php.net/download
You should use the Thread Safe build.
Make sure its built with the same compiler versions as you Apache ( VC6 or VC9 )

3. Create a new folder under c:\wamp\bin\php\ with the name = the version you are installing
So make a folder called php5.5.11 for example.

4. Now from the folder containing your most recent ( and working ) verions of PHP copy the file called wampserver.conf and paste it into your new PHP folder created in the previous setp.
This file is required by wamp server to properly identify that this is a valid PHP version folder.
The file contains references to the names of the dll files that contain the PHP interpreter, so that the correct file can be copied to the Apache folder when you activate this new version of the PHP interpreter.

5. Now unzip the downloaded PHP into your new folder, make sure the folder hierarchy looks like this.


6. Now in your new folder copy the file php.ini_development into a new file called php.ini

Do the same again but paste into a file called phpForApache.ini
You should now have the original file called php.ini_development PLUS 2 more, one called php.ini and one called phpForApache.ini

The php.ini file is used if you are using the PHP CLI i.e. running php from the command line > php script.php
The phpForApache.ini is the php config used by Apache. This file is copied into the currently active Apache's folder and renamed to php.ini by WAMPmaneger when you activate this version of PHP.

It should look something like this:


7. We must now make some change to the php.ini files to WAMPise them.
Edit the newly created phpForApache.ini file

Search for extension_dir and change to
extension_dir = "d:/wamp/bin/php/phpx.y.z/ext/" <- where x,y,z match the folder you are putting the new PHP into.

Search for ;error_log = php_errors.log and change to
error_log = c:\wamp\logs\php_errors.log
Search for anything 'php/' and make sure you change it to you c:\wamp\bin\php\php.x.y.z folder name.

As of PHP5.4 the timezone needd to be set
Search for [Date] and put an entry into the date.timezone field as a minimum

date.timezone = "Europe/London"
date.default_latitude = 0.0
date.default_longitude = 51.502973

look here for a list of supported timezone values [www.php.net]

Now there may well be other configuration changes you had made to your existing PHP, these you will have to find and transfer yourself.
I suggest you compare your last phpForApache.ini with this new one and move over anything you believe is relevant.



8. Make sure all services are stopped in wampmanager, and then right click over the wamp manager icon in the system tray and select the 'refresh' menu item.
When you left click on wamp manager -> PHP -> Version you should see your new version in the list.

If the new version does not appear, then you have probably spelt the pgpForApache.ini file name wrong. Correct it and redo the 'refresh'.

9. You can now 'restart all services' from the wamp manager menus.

NOTE: You have not actually changed anything yet, so if wamp,Apache,PHP etc were working before they still should be.

10. Activate your new PHP version.
Using the wamp manager menus again you just need to click on the new version number to activate it.
wamp manager -> PHP -> Version -> 5.5.11 ( <- or whatever the version number is you have just added )

This will cause wamp manager to stop Apache ( the icon will go Orange )
Copy the correct files from the PHP folder to the Apache folder
php5apachex_y.dll, the php interpreter dll used by Apache
phpForApache.ini the php config file
etc

And then restart Apache. So the wamp manager icon should go GREEN again.

If the wamp manager icon stays ORANGE, then you have missed something, probably a file name spelt wrong. The phpForApache.ini file must exists.

11. Now run localhost from the wamp manager menu, and check the wamp server home page. It should tell you which version of PHP is loaded.




TROUBLE SHOOTING
If it all goes wrong when you activate the new PHP, you can easily back out of trouble by just activating whatever version of PHP you were using before, and then going back to see what you did wrong.


ADDING IONCUBE

You must ensure that you download the correct version to match your PHP :-
compiler( VC6 or VC9 ) compiled ionCube dll
correct 32 or 64 bit code
and the Thread Safe version which is the one that is NOT NON-TS


1. Download the correct ionCube loader from [www.ioncube.com]
2. Place it somewhere on your disk, but not in the WAMP folder.
for example c:\webstuff\ioncube\vc9\
2. Edit the new php.ini Using the wamp manager menus
Add these 2 lines at the bottom of the file.
Remeber the version you load will depend upon which version of PHP you are using.

;ioncube Extension
zend_extension = "c:/webstuff/ioncube/vc9/ioncube_loader_win_5.3.dll"



ADDING XDEBUG
XDEBUG comes with WAMP Server and is incredibly useful for debugging CLI or WEB scripts.
But it does not come with the PHP you have downloaded from the PHP website.
When upgrading PHP to a major version release you may need to get an up to date version of xdebug from
http://xdebug.org/download.php
For a minor version upgrade you can probably use the existing xdebug version you already have on disk.

So for a minor PHP version upgrade, copy the folder c:\wamp\bin\php\php5.y.z\zend_ext from your old PHP to your new php folder.
For a major PHP version upgrade get a new dll from the xdebug website and put it in a newly created folder called c:\wamp\bin\php\php5.y.z\zend_ext

Now add this line to your php.ini ( using the wamp manager menus, to ensure you are editing the correct file )

;XDEBUG Extension
zend_extension = "d:/wamp/bin/php/phpx.y.z/zend_ext/php_xdebug-2.2.0-5.3-vc9.dll"

[xdebug]
xdebug.remote_enable = off
xdebug.profiler_enable = off
xdebug.profiler_enable_trigger = off
xdebug.profiler_output_name = cachegrind.out.%t.%p
xdebug.profiler_output_dir = "d:/wamp/tmp"



EXTRA INFO


uncomment your extensions
Set a timezone
date.timezone = "Europe/London"
date.default_latitude = 0.0
date.default_longitude = 51.502973

Options: ReplyQuote
Re: how to update to Apache 2.2.24, PHP 5.4.12 x64
Posted by: Daremo (---.ri.ri.cox.net)
Date: March 13, 2013 10:04PM

I am working through your instructions and am getting stuck at the PHP handler. Specifically this part:

>You will also see one or more dll files with names like php5apache2.dll, php5apache2_2.dll, >php5apache2_4.dll, again depending on which apache you have download.
>These are the php interpreter compiled into a dll for use as an apache handler.
>The version of apache that this php is comiled to run with, is denoted by the apache2 (apache 2.0 or 2.1) >or apache2_2 (apache 2.2 or 2.3) or apache2_4 ( apache 2.4 ) part of the filename.
>The php5 part denotes it is a version of php5 ( but does not tell you which version of php5 ).
>The version of php is denoted by the fact that you downloaded php5.3.13 and have luckily loaded it into a >folder called php5.3.13 so you know whats what.
>
>
>If you are using PHP 5.4 with an apache 2.4.x instance:
>LoadModule php5_module "d:/wamp/bin/php/php5.4.x/php5apache2_4.dll" for using PHP 5.4
>
>If you are using PHP 5.2 or PHP 5.3 with an apache 2.2.x instance:
>LoadModule php5_module "d:/wamp/bin/php/php5.2.x/php5apache2_2.dll"
>
>If you want to use PHP with an apache 2.0.x or 2.1.x instance:
>LoadModule php5_module "d:/wamp/bin/php/php5.1.x/php5apache2.dll" for using PHP


I looked around Apachelounge and found additional handlers, but I did not see one for this version of Wampserver. Wampserver 2.2e (Apache 2.2.22, PHP 5.4.3, MYSQL 5.5.24) win64 should need a handler specifically made for it, correct? I looked for a file called php5apache2_2.dll-php-5.4-win64.zip and have had no luck yet.

Does this mean this particular version of Wampserver can not be upgraded to Apache 2.2.24 and PHP.5.4.12 at this time?

Options: ReplyQuote
Re: how to update to Apache 2.2.24, PHP 5.4.12 x64
Posted by: RiggsFolly (---.as13285.net)
Date: March 14, 2013 10:45AM

These files live in the c:\wamp\bin\php\phpx.y.z folder

Like it says they are the PHP language interpreters that Apache links to so it can compile and run your php code. They are specific to the PHP version you want to run so look for them in the php folder.

They must match the php version you want to use and the apache version you want to use it with, hence there name identifies a php version and an apache version

php5apache2.dll, php5 run under apache 2.0 and 2.1
php5apache2_2.dll, php5 run under apache 2.2 and 2.3
php5apache2_4.dll, php5 run under apache 2.4

Note they all just say php5, the version of php5 i.e. php5.3.17 is inplied because they come in the php5.3.17 release and are in the set of files delivered with that release

Options: ReplyQuote


Sorry, only registered users may post in this forum.