I finally got the following set up on my (ack, cough) Windows XP machine:

  • Apache 2.0.49

  • PHP 5.0.0RC3

  • MySQL 4.1.2-alpha-nt (using MySQLi)

  • phpMyAdmin 2.6.0-alpha2

I know a lot of people have trouble installing a setup like this, so here are a few notes:

  1. If possible, start from scratch. Uninstall MySQL, PHP, Apache. I had a much easier time this way.

  2. Set extension_dir to the proper path for your extentions in php.ini. For me, it was "C:\PHP\ext\". Make sure you include the final backslash, although on my system it didn't seem to matter. Most people recommended it.

  3. uncomment the line "extension=php_mysqli.dll" in php.ini, if using MySQLi, and "extension=php_mysql.dll" if using MySQL.

  4. copy php5ts.dll to your Windows %SYSTEM% directory (for me, that was c:\windows\system32).

  5. copy libmysqli.dll (if using MySQLi) and/or libmysql.dll (if using MySQL) to the Windows %SYSTEM% directory.

I missed copying the dll files to the system directory. I kept getting an error trying to load phpmyadmin, "could not load module," failing on php_mysql.dll. That was confusing, and I mucked with the extension_dir for hours. I finally went to www.dependencywalker.com and downloaded a very cool app called Dependency Walker. I ran it on php_mysqli.dll, and discovered that it couldn't find the libmysqli.dll and php5ts.dll files. Strangely enough, even though all of the "php_" extensions are in the ext folder, those two (and a few others) are in the root PHP directory. Copying them to the window system folder solved the problem.

I think that's most of the "gotcha's" of the installation. If I have missed anything, please use this thread to add it, so that other people trying to install this "uber-alpha" setup can do so without the toothaches I had to endure.

Thanks!

    its generally best to copy every dll in the root php folder (excluding all the ones that start with php5 (except php5ts which isn't a SAPI)) to %windir%\system32

      I've found it's much easier to install if you include the "L" part of "LAMP" 😃

      /me runs for the hills, sowing the seeds for OS holy wars as he goes.

        Hey Buzzly where you get the mysqli.dll?

        Its not in the rc3 release

        I just managed to set up php5, mysql 4.1.2 and apache 2.47 on a box that already has a server setup but cannot find the mysqli.dll in rc3.

          On my installation, it was in the PHP\ext\ folder. It's called PHP_mysqli.dll. If you still need it, I can attach it here, but it should be there if you have the right PHP version installed.

            Can you please forward it on as its not in the ext/ dir in the version i downloaded.

            thanks

            GM

              Thanks!

              Your post really helped me I was having the same mysql dll issue. Copied them all to the system32 folder works like a charm!

              Jesse

                Originally posted by trooper
                Can you please forward it on as its not in the ext/ dir in the version i downloaded.

                It was in the version I downloaded - which one did you download?

                  a month later

                  ** WARNING
                  Possible dumb question to follow!!!!
                  END WARNING **

                  httpd config file I have the following

                  LoadModule php5_module D:/Programming Apps/PHP/php5apache2.dll
                  AddModule mod_php5.c
                  AddType application/x-httpd-php .php

                  wich is causing an error.

                  Its taking D:/Programming and Apps/PHP/php5apache2.dll to be 2 seperate arguements when 1. they cant be and 2. the LoadModule only takes a total of 2 arguments type and location.

                  My question is how do I represent the space with a character so that it works ... I tried %20 and that didnt work ... anyone got any ideas?

                  Thanks

                    Single or Double quotes should do the trick so

                    LoadModule php5_module "D:/Programming Apps/PHP/php5apache2.dll"
                    AddModule mod_php5.c
                    AddType application/x-httpd-php .php 
                    

                      Originally posted by goldbug
                      I've found it's much easier to install if you include the "L" part of "LAMP" 😃

                      /me runs for the hills, sowing the seeds for OS holy wars as he goes.

                      You're not kidding, though, man. I am reading this post and I am just baffled. Why is it such a problem doing this on windows? I upgraded to php5 on apache2 last night in about 5 minutes (the time it took to compile php5 from source). I removed php4, installed php5, changed a couple lines in httpd.conf and then restarted apache and everything was perfect.

                      If only they understood, man.

                        a year later

                        FYI...originally added PHP to Apache as a module:

                        [INDENT]LoadModule php5_module "c:/php/php5apache2.dll"
                        AddType application/x-httpd-php .php
                        PHPIniDir "C:/php"[/INDENT]
                        ...and couldn't get the mysqli ext to work no matter what I tried. So I finally went to CGI-mode instead:

                        [INDENT]ScriptAlias /php/ "c:/php/"
                        AddType application/x-httpd-php .php
                        Action application/x-httpd-php "/php/php-cgi.exe"[/INDENT]
                        ...and suddenly mysqli started working.

                        BTW also added c:\php and c:\php\ext to PATH instead of sumping dlls into c:\windows\system32, and that seems to work fine too...(unless they're loaded into memory now and will start failing when I restart...here goes!)

                          a year later

                          I know this post is old as the hills, but your instructions just spared me a world of pain and I wanted to say "thank you". 🙂

                            Write a Reply...