Дальше мы установим PHP и настроим веб-сервер на его использование. Распаковываем zip-архив (php-5.2.6-Win32.zip) в удобную для вас папку (лучше всего в C:\php; я буду следовать в статье тому, что распаковка была именно сюда, поэтому, если у вас PHP в другом месте, то, соответственно, далее используйте ваш каталог). Заходите в эту папку и копируйте файл php.ini-dist в каталог Windows (у меня это C:\WINNT), а потом переименуйте его в php.ini. Открывайте это файл блокнотом или любым текстовым редактором. Я считаю, что стандартные настройки достаточно хороши, надо только исправить несколько директив. Сначала надо выбрать место на диске где будут храниться документы сервера, то есть HTML-, PHP-файлы и т.д. Возьмём, к примеру, каталог C:\www\htdocs. Тогда нам необходимо в файле php.ini исправить директиву
doc_root =
на
doc_root = "C:\www\htdocs"
Также обязательно исправить extension_dir с
extension_dir = "./"
на
extension_dir = "C:\php\ext"
(файлы расширений лежат в каталоге C:\php\ext; если вы выбрали другой каталог для PHP, то укажите его).
Далее, так как мы хотим использовать MySQL, то нужно подключить соответствующие модули. Для этого раскомментируйте (уберите «;» из начала строки) следующие строки:
;extension=php_mysql.dll
;extension=php_mysqli.dll
;extension=php_mysqli.dll
Если вы планируете использовать ещё какие-то модули, то раскомментируйте и их тоже. Вот список основных модулей:
;extension=php_bz2.dll — для работы с bz2-архивами (распаковка/упаковка средствами скриптов)
;extension=php_curl.dll — это curl-расширение; с помощью него можно, например, из скрипта послать POST-запрос к другому скрипту
;extension=php_exif.dll — для работы с дополнительной информацией в файлах фотографий
;extension=php_gd2.dll — графическая библиотека для генерации рисунков скриптами
;extension=php_mbstring.dll — это библиотека для работы с многобайтовыми (в кодировке Unicode) строками, настоятельно советую подключить, иначе некоторые CMS могут не работать
;extension=php_msql.dll — для работы с БД mSQL
;extension=php_mssql.dll — для работы с Microsoft SQL Server
;extension=php_mysql.dll — стандартная библиотека MySQL; для версий MySQL 5 и старше лучше использовать модуль mysqli
;extension=php_mysqli.dll — улучшенная (MySQL Improved) библиотека для работы с MySQL. Для работы с MySQL5 лучше использовать именно её
;extension=php_pdo.dll — этот модуль, а также все модули PDO обеспечивают унифицированный интерфейс ко многим базам данных. Но в частности это полезно тем, что это (насколько я знаю, по крайней мере из стандартных) единственный способ работать с базами SQLite 3
;extension=php_pgsql.dll — для работы с СУБД PostgreSQL
;extension=php_sockets.dll — модуль для работы с сокетами из скриптов
;extension=php_sqlite.dll — для работы с бессерверной БД SQLite. В этом модуле поддерживается только 2 версия файлов баз данных
;extension=php_zip.dll — для работы с zip-архивами (то же самое что и для bz2)
;extension=php_curl.dll — это curl-расширение; с помощью него можно, например, из скрипта послать POST-запрос к другому скрипту
;extension=php_exif.dll — для работы с дополнительной информацией в файлах фотографий
;extension=php_gd2.dll — графическая библиотека для генерации рисунков скриптами
;extension=php_mbstring.dll — это библиотека для работы с многобайтовыми (в кодировке Unicode) строками, настоятельно советую подключить, иначе некоторые CMS могут не работать
;extension=php_msql.dll — для работы с БД mSQL
;extension=php_mssql.dll — для работы с Microsoft SQL Server
;extension=php_mysql.dll — стандартная библиотека MySQL; для версий MySQL 5 и старше лучше использовать модуль mysqli
;extension=php_mysqli.dll — улучшенная (MySQL Improved) библиотека для работы с MySQL. Для работы с MySQL5 лучше использовать именно её
;extension=php_pdo.dll — этот модуль, а также все модули PDO обеспечивают унифицированный интерфейс ко многим базам данных. Но в частности это полезно тем, что это (насколько я знаю, по крайней мере из стандартных) единственный способ работать с базами SQLite 3
;extension=php_pgsql.dll — для работы с СУБД PostgreSQL
;extension=php_sockets.dll — модуль для работы с сокетами из скриптов
;extension=php_sqlite.dll — для работы с бессерверной БД SQLite. В этом модуле поддерживается только 2 версия файлов баз данных
;extension=php_zip.dll — для работы с zip-архивами (то же самое что и для bz2)
На этом редактирование php.ini завершаем (не забудьте сохранить изменения!). Теперь из каталога C:\php в каталог C:\WINNT\System32 (или C:\Windows\System32, в зависимости от того, куда у вас установлена система) скопируйте файл libmysql.dll. Он нужен для правильной работы PHP с MySQL.
Переходите в каталог C:\Program files\Apache2.2\conf и открывайте в текстовом редакторе файл httpd.conf.
Замечание: все пути к файлам в конфигурационных файлах Apache должны быть с прямыми слешами («/»), а не с обратными, как принято в Windows («\»).
Найдите секцию, озаглавленную как «Dynamic Shared Object (DSO) Support». Здесь можно настроить модули сервера, например, mod_rewrite. В конец, сразу после последней директивы LoadModule, добавьте следующее:
LoadModule php5_module "c:/php/php5apache2_2.dll"
PHPIniDir "C:/WINNT"
PHPIniDir "C:/WINNT"
Этим мы добавляем в список модулей сервера модуль PHP, а также указываем серверу, где искать файл настройки PHP (php.ini).
Если вы просмотрите этот файл дальше, то можете увидеть, что сюда занесены данные, которые вы вводили в установщике:
ServerAdmin example@example.ru
#ServerName example.tynet.ru:80
#ServerName example.tynet.ru:80
Примечание: # - символ комментария; все строки, начинающиеся с #, никак не будут восприниматься сервером.
Далее находите следующую директиву:
DocumentRoot "C:/Program Files/Apache2.2/htdocs"
И измените её на
DocumentRoot "C:/www/htdocs"
Именно этот путь мы вписывали в php.ini. Здесь указывается путь к корневой папке документов сервера.
Чтобы эту папку можно было использовать, нужно её настроить. Находим следующий блок директив:
<Directory "C:/Program Files/Apache2.2/htdocs">
…
</Directory>
Смените путь в открывающем теге на C:/www/htdocs. Внутри этого блока, а также всех других блоков конфигурируются соответствующие каталоги. В комментариях указаны возможные значения для директив. Например, если вы хотите использовать файлы .htaccess (они используются многими CMS, например, Siteman), то установите опцию
AllowOverride None
в
AllowOverride All
В блоках директив настраиваются соответствующие модули.
Добавьте в блок ещё одну строку:
DirectoryIndex index.php
Это означает, что теперь сервер по запросу без указания файла (например, http://example.tynet.ru/) будет выдавать файл index.html или index.php. Здесь порядок директив DirectoryIndex определяет порядок файлов, то есть если в каталоге два файла index.html и index.php, а в этом блоке директив указано
DirectoryIndex index.html
DirectoryIndex index.ph
DirectoryIndex index.ph
то при запросе без указания файла будет выдан файл index.html, а не index.php.
Большинство других настроек в данном файле нам не нужны, по крайней мере, сейчас. Сохраняем и закрываем файл.
Теперь откройте файл mime.types (он находится рядом с httpd.conf). Здесь настраиваются mime-типы, определяемые по расширению файла. Добавьте куда-нибудь в этот файл строку
application/x-httpd-php php
Это означает, что файлы с расширением .php будут обрабатываться модулем PHP. Если хотите, можете добавить в этот список директиву
application/x-httpd-php-source phps
В этом случае сервер будет отдавать файл с расширением .phps как php-код (то есть текст с отступами и подсветкой синтаксиса php).
Сохраняйте и закрывайте этот файл.
Всё, веб-сервер и PHP сконфигурированы для работы вместе. Обязательно перезагрузите веб-сервер, чтобы PHP заработал! Для этого используйте Монитор Apache (значок пера с зелёной стрелкой в системном трее) или ярлык в меню Пуск/Программы/Apache HTTP Server 2.2/Control Apache Server/Restart Чтобы протестировать работу PHP, создайте в каталоге C:\www\htdocs файл index.php с текстом
<?php phpinfo(); ?>
Зайдите в браузере на адрес http://localhost/, должно отобразиться примерно следующее: