Хороший способ выполнять PHP/FI - используя модуль переадресации cgi с http
сервером Apache. Обратите внимание, что вам не нужно волноваться
относительно модулей переадресации, если PHP/FI используется в виде модуля
Apache. Существует два таких модуля переадресации. Один из них разработан
Дэйвом Андерсеном <angio@aros.net> , и доступен по
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 модуль переадресации, просто дайте расширение .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.