Logo Море(!) аналитической информации!
IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware
Конференция «Технологии управления данными 2018»
СУБД, платформы, инструменты, реальные проекты.
29 ноября 2018 г.

Переадресация CGI

Apache

Хороший способ выполнять 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:

CgiRedirect application/x-httpd-php /cgi-bin/php.cgi

Не пытайтесь одновременно использовать и 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.

[Назад] [Содержание] [Вперед]

Новости мира IT:

Архив новостей

Последние комментарии:

IT-консалтинг Software Engineering Программирование СУБД Безопасность Internet Сети Операционные системы Hardware

Информация для рекламодателей PR-акции, размещение рекламы — adv@citforum.ru,
тел. +7 985 1945361
Пресс-релизы — pr@citforum.ru
Обратная связь
Информация для авторов
Rambler's Top100 TopList liveinternet.ru: показано число просмотров за 24 часа, посетителей за 24 часа и за сегодня This Web server launched on February 24, 1997
Copyright © 1997-2000 CIT, © 2001-2015 CIT Forum
Внимание! Любой из материалов, опубликованных на этом сервере, не может быть воспроизведен в какой бы то ни было форме и какими бы то ни было средствами без письменного разрешения владельцев авторских прав. Подробнее...