Установка PHP

Для быстрой установки PHP 4.x под Apache 1.3.X произвести следующие действия:

Разархивировать пакеты:
  1. gunzip apache_1.3.x.tar.gz
  2. tar xvf apache_1.3.x.tar
  3. gunzip php-x.x.x.tar.gz
  4. tar xvf php-x.x.x.tar
Сконфигурировать пакеты:
  1. cd apache_1.3.x
  2. ./configure --prefix=/www
  3. cd ../php-x.x.x
  4. ./configure --with-mysql --with-apache=../apache_1.3.x --enable-ftp
Установить php:
  1. make
  2. make install
Переконфигурировать и установить apache:
  1. cd ../apache_1.3.x
  2. ./configure --activate-module=src/modules/php4/libphp4.a
  3. make
  4. make install
Создать конфигурационный файл php:
  1. cd ../php-x.x.x
  2. cp php.ini-dist /usr/local/lib/php.ini
Отредактировать файл http.conf:
  1. Добавить в httpd.conf AddType application/x-httpd-php .php
Перезапустить или запустить сервер apache:
  1. apachectl start или apachectl restart

Кроме того, имеет смысл проверить перед запуском apache наличие следующих строк в файле httpd.conf:

  1. LoadModule php4_module libexec/apache/libphp4.so
  2. <IfModule mod_php3.c>
    <IfModule mod_php4.c>
    DirectoryIndex index.php index.php3 index.html index.phtml
    </IfModule>
    <IfModule !mod_php4.c>
    DirectoryIndex index.php3 index.html index.phtml
    </IfModule>
    </IfModule>
  3. <IfModule mod_php3.c>
    AddType application/x-httpd-php3 .php3
    AddType application/x-httpd-php3-source .php3s
    </IfModule>
    <IfModule mod_php4.c>
    AddType application/x-httpd-php .php .phtml .html .htm
    AddType application/x-httpd-php-source .phps
    </IfModule>

Естественно строки могут не повторять точно содержимое, главное принцип.

При конфигурировании исходных кодов apache рекомендуется указывать axps.

Схема сборки PHP 5 аналогична. Иногда возникает проблема с отсутствием записей в файле httpd.conf, указывающих на PHP 5 (характерно для старых версий apache и первых реализаций PHP 5), в этом случае после установки PHP рекомендуется проверить, и если требуется, зарегистрировать библиотеки PHP командами группы ld и проверить наличие вышеуказанных строк, изменив версию 4 на 5.

Установка под apache 1.3.X как mod_php

Разберем на примере установки из портов OC FreeBSD 5.2.1.

Для начала имеет смысл обновить содержимое портов. Для этого в каталоге /usr/local/etc создадим файл с именем cvsupfile и поместим в него следующий код:

*default host=cvsup.ru.freebsd.org
*default base=/usr
*default prefix=/usr
*default release=cvs
*default delete use-rel-suffix
*default tag=.
doc-all
ports-all

Далее выполним команду:

/usr/local/bin/cvsup -g -L 2 /usr/local/etc/cvsupfile

После отработки скрипта должны получить обновленные порты.

Затем переходим в каталог исходных кодов порта: cd \usr\ports\www\mod_php4X

Выполняем команду make и получаем окно вида:

Options for mod_php4 4.3.8_1,1

[ ] APACHE2 Use apache 2.x instead of apache 1.3.x
[ ] DEBUG Enable debug
[ X ] IPV6 Enable ipv6 support

[ OK ] Cancel

Где требуется выбрать необходимые опции, затем выбрать OK (в более ранних версиях позволялось выбирать модули которые надо подключать: mysql, gd и т.п. рекомендуется установить необходимые модули перед установкой mod_php4).

Далее выполняем make install, проверяем httpd.conf (смотри выше) и выполняем apachectl restart (если сервер запущен) или apachectl start.

Аналогично устанавливается mod_php5.

Установка под apache 2.0.X

Установка незначительно отличается от версии 1.3 в первую очередь кофигурационным файлом httpd.conf.

Касаемо php5 в нем должны присутствовать следующие строки:

LoadModule php5_module libexec/apache2/libphp5.so

Добавляем следующие строки для обработки PHP файлов:

AddType application/x-httpd-php .php .phtml
AddType application/x-httpd-php-source .phps

При работе последней конфигурацией (доступной на текущей момент) apache-2.0.50 совместно с mod_php5-5.0.0_1,1 отмечены трудности с SSI. Рекомендуется четко соблюдать правила написания SSI.

Разграничение пользователей

При необходимости эксплуатации программного обеспечения для web на основе PHP часто возникает потребность в ограничении и разграничении ресурсов для различных доменов, пользователей и сайтов.

Механизм apache предусматривает возможность задания различных пользователей, от имени которых запускается процесс. Таким образом, остается разграничить пользователей на уровне операционной системы, назначить им права и квоты, если это необходимо. Единственной проблемой при таком подходе остается некорректная работа функции suexec() в apache версий 1.3.X которая выражается в создании файлов от имени пользователя под которым запущен daemon apache, а не от пользователя который инициализирует процесс.

Проблема может быть решена модификацией исходного кода сервера apache которая позволит запускать демон от имени суперпользователя или инициализировать процессы соответствующим способом. Однако возникает дилемма с обновлением и не совсем корректной работой самого web сервера. Разработчики apache утверждают, что эта проблема решена в версиях apache 2.X.

Инсталляция PHP для Apache под Windows

Как правило для установки под Windows используют уже скомпилированный дистрибутив. При этом предпочтение следует отдать полному варианту, содержащему дополнительные расширения (модули) PHP, т.е. файлу zip, объемом 7.5М.

Учитывая, что PHP можно установить в 2-х вариантах:

то и алгоритм инсталляции различен в зависимости от типа установки.

В любом случае, необходимо вначале разархивировать дистрибутив, скажем, в папку \PHP\ системного диска. Далее, необходимо скопировать файл php.ini-dist в папку Windows и переименовать его в php.ini- это будет конфигурационный файл PHP.

Если планируется установка PHP как модуля сервера, то в обязательном порядке необходимо файл php5ts.dll скопировать в папки Windows system32 или system.

Затем, открыв конфигурационный файл Apache - httpd.conf(/Program Files/Apache Group/Apache/conf/) добавляем в него следующие директивы:

LoadModule php5_module c:/php/php5apache.dll
AddModule mod_php5.c
AddType application/x-httpd-php .php

если PHP устанавливается как модуль, и:

ScriptAlias /php/ "c:/php/"
AddType application/x-httpd-php .php
Action application/x-httpd-php "/php/php.exe"

если PHP устанавливается как CGI интерпретатор.

На этом инсталляция закончена и можно приступить к настройке конфигурации PHP.

Более подробную информацию можно получить в файле install.txt, который поставляется вместе с PHP дистрибутивом.

Инсталляция PHP для Apache 2 под Windows

До настоящего момента работа PHP под Apache 2 носит лишь экспериментальный характер. Насколько возможно, рекомендуется использовать PHP только под Apache 1.