PHP Velho Oeste 2024

Интеграция с Apache

Модуль Hyperwave лучше всего использовать, когда PHP скомпилирован как модуль Apache. В таком случае базовый сервер Hyperwave может быть почти полностью скрыт от пользователей, если Apache использует свой механизм перезаписи. Следующие инструкции объяснят это.

Поскольку PHP с поддержкой Hyperwave, встроенной в Apache, предназначен для замены собственного решения Hyperwave на основе Wavemaster, мы будем предполагать, что сервер Apache будет служить только веб-интерфейсом Hyperwave в этих примеров. В этом нет необходимости, но упрощает конфигурацию. Идея довольно проста. Прежде всего вам нужен PHP-скрипт, который оценивает переменную $_ENV['PATH_INFO'] и обрабатывает ее значение как имя объекта Hyperwave. Назовем этот скрипт 'Hyperwave'. URL-адрес http://your.hostname/Hyperwave/name_of_object вернет объект Hyperwave с именем 'name_of_object'. В зависимости от типа объекта скрипт должен реагировать соответствующим образом. Если это коллекция, она, вероятно, вернет список дочерних элементов. Если это документ, он вернет mime-тип и содержимое. Можно добиться небольшого улучшения, если использовать механизм перезаписи Apache. С точки зрения пользователей было бы проще, если бы URL http://your.hostname/name_of_object возвращал бы объект. Правило перезаписи довольно простое:

RewriteRule ^/(.*) /usr/local/apache/htdocs/HyperWave/$1 [L]
Теперь любой URL-адрес относится к объекту на сервере Hyperwave. Из-за этого возникает проблема: невозможно выполнить отличный от 'Hyperwave' скрипт, например, для поиска. Это можно исправить с помощью другого правила перезаписи, например следующего:
RewriteRule ^/hw/(.*) /usr/local/apache/htdocs/hw/$1 [L]
Это зарезервирует каталог /usr/local/apache/htdocs/hw для дополнительных скриптов и других файлов. Просто убедитесь, что это правило определяется раньше, чем указанное выше. Есть небольшой недостаток: все объекты Hyperwave, имя которых начинается с 'hw/', будут затенены. Поэтому убедитесь, что вы не используете такие имена. Если вам нужно больше каталогов, например, для изображений просто добавьте больше правил или поместите их все в один каталог. Перед тем, как поставить эти инструкции, не забудьте включить механизм перезаписи с помощью
RewriteEngine on
Вам понадобятся скрипты:
  • вернуть сам объект
  • разрешить поиск
  • идентифицировать себя
  • установить свой профиль
  • по одному для каждой дополнительной функции, например, для отображения атрибутов объекта, для отображения информации о пользователях, для отображения статуса сервера и т.д.

В качестве альтернативы механизму перезаписи вы также можете рассмотреть возможность использования директивы Apache ErrorDocument, но имейте в виду, что перенаправленные страницы ErrorDocument не могут получать POST-данные.

add a note add a note

User Contributed Notes

There are no user contributed notes for this page.
To Top