Теперь мы знаем, как установить Apache и php. Теперь наша задача состоит в том, чтобы подружить эти две вещи. Займемся совестной настройкой Apache и PHP. Как и в предыдущих заметках, я постараюсь как можно подробней описать последовательность действий по настройке. Основные моменты будут показаны на скриншотах.
Перейдем в папку, в которую мы устанавливали Apache. Если вы последовали моему совету, в посте об установке Apache, то она у вас должна быть:
C:/Program Files/Apache Software Foundation/Apache2.2/conf
В отличие от синтаксиса конфигурационного файла php (далее для краткости буду называть конфиг), описанного в этой заметке, в конфиге Apache для комментирования используется символ «#» (решетка). Т.е. все строки начинающиеся с этого символа «не активны». Для разделения значения переменной и ее параметра используется пробел. Например:
ServerRoot «C:/Program Files/Apache Software Foundation/Apache2.2»
ServerRoot — имя переменной
«C:/Program Files/Apache Software Foundation/Apache2.2» — значение переменной.
Настройка Apache для работы с PHP.
PHP может быть установлен как модуль Apache и как CGI-приложение. Мы рассмотрим настройку PHP как модуль Apache.
В конфигурационном файле Apache найдите секцию «Dynamic Shared Object»:
Раскомментируйте выделенную строку c mod_rewrite.so. И добавьте саму нижнюю строчку. В этой строчке указан, путь к файлу, который нужен Apache, чтобы взаимодействовать с PHP. Если вы установили PHP в папку, отличную от той,которую я вам советовал (C:/php5), то пропишите здесь свой путь к файлу php5apache2_2.dll.
Строчкой ниже добавьте:
PHPIniDir «C:/php5»
Этим мы даем знать веб-серверу, где находиться конфигурационный файл PHP.
Следующий шаг — назначение обработчика для типов файлов, в которые вы планируете добавлять PHP код. Строчкой ниже добавляет следующий текст:
AddHandler application/x-httpd-php .php
Этот текст означает, что для файлов с расшерением .php назначается обработчикapplication/x-httpd-php.
В итоге у вас должно получиться следующее ( не полный скрин, сверху еще модули):
/data/image/configure/apache-php-module-configure.gif
Также нам нужно настроить одну полезную опцию:
#
# DirectoryIndex: sets the file that Apache will serve if a directory
# is requested.
#
DirectoryIndex index.html index.htm index.shtml index.php
Здесь задаются файлы, которые будут автоматически загружаться при обращении к каталогу. Например, если вы напишите в строке браузера http://localhost/, браузер будет искать файлы index.html index.htm index.shtml index.php, порядок слева направа, если найдет какой-то файл по покажет, если не найдет — то покажет список файлов в директории.
Теперь займемся правами доступа. Это базовые настройки для всех директорий:
#
# Each directory to which Apache has access can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories).
#
# First, we configure the «default» to be a very restrictive set of
# features.
#
Options Includes Indexes FollowSymLinks
AllowOverride All
Allow from all
Options — здесь указываеются через пробел настройки:
- Includes — разрешение использовать SSI (server-side include).
- Indexes — использование индексов в директории. Т.е. есть файл index.php и мы запрашиваем в бразере директорию, то вызывается этот файл. Например, http://localhost/directory/ — вызоветься файл http://localhost/directory/index.php.
- FollowSymLinks — разрешает символические ссылки (используется в *nix системах).
- AllowOverride — управляет возможностью переписывания настроек для конкретной директории и вложенных в нее директорий с помощью .htaccess файлов. Значение Allразрешает перекрывать базовые настройки сервера в любой директории.
- Allow from all — разрешает доступ из брузера ко всем вложенным директориям ваших сайтов.
У некоторых людей возникают ошибки в процессе установки, связанные с тем, что сервер не может по доменному имени узнать IP адрес — «Could not reliably determine the server’s fully qualified domain name, using 127.0.0.1 for ServerName«. Эту ошибку можно посмотреть в логах ошибок Apache (logs/error.txt). Решается заменой localhost на ваш IP адрес:
#
# ServerName gives the name and port that the server uses to identify itself.
# This can often be determined automatically, but we recommend you specify
# it explicitly to prevent problems during startup.
#
# If your host doesn’t have a registered DNS name, enter its IP address here.
# В строчке ниже замените locahost на тот IP адресс, который написан в логах Apache
ServerName localhost:80