Archive for the ‘PHP’ Category

PHP 5.3.1 upgrade on IIS7 and MySQL gives Internal Server Error

Wednesday, February 24th, 2010

Solution

After a lot of googling and testing I finally found Bruce Kirkpatrick’s comment at the end of the PHP install manual

Seems it is no longer enough to have localhost in the servers local hosts file (C:\Windows\System32\drivers\etc\hosts) you also have to comment out or remove the IPv6 equivalent.

127.0.0.1 localhost
#::1 localhost

After I did this everything worked ok again. Thanks Bruce!

Problem

I just upgraded PHP on my Windows Server 2008 running IIS7 from PHP 5.2.10 to 5.3.1. Used the non-threaded install package and installed for FastCGI.

After the upgrade installation worked fine for some non-database driven pages and phpinfo worked fine but whenever a page tries to accessed the MySQL database the browser only gave me a 500 Internal Server Error.

Checking the php error log (C:\Windows\Temp\php-errors.log) I get messages like this:

[24-Feb-2010 13:44:36] PHP Warning: mysql_connect() [<a href='function.mysql-connect'>function.mysql-connect</a>]: [2002] A connection attempt failed because the connected party did not (trying to connect via tcp://localhost:3306) in C:\inetpub\wwwroot\XXX\init_page.inc on line 32
[24-Feb-2010 13:44:36] PHP Warning: mysql_connect() [<a href='function.mysql-connect'>function.mysql-connect</a>]: A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.
in C:\inetpub\wwwroot\XXX\init_page.inc on line 32
[24-Feb-2010 13:44:36] PHP Fatal error: Maximum execution time of 60 seconds exceeded in C:\inetpub\wwwroot\XXX\init_page.inc on line 32

  • Share/Bookmark

PHP 5 with IIS 7 on Windows Server 2008 Tutorial

Wednesday, June 24th, 2009

A few years back I wrote a simple tutorial on how to install and configure PHP5 with IIS6 on Windows Server 2003 in five easy steps. Back then things were not as straight forward as they turned out to be when I tried it again today on a different server setup.
The following worked like a charm on my Windows Server 2008 SP2 Standard Edition to install and configure PHP 5.2.10.

This tutorial presupposes that you have your Windows Server 2008 up and running with IIS (Internet Information Services) configured.

So this time I’m down to four easy steps for installing PHP:

  1. For reasons unknown to me ISAPI is no longer an option so make sure you have activated CGI support on your Windows Server, it is not done by default. Open up Server Manager, select Roles from navigation tree, and under Role Services click Add Role Services and make sure Web Server – Application Development – CGI is checked.
  2. Download the latest version of PHP. Download the PHP installer version found under Windows Binaries.
  3. Run the downloaded MSI install pacakge to install PHP on your server. When asked what web server version to install select IIS FastCGI.
  4. Done!

To test your PHP installation simply create text a file with the php extension, eg. test.php. Add the following three lines of text to it and then save it to your web site directory, eg. C:\INETPUB\WWWROOT. Then use your browser to read the file, eg. http://localhost/test.php

<?php
phpinfo();
?>

Some other tips:

  • If you want to use PHP with MySQL (or any other extensions) make sure you click this option when you install. Don’t worry if you miss it you can run install again at a later time to reconfigure.
  • Share/Bookmark

PHP5 with IIS6 on Windows Server 2003 in five easy steps

Tuesday, May 30th, 2006

[Update: Follow this link if you are looking for an updated tutorial on PHP5 with IIS7 on Windows Server 2008]

How to install and configure PHP5 with IIS6 on Windows Server 2003 in five easy steps.

I thought installing PHP would be as easy as just using the install program. Well it wasn’t… But by learning from my mistakes it can be almost that easy.

Just follow these five easy steps on how to install and configure PHP 5 on a Windows Server 2003 running IIS – after trying the manual and several guides and tutorials found on the net (of which some were very long and very complicated and some were short and easy but partially incorrect) this is what it all came down to. Enjoy.

This is tested on PHP 5.0.4, IIS6 on Windows Server 2003 SP1. Be aware that IIS is not automatically installed with all editions of Windows Server 2003, this guide assumes that IIS 6 and Windows Server 2003 is already up and running on your server.

1. Download PHP at http://www.php.net/downloads.php. Make sure you dowload the “zip package”, the installer package won’t work.

2. Extract the downloaded zip file to a directory of choice on your harddrive. The rest of this guide will assume you are using C:\PHP

3. Add C:\PHP to your path. From the Start menu, right click My Computer and select Properties. From the Advanced tab click the Environment Variables button. Under System Variable find Path and click Edit. At the end of what is already present in Variable Value add a semicolon (;) and then C:\PHP.

4. Configure IIS. Open the Internet Information Services (IIS) Manager from Administrative Tools (found directly in the Start menu or in the Control Panel)

a) Web Service Extension. Click down to the Web Service Extension folder. Right click the folder and select Add New Web Service Extension. Set Extension Name to .PHP and add C:\PHP\PHP5ISAPI.DLL to Required Files . Check Set Extension Status To Allowed.

b) Web Sites. Click down to Web Sites. Right click the folder and select Properties. From the Home Directory tab click the Configuration button. Click Add to add an Application Extension. Enter C:\PHP\PHP5ISAPI.DLL as Executable and PHP as Extension. Leave the rest as default and click Ok.

5. All set! To test your PHP installation simply create text a file with the php extension, eg. test.php. Add the following three lines of text to it and then save it to your web site directory, eg. C:\INETPUB\WWWROOT. Then use your browser to read the file, eg. http://localhost/test.php

<?php
phpinfo();
?>

Other things you might want to consider:

- Some tutorials state that you need to restart the World Wide Web Publishing Service after having installed and configured php. I haven’t needed to (ie everything worked fine without restarting the service) but if you do it is found under Services in the Control Panel.

- As you start using PHP, in the not too distant future you will probably need to make some changes to php.ini. PHP works fine without the php.ini file but you really should have one and it should be in your Windows directory. Copy C:\PHP\PHP.INI-RECOMMENDED to C:\WINDOWS\PHP.INI

- If you are going to use MySQL you will need to make sure to uncomment the line “extension=php_mysql.dll” in php.ini and copy C:\PHP\LIBMYSQL.DLL to C:\WINDOWS\SYSTEM32 (Simply setting the PATH won’t work as this is apparently hard coded in PHP5). If you don’t follow these steps you will get an error message similar to this: “Call to undefined function mysql_connect”

- Read the manual at http://www.php.net/manual/en/install.windows.php

[Updated: If you have any problems, make sure you read the comments to this post. You will find both tips and questions there. If you know the answer to someone's question please answer it.]

(This article is previously published and has been moved to this blog)

  • Share/Bookmark