Хороший способ выполнять PHP/FI
- используя модуль переадресации cgi с http сервером Apache.
Пожалуйста обратите внимание, что вам не нужно волноваться относительно
модулей переадресации, если PHP/FI используется в виде модуля
Apache. Существует два таких модуля переадресации. Один из них
разработан Дэйвом Андерсеном <spm111@yandex.ru>,
и доступен по
ftp://ftp.aros.net/pub/util/apache/mod_cgi_redirect.c, и
другой идет вместе с исходными текстами Apache и называется
mod_actions.c. Эти модули очень похожи. Есть лишь небольшая
разница в их использовании. Оба были протестированы и оба работают
с PHP/FI.
Одно большое "но"
на момент написания документа (апрель. 20/96) - то, что текущий
официальный выпуск Apache (1.0.5) имеет серьезное ограничение,
которое препятствует получению данных в переадресованных cgi
запросах метода POST. Я разрешил эту проблему и устранил этот
недостаток в моей версии Apache, есть также официальный патч,
доступный в файловом
архиве на домашней странице
PHP.
Вторая довольно большая проблема
с Apache, 1.0.x - то, что он не выравнивает тип double правильно
на большинстве архитектур. Вы получаете странные ошибки типа
BUSERROR от вашего httpd при использовании mod_php, для решения
этой проблемы нужно или обновление Apache до 1.1 или подредактировать
файл alloc.c Apache. В этом файле найдите следующий фрагмент
кода:
union align {
/* Types which are likely to have the longest
RELEVANT alignment
* restrictions... we don't do much with doubles.
*/
char *cp; void (*f)();
long l;
FILE *fp;
};
Нужно добавить double к этой
строке и перетранслировать вашу Apache сервер. Правильный блок
кода:
union align {
/* Types which are likely to have the longest
RELEVANT alignment
* restrictions... we don't do much with doubles.
*/
char *cp; void (*f)();
long l;
FILE *fp; double d;
};
Проверьте документацию к Apache
по тому, как добавлять модуль. Вообще Вы добавляете имя модуля
к файлу называемому Configuration. Если вы хотите использовать
модуль mod_action, то вам нужно добавить следующую строку:
Module action_module mod_actions.o
Если хотите использовать модуль
mod_cgi_redirect.c, добавьте строку:
Module cgi_redirect_module
mod_cgi_redirect.o
Затем скомпилируйте ваш httpd,
и инсталлируйте его. Чтобы разрешить cgi переадресацию, нужно
или создать новый MIME тип, в файле mime.types , либо можно
использовать команду AddType в вашем srm.conf
файле, чтобы добавить тип MIME. Тип MIME, который будет
добавлен должен быть что - нибудь вроде этого:
application/x-httpd-php
phtml
Если Вы используете модуль
mod_actions.c, Вам нужно добавить следующую строку к вашему
файлу srm.conf:
Action application/x-httpd-php
/cgi-bin/php.cgi
Если Вы используете mod_cgi_redirect.c,
нужно добавить эту строку к srm.conf:
Не пробуйте одновременно использовать,
и mod_actions.c и mod_cgi_redirect.c.
Если только Вы имеете один
из этих cgi модулей переадресации, установленных и правильно
сконфигурированных , Вы захотите чтобы файл анализировался php/fi
просто дав ему расширение файла .phtml. Кроме
того, если Вы добавляете index.phtml к вашей
строке конфигурации DirectoryIndex в файле
srm.conf, то верхне-уровневая страница в каталоге будет
автоматически анализироваться php, в том случае если ваш индексный
файл называется index.phtml.
Netscape HTTPD
Вы можете автоматически переадресовывать
запросы к файлам с данным расширением, которые будут обрабатываться
PHP/FI, с использованием модуля переадресации CGI сервера Netscape.
Этот модуль доступен в файловом
архиве на домашней странице
PHP/FI . Файл README в пакете подробно объясняет, как конфигурировать
модуль для использования с PHP/FI.
NCSA HTTPD
NCSA в настоящее время не
поддерживает модули, таким образом чтобы использовать cgi переадресацию
с этим сервером, нужно изменить исходный текст сервера. Патч,
для сервера NCSA 1.5 доступен в архиве
PHP/FI.