Урок 6: Установка и настройка интерпретатора PHP

Замечания

Версия программы, использовавшейся при написании материала, уже успела устареть, поэтому некоторые моменты могут незначительно отличаться.

Установить PHP не просто, а очень просто. Настраиваться PHP будет для совместной работы с веб-сервером Apache, установка которого описана в этом уроке.

Для начала необходимо скачать последнюю стабильную версию PHP. Для этого идем на официальную страницу загрузки http://windows.php.net/download/ и скачиваем редакцию "VC9 x86 Thread Safe" в виде ZIP-архива. В моем случае файл назывался php-5.3.4-Win32-VC9-x86.zip. Данная сборка интерпретатора не требует установки, ее лишь нужно распаковать в определенное место. Распакуйте архив в корень диска C, появившуюся папку (у меня она называлась php-5.3.4-Win32-VC9-x86) переименуйте в php. В итоге PHP у вас будет находиться в C:\php.

Для работы данной сборки PHP необходим пакет "Microsoft Visual C++ 2008 Redistributable" (во всяком случае, в Windows XP SP3 потребовался, если у вас более свежая версия Windows, попробуйте сначала данный пакет не устанавливать), его находим на официальном сайте Майкрософта, воспользовавшись поиском по имени пакета. Файл называется vcredist_x86.exe.

В папке C:\php есть два файла: php.ini-development и php.ini-production. Эти файлы — примеры конфигурационных файлов PHP. Сделайте копию файла php.ini-production под именем php.ini — это будет вашим основным конфигурационным файлом.

Далее необходимо связать веб-сервер Apache с PHP. Открываем конфиг Apache C:\Program Files\Apache\conf\httpd.conf (напоминаю, что мы работаем с веб-сервером, настроенным по этому материалу), после строк:

LoadModule negotiation_module modules/mod_negotiation.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule setenvif_module modules/mod_setenvif.so

добавляем

PhpIniDir "C:/php"
LoadModule php5_module "C:/php/php5apache2_2.dll"
AddHandler application/x-httpd-php .php

Первая строка указывает место расположения конфига php.ini. Вторая строка подгружает PHP в качестве модуля для Apache (указывается путь к модулю). В третьей строке задаются расширения файлов, которые будут передаваться на предобработку PHP. Здесь задано расширение php, при необходимости можно добавить другие расширения через пробел в конце строки (обратите внимание, что перед расширением ставится точка).

Найдите также в конфиге блок

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>

и приведите его к следующему виду:

<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

В этом случае при отсутствии в HTTP-запросе имени файла Apache будет искать не только индексный файл index.html, но и index.php.

Перезагрузите веб-сервер. Если сервис не запустился, то где-то допущена ошибка, отписывайтесь в комментариях, будем разбираться.

В одном из корневых каталогов веб-сервера создайте файл index.php со следующим содержимым:

<?php
 
  phpinfo();
 
?>

phpinfo — это системная PHP-функция, выводящая различную информацию об интерпретаторе: настройки, текущие значения системных переменных и т.д. Если все настроено правильно, то при запросе вы должны увидеть вот такую страницу:

Комментарии

Оставить комментарий »

 
Nikola
10 октября 2012, 14:10
#31
 
Имя сбойного приложения: httpd.exe, версия: 2.2.14.0, отметка времени: 0x4ac181d6
Имя сбойного модуля: unknown, версия: 0.0.0.0, отметка времени 0x00000000
Код исключения: 0xc0000005
Смещение ошибки: 0x008cf96f
Идентификатор сбойного процесса: 0x5ec
Время запуска сбойного приложения: 0x01cda6cd670bec9b
Путь сбойного приложения: C:\Program Files\Apache\bin\httpd.exe
Путь сбойного модуля: unknown
Код отчета: a5ae837e-12c0-11e2-bd11-c417fedf5a3b
Joker-jar
10 октября 2012, 19:02
#32
 

Nikola, сложно понять. После чего начала возникать ошибка?

Nikola
11 октября 2012, 9:57
#33
 

После того как добавляем

PhpIniDir "C:/php"
LoadModule php5_module "C:/php/php5apache2_2.dll"
AddHandler application/x-httpd-php .php
Joker-jar
14 октября 2012, 6:26
#34
 

Nikola, странно. Возможно, вы скачали не ту версию PHP (например, 64 разрядную, хотя у вас операционная система 32)?

Nikola
15 октября 2012, 8:56
#35
 

Огромное спасибо, действительно, скачал другую версию РНР и все поехало)))

Joker-jar
15 октября 2012, 9:23
#36
 

Nikola, отлично. Обращайтесь еще.

Андрей
25 января 2013, 8:11
#37
 
The Apache service named  reported the following error:
>>> httpd.exe: Syntax error on line 134 of C:/server/conf/httpd.conf: </IfModule> without matching <IfModule> section

У меня вот это в журнале появилось по поводу апача! На что мне стоит обратить внимание??

Joker-jar
30 января 2013, 14:40
#38
 

Андрей, где-то ошибка в синтаксисе конфига. Похоже, отсутствует открывающий тег IfModule, который закрывается на 134 строке.

Natan
21 апреля 2013, 16:22
#39
 

При добавлении

PhpIniDir "C:/php"
LoadModule php5_module "C:/php/php5apache2_2.dll"
AddHandler application/x-httpd-php .php

Apache выдает ошибку после перезагрузки

В журнале:

Служба "Apache2" завершена из-за внутренней ошибки Неверная функция.
Natan
21 апреля 2013, 18:10
#40
 

В продолжение:

При этом конфигурационный файл изначально ругался на

LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so

Поэтому вместо этих конструкций использовал

LoadModule auth_module modules/mod_auth.so

После этого апач заработал, а php подключить не могу

Оставить комментарий

Ваше имя
 
Ваш e-mail
 
Комментарий