## Apache 2.x on Microsoft Windows

Этот раздел содержит инструкции по установке PHP для Apache 2.x на системы Microsoft Windows. Мы также имеем инструкции для пользователей Apache 1.3.x на отдельной странице.

Замечание:

Сначала вам необходимо прочитать пошаговое руководство по установке

Замечание: Поддержка Apache 2.2

Пользователям Apache 2.2 следует обратить внимание на то, что DLL файл для Apache 2.2 называется php5apache2_2.dll, а не php5apache2.dll и он доступен только для PHP 5.2.0 и более поздних версий. Смотрите также » http://snaps.php.net/

Вам настоятельно рекомендуется ознакомиться с » Документацией по Apache, чтобы получить базовые знания о Apache 2.x Server. Также перед чтением данной справки обратите внимание на » Рекомендации для Windows по Apache 2.x.

Apache 2.x предназначен для работы в серверных версиях Windows, таких как Windows NT 4.0, Windows 2000, Windows XP или Windows 7. Хотя Apache 2.x может использоваться на Windows 9x, эти платформы не поддерживаются полностью, и некоторые функции не будут работать правильно. Исправление этой ситуации не планируется.

Скачайте наиболее актуальную версию »  Apache 2.x и подходящую версию PHP. Следуйте Пошаговому руководству по установке и вернитесь для продолжения интеграции PHP и Apache.

Существует три пути установки PHP для Apache на Windows. Вы можете запустить PHP как обработчик, как CGI, или под FastCGI.

Замечание: Помните, что при указании путей в конфигурационных файлах Apache под Windows, все обратные слэши, например, c:\directory\file.ext должны быть изменены на прямые: c:/directory/file.ext. Для путей с директориями также может понадобиться слэш в конце.

### Установка PHP как обработчика под Apache

Вам необходимо добавить следующие строки в ваш конфигурационный файл Apache httpd.conf для загрузки PHP-модуля для Apache 2.x:

Пример #1 PHP как обработчик Apache 2.x

#

# конфигурирование пути к php.ini
PHPIniDir "C:/php"

Замечание: Не забудьте указать актуальный путь к директории PHP вместо C:/php/ в приведенном примере. Позаботьтесь, чтобы в директиве LoadModule использовались либо php5apache2.dll либо php5apache2_2.dll и удостоверьтесь, что указанный файл фактически находится по пути, который вы указали в директиве.

Приведенная выше конфигурация позволит PHP обработать любой файл, который имеет расширение .php, даже если имеются другие расширения. К примеру, файл с именем example.php.txt будет запущен обработчиком PHP. Чтобы гарантировать, что только файлы, которые имеют расширение.php будут запущены, используйте следующую конфигурацию:

<FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch> ### Запуск PHP как CGI Вы должны обратиться к документации » Apache CGI для более полного понимания о запуске CGI под Apache. Для запуска PHP как CGI, вам необходимо поместить ваши php-cgi файлы в директорию, обозначенную как директория CGI, используя директиву ScriptAlilas. После этого вам необходимо добавить строку #! в PHP файлы, указывающую на местоположение исполняемого файла PHP. Пример #2 PHP как CGI под Apache 2.x #!C:/php/php.exe <?php phpinfo(); ?>  Внимание Используя установку CGI, ваш сервер открыт перед несколькими возможными уязвимостями. Пожалуйста, ознакомьтесь с разделом "Безопасность CGI" чтобы узнать, как можно защитить себя от таких атак. ### Запуск PHP под FastCGI Запуск PHP под FastCGI имеет ряд преимуществ по сравнению с запуском как CGI. Установка же довольно проста: Получить mod_fcgid здесь: » http://httpd.apache.org/mod_fcgid/. исполняемые файлы под Win32 доступны для скачивания с этого сайта. Установите модуль в соответствии с прилагаемыми инструкциями. Настроить свой веб сервер как указано ниже, позаботившись о соответствии всех путей установки на вашей конкретной системе: Пример #3 Конфигурация Apache для запуска PHP как FastCGI LoadModule fcgid_module modules/mod_fcgid.so # Где находится ваш php.ini? FcgidInitialEnv PHPRC "c:/php" AddHandler fcgid-script .php FcgidWrapper "c:/php/php-cgi.exe" .php  Файлы с расширением .php в таком случае будут запускаться с помощью оболочки PHP FastCGI. ## Коментарии  Some XP machines are having troubles with the PHPIniDir derective not finding the php.ini (or so they think). Directories that do contain a php.ini file are returned as empty and it defaults to the next method of finding php.ini (often C:/windows or C:/winnt). This is likely caused by read permissions not being set correctly on NTFS file systems, however, it has occurred when no cause could be identified. If setting correct file permissions doesn't work, the easiest way around this problem is moving php.ini to the Apache directory or adding the HKEY_LOCAL_MACHINE\SOFTWARE\PHP\IniFilePath string to your registry and setting it to the correct directory.  2005-05-17 08:59:14 http://php5.kiev.ua/manual/ru/install.windows.apache2.html  To install PHP as Apache 2 CGI script, add these lines in addition to the 3 lines mentioned in the document. <Directory "C:/php"> AllowOverride None Options None Order allow,deny Allow from all </Directory>  2006-08-04 16:56:19 http://php5.kiev.ua/manual/ru/install.windows.apache2.html  it's important to note that on Apache 2.2.3 (probably other 2.x versions as well) on Windows, the PHPIniDir directive must use forward slashes to delimit directories, not the backslashes commonly used for Windows path strings. If PHP seems to be ignoring the directive, this may be why.  2007-01-10 19:35:00 http://php5.kiev.ua/manual/ru/install.windows.apache2.html  ..try to set the extension_dir in php.ini to the absolute path.. (when you are pretty sure that you have set the PHPIniDir the right way)  2007-02-14 18:19:53 http://php5.kiev.ua/manual/ru/install.windows.apache2.html  Verrrrrrrry important note: If you enable multi-byte strings for your installation of PHP, the extension loaded MUST be the first extension in the list. Apache, NOR PHP will generate any error messages or warning information in the error log or in system logs about this. This information needs to be included in the Readme or in the distributed INI files. The recommended PHP ini's should place extension=php_mbstring.dll at the top of the list of extensions. I had completely forgotten about this when recently upgrading php on a test server; and almost set out to re-install apache.  2007-06-15 10:30:26 http://php5.kiev.ua/manual/ru/install.windows.apache2.html  To do a silent install of PHP wich correctly modify the httpd.conf file, you HAVE (I find no other way) to put the directory of the Apache inside the INSTALLDIR's MSI option. the APACHEDIR doesn't seem to work. That's the only way I've make it work. Maybe it's because my Apache is not in the default directory, I don't know, but there is a solution for people who cannot make work the silent install (for those who are told by the php setup that it cannot find the httpd.conf file). Hope it helps someone.  2007-07-31 17:05:20 http://php5.kiev.ua/manual/ru/install.windows.apache2.html  If you install PHP as an Apache CGI binary, you can add: AddHandler cgi-script .php into Apache httpd.conf, and add shebang line to every PHP scripts like: #!php <?php phpinfo(); ?> . But adding shebang line has a disadvantage that if you decided to install PHP as an Apache module afterwards, then the shebang line WILL appear in the web page. In fact, you do NOT need to add shebang line to every PHP script even if you install PHP as an Apache CGI binary, because you can add: ScriptInterpreterSource Registry-Strict into Apache httpd.conf, and make the registry file and merge it like: Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\.php\Shell\ExecCGI\Command] @="\"C:\\Program Files\\PHP\\php-cgi.exe\"" . Then you will NOT need to change the PHP scripts which do not contain shebang line.  2007-10-02 23:24:12 http://php5.kiev.ua/manual/ru/install.windows.apache2.html  If you use the PHP 5 installer, you'll notice that it uses the wrong type of slash on Windows! Change C:/Program Files/PHP/" to C:\Program Files\PHP\" and everything works great!  2008-01-26 22:33:00 http://php5.kiev.ua/manual/ru/install.windows.apache2.html  I do not have IIS installed on my server, only Apache. So I had to edit the PHP.ini file and comment out (add leading ";") to the following line "extension=php_iisfunc.dll" as I was getting "Faulting application httpd.exe, faulting module php_iisfunc.dll" errors when this line was active. I also added an additional "AddType application/x-httpd-php .html" to my httpd.conf file so that inline php would work with files ending with an extension of ".html" on my server.  2008-02-10 10:41:20 http://php5.kiev.ua/manual/ru/install.windows.apache2.html  All good advice from henke, except where it says "Do not edit the system path". You will NOT be able to load extensions that have dependencies e.g. MySQL, without adding PHP to your system path. This threw me for some time as other extensions without dependencies will work without this requirement.  2008-04-20 21:08:21 http://php5.kiev.ua/manual/ru/install.windows.apache2.html  i followed henke37's way to for the httpd.conf I added all this at the very end of httpd.conf # For PHP 5 #load the php main library to avoid dll hell Loadfile "C:\php-5.2.8-Win32\php5ts.dll" #load the sapi so that apache can use php LoadModule php5_module "C:\php-5.2.8-Win32\php5apache2_2.dll" #set the php.ini location so that you don't have to waste time guessing where it is PHPIniDir "C:\php-5.2.8-Win32" #Hook the php file extensions AddHandler application/x-httpd-php .php AddHandler application/x-httpd-php-source .phps Also i didn't use short open tags as they are disabled in "php.ini-recommended" if you don't change anything So use this to test <?php phpinfo(); ?> NOT <? phpinfo(); ?> short open tags added my php directory to the PATH system variable and i start apache manually not as a service It works for me hope it helps you!  2009-02-26 08:32:07 http://php5.kiev.ua/manual/ru/install.windows.apache2.html  This is old news to some. But people with Apache 2.0.55 / PHP 5.1.2 might like a reminder before they pull their hair out! (Some of us have ISPs using older version and need to test on a like version before we upload.) If using PHP 5.1.2, to run Apache as a module, do *not* use Stephan's "php5apache2.dll" from http://www.ApacheLounge.com. That is for pre-5.1.2! **There is a "php5apache2.dll" included with Windows PHP 5.1.2 zip file by default.** If you forget this and overwrite the included DLL with Stephan's (as I did) you'll spend hours attempting to escape "DLL hell", with no success.  2009-04-16 14:27:44 http://php5.kiev.ua/manual/ru/install.windows.apache2.html  Here is how I created a silent install for Apache2.2 and PHP5.2.10 on Windows XP (running on a MacBook Pro): Download Apache2 and PHP5 installer files in a directory and update the msi file names in the following commands. To have PHP installer find Apache2, do not forget APACHEDIR! msiexec /i apache_2.2.11-win32-x86-no_ssl.msi /passive ALLUSERS=1 SERVERADMIN=admin@localhost SERVERNAME=localhost SERVERDOMAIN=localhost SERVERPORT=80 INSTALLDIR=c:\apache msiexec /i php-5.2.10-win32-installer.msi /qn APACHEDIR=c:\apache INSTALLDIR=c:\php ADDLOCAL=ext_php_mssql,apache22 net stop "Apache2.2" net start "Apache2.2"  2009-07-07 13:08:14 http://php5.kiev.ua/manual/ru/install.windows.apache2.html  If anybody here encounters an error regarding PHPIniDir, change PHPIniDir "C:/php/" to PHPIniDir "C:\php\".  2009-12-10 03:25:33 http://php5.kiev.ua/manual/ru/install.windows.apache2.html  If you find that Apache crashes when you attempt to start it, its likely that one of the PHP extensions is the cause. This is likely the case if you use the PHP Windows installer and choose all extensions in the setup program to be installed on disk. Unfortunately, it will also enable all extensions too causing potential problems. For example, after installing PHP 5.2.11 and Apache 2.2 under Windows XP, Apache kept crashing. This was due to using all three versiosn of mysql extensions attempting to run: [PHP_MYSQL] extension=php_mysql.dll [PHP_MYSQLI] extension=php_mysqli.dll [PHP_PDO_MYSQL] extension=php_pdo_mysql.dll  2009-12-14 00:56:44 http://php5.kiev.ua/manual/ru/install.windows.apache2.html  I also had a problem with the PHPIniDir declaration. This is with Apache 2.2 on XP. I had to include a final slash, as in PHPIniDir "C:\Program Files\php\". Apache failed to start if I did not include the slash after php.  2010-02-23 18:53:33 http://php5.kiev.ua/manual/ru/install.windows.apache2.html  The value for FcgidWrapper cannot contain spaces.. This won't work: FcgidWrapper "c:/program files (x86)/php/php-cgi.exe" .php But this will: FcgidWrapper "c:/progra~2/php/php-cgi.exe" .php  2010-03-03 11:48:46 http://php5.kiev.ua/manual/ru/install.windows.apache2.html  After using the Windows installer for Apache 2.2 and PHP 5.3.2, and installing PHP as an Apache module (not CGI), Apache would crash and fail to start. There were two problems with the configuration files for Apache and PHP. First, make sure your Apache configuration file reads something similar to: LoadModule php5_module "C:/Program Files/PHP/php5apache2_2.dll" PHPIniDir "C:/Program Files/PHP/" While other users have disabled some or all of the MySQL extensions to prevent all three from running at the same time, I have all of them enabled. However, I do not have PostgreSQL, so I needed to comment out loading the php_pgsql.dll in my php.ini file, as follows: ;[PHP_PGSQL] ;extension=php_pgsql.dll This stopped Apache from crashing and started successfully.  2010-06-16 09:48:26 http://php5.kiev.ua/manual/ru/install.windows.apache2.html  I wanted to install PHP5.3 for Apache2.2 with PostgreSql 9.0 support on WindowsXP. It took me hours to solve it. The following possible problems occur: - You should use the VC6-compiled version of php instead of VC9. The later one does not work properly with apache. - the postgres handler dlls are not working in PHP5.3. The symptom was a misleading and very confusing error message: Unable to load dynamic library 'c:\Progra~1\PHP\ext\php_pgsql.dll' The dll itself was there but when it started to load the other dll (libpq.dll) from the php directory then this caused an error. This error was misinterpreted internally in the above message. The solution was NOT to use the libpq.dll from php but use it from postgres distribution instead. For this purpose I inserted the following line into the apache httpd conf: LoadFile "C:/Progra~1/PostgreSQL/9.0/bin/libpq.dll" This preloads the dll. When php_pgsql.dll would load his own libpq.dll, then there is the preloaded version of this file in the memory already. This prevents us from using the bad version of dll. I hope I helped.  2010-11-15 05:42:54 http://php5.kiev.ua/manual/ru/install.windows.apache2.html  I install httpd-2.2.17-win32-x86-openssl-0.9.8o.msi and after php-5.3.3-Win32-VC9-x86.msi on WinXP SP3. PHP installation add to httpd.conf next lines: LoadModule php5_module "C:/PHP/php5apache2_2.dll "PHPIniDir "C:/PHP" After it Apache dont starts. If remove PHPIniDir line Apache starts ok, but C:/PHP/php.ini dont loaded. So you cant use any extension (for me it's MySQL). I uninstall VC9 version and install VC6 (php-5.3.3-Win32-VC6-x86.msi) version. All works fine now.  2010-11-17 00:59:03 http://php5.kiev.ua/manual/ru/install.windows.apache2.html  Running PHP under FastCGI: Besides the following in your httpd.conf LoadModule fcgid_module modules/mod_fcgid.so FcgidInitialEnv PHPRC "c:/php" AddHandler fcgid-script .php FcgidWrapper "c:/php/php-cgi.exe" .php Remember to add the following to the default <Directory "C:/apache/htdocs"> block (or virtual host blocks): Options ExecCGI  2010-11-20 13:36:29 http://php5.kiev.ua/manual/ru/install.windows.apache2.html  Running Apache2.2 on Windows 7. There was no php5apache2_2.dll on my system, and all I got was a message box "The requested operation has failed!" (no, that's not OK). Finally realized that thread-safe version (VC6, mind!) was necessary - it had the dll in it. Downloaded that, apache runs with LoadModule php5_module 'C:/Program Files (x86)/PHP/php5apache2_2.dll' #etc  2010-12-30 11:31:06 http://php5.kiev.ua/manual/ru/install.windows.apache2.html  If Apache won't start after PHP install, check for this scenario: When I followed the instructions for the Windows installer, using Apache HTTP server 2.2.17, the install completed normally but Apache would then fail to start. It turned out that the installer was not properly configuring the last section of Apache's httpd.conf file: #BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL PHPIniDir "c:/php/" LoadModule php5_module "c:/php/php5apache2_2.dll" #END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL The text above is the correct configuration (in my case, I had asked the installer to place PHP into directory C:/PHP.) However, the installer omitted the string "c:/php/" from the two lines above where you can see them. I had to edit the file, and add that string in manually, before Apache would start correctly.  2011-01-25 15:43:13 http://php5.kiev.ua/manual/ru/install.windows.apache2.html  man I had a heck of time.. I was really starting to think I was just too simple minded.. I run PHP on iis7 as well as apache.. my os is win7 pro.. my host uses php 5.2 sooooo.. to run on apache 2.2 download nonthread safe version (my case VC6 x86 Non Thread Safe (2011-Jan-06 18:38:35)) and add this to the end of your apache httpd.conf file #BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL PHPIniDir "c:/php/" LoadModule php5_module "c:/php/php5apache2_2.dll" AddHandler application/x-httpd-php .php <FilesMatch \.php$>       SetHandler application/x-httpd-php  </FilesMatch> #END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL fired right up.. 
2011-02-07 02:29:57
http://php5.kiev.ua/manual/ru/install.windows.apache2.html
 I just spent 5 hours repeatedly trying, usuccessfully, to get Apache to parse php files instead of sending them to the browser.  I am setting up a Win 7 Pro box, and went through the configuration several times, as well as trying other configuration directives I found elsewhere by searching. Nothing worked. I was tearing my hair out and ready to cry.  I have set this up numerous times on XP with no problem.  But on Win 7 Pro it wasn't happening. Eventually I found this code, which worked perfectly (after taking out directives from httpd.conf that weren't working, of course) LoadFile "C:/php/php5ts.dll" LoadModule php5_module "C:/php/php5apache2.dll" <IfModule php5_module>     #PHPIniDir "C:/Windows"     #PHPIniDir "C:/Winnt"     <Location />         AddType text/html .php .phps         AddHandler application/x-httpd-php .php         AddHandler application/x-httpd-php-source .phps     </Location> </IfModule> If you've been having the same problem, try this.  You're welcome. 
2011-04-28 21:44:59
http://php5.kiev.ua/manual/ru/install.windows.apache2.html
 Here is yet another aspect of the "faulting module php5ts.dll" crash when trying to start apache. I installed Apache 2.2.18, Mysql 5.1.57 and PHP 5.2.17 (apache module, VC6 thread-safe - initially with no extensions) on a fresh WinXP SP3 system. The versions chosen were because I was trying to replicate as near as possible apps on my Linux server. Everything configured and ran properly without php extensions, so I then reran the msi installer and chose the necessary extensions.  I reconfigured httpd.conf  but apache then just kept crashing. Eventually I came across the "fix" mentioned elsewhere "copy libmysql.dll to apache folder" and suddenly it worked. But why? I checked and the php installation folder was in the system path. The answer was simply that I had never rebooted. It seems that whatever process controls windows services only reads the path at boot time.  I was thrown by assuming that if I started httpd from the command line then it would inherit that path. Here are a few diagnostic tips that helped me along the way: Try the CLI command: php -m and see that the command line version loads all the modules you asked for. in php.ini, enable  display_errors = On and display_startup_errors = On The latter pops up a window saying which extension it has trouble loading. Of course it is not perfectly clear, because it says something like 'unable to load "C:\php\ext\php_mysql.dll" - The specified module could not be found'. It lies - it really does find that dll, but it must have failed on the dependency of libmysql.dll. 
2011-05-15 02:37:43
http://php5.kiev.ua/manual/ru/install.windows.apache2.html
 If you are having problems with php5ts.dll... php5ts.dll is php5.dll but thread safe, hence the 'ts' at the end.  Software Details: MySQL  5.5 PHP 5.2.17 VC6 Non-thread safe Apache 2.2.19 Win XP SP3 Here's how I fixed the problem: I've been looking online on how to integrate Apache with PHP right so I come across this code to put in my httpd.conf apache configuration file: LoadModule php5_module "C:/php/php5apache2_2.dll" AddHandler application/x-httpd-php .php PhpIniDir "C:/php" I paste it in a voila! it crashes!  I know its not news, but I looked and lo and behold its that darn php5ts.dll file! In short: I installed PHP 5.2.17 VC6 Non-Thread Safe.  I then installed the PHP 5.2.17 VC6 thread safe so I could copy these files from the thread safe installation into the PHP 5.2.17 VC6 Non-Thread safe installation directory: php5apache2_2.dll php5apache2_2filter.dll Not sure if that last file is needed but I added it anyway. Then I uninstalled the thread safe installation. The Apache service started right up. Had some problems with MySQL too: When I installed it the first time it was fine.  Then I uninstalled it and got that "Service could not be started Error: 0" message. To do a complete deletion do this: 1) Use MySQLInstanceconfig.exe to remove the service 2) Use the "Add/Remove programs" to uninstall MySQL 3) Delete the "c:\program files\MySQL directory" 4) Delete the "c:\documents and settings\All Users\Application Data\MySql\" directory 5) Launch regedit.exe from START>RUN and press ctrl+f for the find function and type in MYSQL to find and get rid of anything "MySQL" in there.  Press F3 to find repeat instances of "MySQL" I hope this helps you.  I spent about 30hrs uninstalling and reinstalling this crap... 
2011-07-29 17:12:31
http://php5.kiev.ua/manual/ru/install.windows.apache2.html
 Also had an exception problem when trying to use mysql with apache and php5.  I had to add: "<my MySQL folder>\bin" folder to path "<my php folder>\ext" to path that fixed it 
2011-08-31 10:56:51
http://php5.kiev.ua/manual/ru/install.windows.apache2.html
 I was able to get apache up and running without any problems. Then I tried installing php and it crashed trying to read "C:/php/php5apache2.dll". Fixed the problem by switching it to "C:/php/php5apache2_2.dll" Hope that helps! 
2011-10-31 15:38:09
http://php5.kiev.ua/manual/ru/install.windows.apache2.html
 Apache 2.2 crashing on WindowsXP/Apache2.2/php5.3.8_Win32.VC9-x86 There is a distinction between LoadFile and LoadModule. LoadModule is typically used to load  Shared Objects (.so), and comes in very handy for Dynamically Shared Objects LoadFile on windows it typically used to load DLL Please note:  In order for a LoadMoudle directive to work on a DLL the module must be compiled into the library.  If you use VI you can usually locate the module, but the file is compiled, don't write it! A dll can be located anywhere on the system. A .so should be located in your Apache install modules folder. What worked for me for Windows XP/Apache2.2/php5.3.8_Win32.VC9-x86 PHPIniDir "C:/PHP/" LoadFile "C:/PHP/libeay32.dll" LoadFile "C:/PHP/libpq.dll" LoadFile "C:/PHP/libsasl.dll" LoadModule php5_module "C:\PHP\php5apache2_2.dll" This comment is to support the Apache startup, NOT serve PHP pages. 
2011-12-18 11:34:55
http://php5.kiev.ua/manual/ru/install.windows.apache2.html
 A Thread Safe version should be used if you install PHP as an Apache module. The Non Thread Safe version should be used if you install PHP as a CGI binary. 
2012-02-05 00:09:03
http://php5.kiev.ua/manual/ru/install.windows.apache2.html
 After spending few hours finally figured out that PHPINIDir path should be in single quotes and with backslash and php module with double quotes and regular slashes: PHPIniDir 'c:\apps\php\' LoadModule php5_module "c:/apps/php/php5apache2_2.dll" AddHandler application/x-httpd-php .php 
2012-03-05 16:23:15
http://php5.kiev.ua/manual/ru/install.windows.apache2.html
 Just a note  It might be important you include the absolute path to the php.ini  file inside the httpd.conf file so that php may load all the module(s). below is an example  #BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL PHPIniDir 'C:\PHP\php.ini' LoadModule php5_module "c:/php/php5apache2_2.dll" AddHandler application/x-httpd-php .php #END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL OS: windows 2008 webserver: apache2.2 
2012-03-15 13:56:42
http://php5.kiev.ua/manual/ru/install.windows.apache2.html
 Just a note  It might be important you include the absolute path to the php.ini  file inside the httpd.conf file so that php may load all the module(s). below is an example  #BEGIN PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL PHPIniDir 'C:\PHP\php.ini' LoadModule php5_module "c:/php/php5apache2_2.dll" AddHandler application/x-httpd-php .php #END PHP INSTALLER EDITS - REMOVE ONLY ON UNINSTALL OS: windows 2008 webserver: apache2.2 
2012-03-15 13:57:18
http://php5.kiev.ua/manual/ru/install.windows.apache2.html
 I was struggling with configuring PHP 5.2.17. (msi version) for Apache 2.2.22. on Windows 7. Apache was working before fine. The following failure message came as I tried to start Apache: "The requested operation has failed!" After many hours finally the comment from "bdav 05-Mar-2012 02:23" helped me and the following code in httpd.conf made Apache working with PHP: LoadModule php5_module "c:/php/php5apache2_2.dll" AddHandler application/x-httpd-php .php PHPIniDir 'c:\php\' I hope I can save some hours of frustration to some beginners like me. 
2012-04-15 15:54:32
http://php5.kiev.ua/manual/ru/install.windows.apache2.html
 Installing Apache and PHP on Windows 7 Home Premium on a Gateway NV75S laptop with a quad AMD A6-3400M All I need to do with these programs is to test my website out on my laptop.  I have HTML and PHP files. I do not need MySQL as I use html5 storage. Getting and installing Apache 1  In your browser go to h t t p : / / h t t p d . a p a c h e . o r g / d o w n l o a d . c g i    (without the spaces) 2  Click on  httpd-2.2.22-win32-x86-no_ssl.msi    (this is a self-installing executable file without crypto ... no Secure Socket Layer)    (2.2.22 was the latest version on April 25, 2012) 3  Click on the httpd-2.2.22-win32-x86-no_ssl.msi file after it downloads     (single click on the file tab in Chrome or double click on the actual file in Downloads) 4  Click Next 5  Click I accept the terms in the license agreement 6  Click Next 7  Click Next 8  Type localhost in the top box 9  Type localhost in the middle box 10 Type admin@localhost.com in the bottom box 11 Click Next 12 Click Next 13 Click Next 14 Click Install and wait 15 Cick Yes to allow the program to make changes 16 Click Finish Testing Apache 1  Type localhost in your browser location box (I use Chrome) or type h t t p : / / l o c a l h o s t    (without the spaces) 2  The message It works! should appear. Getting and installing PHP 1  In your browser go to h t t p : / / w i n d o w s . p h p . n e t / d o w n l o a d /    (without the spaces) 2  Click on the Installer link under PHP 5.3 (5.3.10)   VC9 x86 Thread Safe    (Ignore the Do NOT use VC9 version with apache.org binaries comment on the side panel) 3  Click on the php-5.3.10-Win32-VC9-x86.msi file after in downloads    (single click on the file tab in Chrome or double click on the actual file in Downloads) 4  Click Next 5  Click I accept the terms in the License Agreement 6  Click Next 7  Click Next 8  Click Apache 2.2.x Module 9  Click Next 10 Click Browse 11 Double click Apache Software Foundation 12 Double click Apache 2.2 13 Double click conf 14 Click OK 15 Click Next 16 Click Next 17 Click Install and wait 18 Cick Yes to allow the program to make changes 19 Click Finish Testing PHP with Apache 1  Open Notepad 2  Type 'left bracket character'?php phpinfo(); ?'right bracket character' 3  Save the file to C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs as test.php 4  Type localhost/test.php in your browser location box (I use Chrome) or type h t t p : / / l o c a l h o s t / t e s t . p h p 5  A table with title PHP Version ... should appear DONE 
2012-04-25 22:54:00
http://php5.kiev.ua/manual/ru/install.windows.apache2.html
 [For the error:] You don’t have permission to access /php/php-cgi.exe/index.php on this server. In order to fix the forbidden error I had to change this line in httpd.conf: <Directory “C:/Server/Apache2.2/cgi-bin/”> AllowOverride None Options None Order allow,deny Allow from all </Directory> to this: <Directory “c:/Server/php”> AllowOverride None Options None Order allow,deny Allow from all </Directory> 
2012-08-21 17:02:33
http://php5.kiev.ua/manual/ru/install.windows.apache2.html
 If you have a problem "The requested operation has failed!" and LOG says "Module php5apache2_2.dll not found" and have: PHPIniDir "P:\PHP\" LoadModule php5_module "P:\PHP\php5apache2_2.dll" in httpd.conf make sure you have installed the apache2.2 (not apache 2.0 or earlier versions). It was my problem and i downloaded correct version from http://www.apache.org/dist/httpd/binaries/win32/ and everything just works. 
2012-11-02 16:17:39
http://php5.kiev.ua/manual/ru/install.windows.apache2.html
 Good God finally I was able to make PHP 5.2 work on Apache 2.4. For those still having problems with "You don't have permission to run php-cgi.exe", you must replace "Order allow,deny" and "Allow from all" from the PHP directory block with "Require all granted". They must have changed the format with Apache 2.4 since the old method used to work just fine for me before. So the usual method of setting up CGI, I'm sure you already know that you should add these 3 lines to httpd.conf: ScriptAlias /php/ "c:/php/"  AddType application/x-httpd-php .php Action application/x-httpd-php "/php/php-cgi.exe" And now add the directory for PHP: <Directory "c:/php">     AllowOverride None     Options None     Require all granted </Directory> Important: Notice that instead of "Order allow,deny" and "Allow from all" added into the PHP directory as usual, I replaced them with "Require all granted" as I mentioned above. 
2013-01-31 23:26:05
http://php5.kiev.ua/manual/ru/install.windows.apache2.html
 Like someone else mentioned, on the Windows download page for PHP, ignore the warning about not downloading the VC9 compiled installers for the Apache.org version of Apache. Whoever wrote that is guaranteeing that people install a PHP that breaks their Apache server. (On Windows 7 anyway.) The installer failed to write the correct path info to httpd.conf, and even after fixing that manually, Apache wouldn't start because of missing dlls. Ignore that dumb warning and get the newest installer anyway. Everything just plain works with no hassle and no hunting down dll files over google. 
2013-03-28 12:53:30
http://php5.kiev.ua/manual/ru/install.windows.apache2.html
 After installing Apache 2.2 and PHP 5.3.7 I could not get the phpinfo.php to display. When i attempted to pull up the php info page my browser would load the php script instead. I had added the following line to the Apache conf file LoadModule php5_module "c:/php/php5apache2_2.dll" AddHandler application/x-http-php .php PHPIniDir "c:/php" The issue was in the second line of code for the AddHandler, the code was missing a d after x-http, when I saw this typo I added the d, saved the conf file, cleared the cache of firefox, stopped Apache then started Apache again and the php info displayed correctly so make sure the line reads as follows AddHandler application/x-httpd-php .php 
2013-07-22 10:36:48
http://php5.kiev.ua/manual/ru/install.windows.apache2.html
 Hi guys,  In my case, it work right away when I change the version to thread-safe.  I spent some time trying the different things that were posted here and I was kind of lazy about downloading a different version, but once I test it with a thead-safe it started right away. So be sure you try this. I was on Apache 2.2, XP and php 5.2.17 thread-safe This is my conf:  LoadModule php5_module "c:/php5/php5apache2_2.dll" AddHandler application/x-httpd-php .php #configure the path to php.ini PHPIniDir 'C:\php5\' Good luck! 
2013-08-03 20:15:24
http://php5.kiev.ua/manual/ru/install.windows.apache2.html
 I am using Windows 8 x64, running Apache 2.2 and php 5.4.20 I found that it is necessary to add System Environment Variable PHPRC=[PHP path], so that php.ini is loaded using your PHP path, instead of C:\Windows. This is how I do for my laptop Go to Control Panel\System and Security\System\Advanced System Settings\Environment Variables Add New System Variable Name: PHPRC Value: C:\php-5.4.20 Hope it relieve those who keep having empty string for Loaded Configuration File under phpinfo(); 
2013-09-27 06:05:48
http://php5.kiev.ua/manual/ru/install.windows.apache2.html
 I got PHP 5.2.10 working on Apache 2.2 NOT using the .msi for PHP after a half day of trying different versions of PHP and Apache as well as changing everything from paths to folders.  Eventually from reading many of the notes listed here I thought I'd download the threadsafe version but all I used from it were two .dll files. I took the php5apache2_2.dll and the php5ts.dll and swaped them out in my PHP folder and bingo! started working like a charm. The php5apache2_2.dll was probably unnecessary but I switched it out anyway. Summary... Add php5ts to your PHP folder 
2013-10-17 20:53:07
http://php5.kiev.ua/manual/ru/install.windows.apache2.html
 Please for the love of god, download the threaded version. I spent over an hour trying to figure out why php5apache2.dll could not be found, and while desperately looking through manuals I went into the php 5 structure and found that it doesn't exist in the non-threaded version. This really could use a mention somewhere other than the PHP 5 structure, like the paragraph to the left of the homepage which talks about which PHP version to choose, or this part of the manual which covers Apache... Anywhere but structure, seriously. I would have never guessed to look there. 
2014-01-13 04:11:31
http://php5.kiev.ua/manual/ru/install.windows.apache2.html
 I am very new to PHP. I was looking to start a Drupal project and spend almost 4 hours to get Apache and Drupal talk each other. What I found out was there are lots of mismatch in documentation and snapshots. As I am using Windows I found out following two installation bundles works without any issue. php-5.3.28-Win32-VC9-x86.msi httpd-2.2.25-win32-x86-openssl-0.9.8y.msi Make sure you install your packages directly into into C: drive in Windows machine (If there are spaces in the file paths it would cause issues). Hope this would help someone. 
2014-02-06 17:13:45
http://php5.kiev.ua/manual/ru/install.windows.apache2.html
 Can anyone tell me: Why PHP + Apache 2.2.x installation is such a big deal. I am a Java Developer and currently I am trying to learn PHP, but I am not able to install PHP and use it the way we use Java. I could use steps mentioned in comments and run home.php from htdocs folder of apache. But, could anyone please tell me DO I HAVE TO PUT EVERY FILE IN THE SAME FOLDER? Can't I make my workbench where I can put a good project hierarchy and use it like other languages. Its horrible. May be my question is little silly, but I need help for sure. Thanks... 
2014-04-27 08:15:45
http://php5.kiev.ua/manual/ru/install.windows.apache2.html
 ****Installed and Working 1- Fell Swoop - UPDATED**** Installed on Windows 8.1 XPS 12 - Dell 8GB RAM 128GB SSD -  Notes - Complications due to Apache latest version causes issues with the PHP handler on install.  Following below will get it run right off the bat.  Getting and installing Apache 1  In your browser go to h t t p : / / h t t p d . a p a c h e . o r g / d o w n l o a d . c g i    (without the spaces) - You will need to go 'Other Files' , 'Binaries' , 'W32', and then your installer MSI will be listed as below.  2  Click on  httpd-2.2.25-win32-x86-no_ssl.msi    (this is a self-installing executable file without crypto ... no Secure Socket Layer)    (2.2.25was the latest version on June 4, 2014) 3  Click on the httpd-2.2.25-win32-x86-no_ssl.msi file after it downloads     (single click on the file tab in Chrome or double click on the actual file in Downloads) 4  Click Next 5  Click I accept the terms in the license agreement 6  Click Next 7  Click Next 8  Type localhost in the top box 9  Type localhost in the middle box 10 Type admin@localhost.com in the bottom box 11 Click Next 12 Click Next 13 Click Next 14 Click Install and wait 15 Cick Yes to allow the program to make changes 16 Click Finish Testing Apache 1  Type localhost in your browser location box (I use Chrome) or type h t t p : / / l o c a l h o s t    (without the spaces) 2  The message It works! should appear. Getting and installing PHP 1  In your browser go to h t t p : / / w i n d o w s . p h p . n e t / d o w n l o a d /    (without the spaces) 2  Click on the Installer link under PHP 5.3 (5.3.10)   VC9 x86 Thread Safe    (Ignore the Do NOT use VC9 version with apache.org binaries comment on the side panel) 3  Click on the php-5.3.10-Win32-VC9-x86.msi file after in downloads    (single click on the file tab in Chrome or double click on the actual file in Downloads) 4  Click Next 5  Click I accept the terms in the License Agreement 6  Click Next 7  Click Next 8  Click Apache 2.2.x Module 9  Click Next 10 Click Browse 11 Double click Apache Software Foundation 12 Double click Apache 2.2 13 Double click conf 14 Click OK 15 Click Next 16 Click Next 17 Click Install and wait 18 Cick Yes to allow the program to make changes 19 Click Finish Testing PHP with Apache 1  Open Notepad 2  Type 'left bracket character'?php phpinfo(); ?'right bracket character' 3  Save the file to C:\Program Files (x86)\Apache Software Foundation\Apache2.2\htdocs as test.php 4  Type localhost/test.php in your browser location box (I use Chrome) or type h t t p : / / l o c a l h o s t / t e s t . p h p 5  A table with title PHP Version ... should appear DONE 
2014-06-04 17:47:41
http://php5.kiev.ua/manual/ru/install.windows.apache2.html
 With Apache 2.4 in Windows, it seems that PHPIniDir directive must come before LoadModule directive to be used. Also, name of the DLL file seems to be php5apache2_4.dll, not php5apache2.dll. This configuration in httpd.conf works for me (Apache 2.4.10, PHP 5.6.5): PHPIniDir "C:\PHP" LoadModule php5_module "c:/php/php5apache2_4.dll" <FilesMatch \.php$> SetHandler application/x-httpd-php </FilesMatch>  2015-01-23 17:10:09 http://php5.kiev.ua/manual/ru/install.windows.apache2.html  Windows Apache 2.4.12 (x64) PHP 5.6.5 (x64) If your Apache still outputs code instead of parsing a script. Make sure you put a trailing "\" at the end of the PHPIniDir value and use ONLY "\" in path to PHPIniDir. And "/" in LoadModule. A very subtle "feature" of Apache module. Lost several hours after upgrading to apache x64 to resolve the issue. httpd.conf ############################################### PHPIniDir "C:\folder\to\hold\php\" LoadModule php5_module "C:/folder/to/hold/php/php5apache2_4.dll" AddHandler application/x-httpd-php .php ###############################################  2015-03-06 12:39:42 http://php5.kiev.ua/manual/ru/install.windows.apache2.html  PHP 5.2 php5_module php5apache2_2.dll PHP 5.3 php5_module php5apache2_2.dll PHP 5.4 php5_module php5apache2_2.dll/php5apache2_4.dll PHP 5.5 php5_module php5apache2_4.dll PHP 5.6 php5_module php5apache2_4.dll PHP 7.0 php7_module php7apache2_4.dll  2015-07-16 19:54:12 http://php5.kiev.ua/manual/ru/install.windows.apache2.html  If you come with an error like this: Wrapper xxxx cannot be accessed: blah blah blah when starting Apache. You have 3 choices to solve this problem. Any one of them would work. 1. Install your applictions in paths that do not contains spaces. 2. Place a backslash before every space in the path set to Wrapper, like: FctidWrapper "C:/Program\ Files/PHPServer/PHP/php-cgi.exe" .php 3. Use mklink (or junction for windows XP/2003) to create a link to the path you have installed php in. run cmd.exe and type this command: mklink /j C:\php\ "C:\Program Files\PHPServer\PHP". or this command if you are on Windows XP/2003 junction C:\php\ "C:\Program Files\PHPServer\PHP" Remember this : you have to download online to use this application. Don't know where to download? Go and Google it. Then the FctidWrapper directive should be like this: FctidWrapper "C:/php/php-cgi.exe" .php Don't forget to change the paths above to your working paths.  2015-07-25 10:55:39 http://php5.kiev.ua/manual/ru/install.windows.apache2.html  If you come with an error like this: Wrapper xxxx cannot be accessed: blah blah blah when starting Apache. You have 3 choices to solve this problem. Any one of them would work. 1. Reinstall your applictions in paths that do not contain spaces. 2. Place a backslash before every space in the path set to the FcgidWrapper directive in httpd.conf, like: FcgidWrapper "C:/Program\ Files/PHPServer/PHP/php-cgi.exe" .php 3. Use mklink (or junction for windows XP/2003) to create a symbol link to the path of php-cgi.exe's containing folder. run cmd.exe and type this command: mklink /j C:\php\ "C:\Program Files\PHPServer\PHP". or this command if you are on Windows XP/2003 junction C:\php\ "C:\Program Files\PHPServer\PHP" Remember this : you need to download junction.exe to use it. Don't know where to download? Google it. Then the FcgidWrapper directive should be like this: FcgidWrapper "C:/php/php-cgi.exe" .php Don't forget to change the paths above to your working paths.  2015-07-25 19:48:18 http://php5.kiev.ua/manual/ru/install.windows.apache2.html  If you are having issues getting the PHPIniDir or LoadModule directives to work and all the suggestions already given do not help, double-check if you are not using fancy quotes around your paths (‘ ’ “ ”). This happened to me because I copied the statements from a random website. In my text editor the difference was barely noticeable, but to Apache it certainly is! For example, this will not work: PHPIniDir “C:/PHP7” But this will work: PHPIniDir "C:/PHP7"  2015-12-20 16:32:59 http://php5.kiev.ua/manual/ru/install.windows.apache2.html  version httpd-2.4.23-win32-VC14.zip php-5.6.26-ts-Win32-VC11-x86.zip install path c:/wamp/ php path c:/wamp/php apache path c:/wamp/Apache24 used as Apache handler modify as below #below for apache #modify c:/ to c:/wamp/ #modify ServerName to localhost:80 and remove# #DirectoryIndex insert index.php #below for php #rename file php.ini-production to php.ini LoadModule php5_module "C:/wamp/php/php5apache2_4.dll" PHPIniDir "C:/wamp/php/" AddType application/x-httpd-php .php AddType application/x-httpd-php .html AddHandler application/x-httpd-php .php And things goes well !  2016-09-30 09:24:21 http://php5.kiev.ua/manual/ru/install.windows.apache2.html  For PHP 7 configuration just add these lines to the end of httpd.conf file (of Apache): PHPIniDir "/alex/apps/php-7.2.3/" LoadModule php7_module "C:/alex/apps/php-7.2.3/php7apache2_4.dll" <FilesMatch \.php$>     SetHandler application/x-httpd-php </FilesMatch> Here "/alex/apps/php-7.2.3/" is PHP path. Then: 1. Rename php.ini-development or php.ini-production to php.ini 2. Uncomment / set extension_dir parameter in php.ini ; Directory in which the loadable extensions (modules) reside. ; http://php.net/extension-dir ; extension_dir = "./" ; On windows: extension_dir = "ext" You are set. Just re/start Apache server (httpd -k restart). `
2018-03-14 21:28:58
http://php5.kiev.ua/manual/ru/install.windows.apache2.html

Поддержать сайт на родительском проекте КГБ