Расширения SSI для Apache 2
Материал из 1GbWiki.
Версия 12:20, 3 августа 2009 (править) Dmih (Обсуждение | вклад) ← К предыдущему изменению |
Текущая версия (22:26, 15 августа 2024) (править) (отменить) Dmih (Обсуждение | вклад) |
||
(15 промежуточных версий не показаны.) | |||
Строка 1: | Строка 1: | ||
- | + | == PHP работает в режиме модуля к Apache == | |
+ | ===Коротко о главном=== | ||
Для того, чтобы в файлах, например, .html у вас заработал PHP, нужно сделать так: | Для того, чтобы в файлах, например, .html у вас заработал PHP, нужно сделать так: | ||
- | + | В личном кабинете // "полный список функций" // "управление сайтами и серверами" | |
- | + | # убрать html из графы "Расширения для SSI" (если забудете - это произойдет автоматически) | |
- | + | # добавить html в графу "Расширения для PHP" | |
+ | # нажать "сохранить" и подождать 1 час | ||
+ | |||
+ | [[Изображение:Php_html_handler.jpg|600px|thumb|center|Страница "Управление сайтами и серверами" личном кабинете]]<br clear="both" /> | ||
+ | |||
+ | Подключившись по FTP | ||
* дописать в .htaccess следующее: | * дописать в .htaccess следующее: | ||
RemoveHandler .html | RemoveHandler .html | ||
AddType application/x-httpd-php .html | AddType application/x-httpd-php .html | ||
- | + | Если вы хотите, чтобы в <code>.html</code> файлах также обрабатывались инструкции SSI, то ваш <code>.htaccess</code> будет выглядить так: | |
+ | RemoveHandler .html | ||
+ | AddType application/x-httpd-php .html | ||
+ | AddOutputFilter INCLUDES .html | ||
+ | |||
+ | Помните: эта инструкция для Apache! | ||
+ | |||
+ | Примечание: на Windows сервере достаточно только дописать блок в .htaccess. | ||
+ | |||
+ | ===Объяснение=== | ||
Веб-сервер Apache2 имеет неудачную архитектуру обработки RemoveHandler / AddType. | Веб-сервер Apache2 имеет неудачную архитектуру обработки RemoveHandler / AddType. | ||
Традиционно для работы PHP в .html файлах (пример) используют следующую конструкцию в .htaccess: | Традиционно для работы PHP в .html файлах (пример) используют следующую конструкцию в .htaccess: | ||
Строка 16: | Строка 31: | ||
AddType application/x-httpd-php .html | AddType application/x-httpd-php .html | ||
- | На Apache 1 это работает хорошо, но на Apache 2 все операции AddType выполняются после всех операций RemoveType, список операций общий для глобальной конфигурации сервера и конфигурации через . | + | На Apache 1 это работает хорошо, но на Apache 2 все операции AddType выполняются после всех операций RemoveType, список операций общий для глобальной конфигурации сервера и конфигурации через .htaccess. Это приводит к тому, что единожды встреченный в конфигурации AddType сделает невозможным никакой более AddType на этот тип файлов, так как два AddType будут выполнены подряд – это ошибка. |
+ | |||
+ | На хостинге 1Gb в общей конфигурации уже присутствует AddType на файлы htm html shtm shtml для обработки SSI в этих типах файлов. Это является ожидаемой традиционной конфигурацией для большого числа Веб-мастеров. В результате для того, чтобы задать другой AddType на любой из этих расширений, необходимо предварительно убрать SSI обработчик с этих файлов, что и можно сделать, удалив соответствующее расширение из списка. | ||
+ | |||
+ | Изменение вступит в силу в течение 1-2 часов если вы сделаете это вручную, и в течение 24 часов (точнее – ночью), если просто напишите директивы в .htaccess. В последнем случае для ускорения обратитесь, пожалуйста, к службе поддержки. | ||
- | + | == PHP работает в режиме FastCGI (UNIX) == | |
+ | В файл .htaccess достаточно добавить: | ||
+ | FcgidWrapper /home/virtwww/'''ваш_FTP_логин'''/.fast-php/fast-php .html | ||
+ | AddHandler fcgid-script .html | ||
- | Изменение вступит в силу в течение 24 часов (точнее – ночью), для ускорения обратитесь, пожалуйста, к службе поддержки. | ||
+ | [[Категория:Кабинет]] | ||
[[Категория:WEB-сервер Apache]] | [[Категория:WEB-сервер Apache]] | ||
- | [[Категория: | + | [[Категория:Программирование]] |
Текущая версия
Содержание |
[править] PHP работает в режиме модуля к Apache
[править] Коротко о главном
Для того, чтобы в файлах, например, .html у вас заработал PHP, нужно сделать так:
В личном кабинете // "полный список функций" // "управление сайтами и серверами"
- убрать html из графы "Расширения для SSI" (если забудете - это произойдет автоматически)
- добавить html в графу "Расширения для PHP"
- нажать "сохранить" и подождать 1 час
Подключившись по FTP
- дописать в .htaccess следующее:
RemoveHandler .html AddType application/x-httpd-php .html
Если вы хотите, чтобы в .html
файлах также обрабатывались инструкции SSI, то ваш .htaccess
будет выглядить так:
RemoveHandler .html AddType application/x-httpd-php .html AddOutputFilter INCLUDES .html
Помните: эта инструкция для Apache!
Примечание: на Windows сервере достаточно только дописать блок в .htaccess.
[править] Объяснение
Веб-сервер Apache2 имеет неудачную архитектуру обработки RemoveHandler / AddType. Традиционно для работы PHP в .html файлах (пример) используют следующую конструкцию в .htaccess:
RemoveHandler .html AddType application/x-httpd-php .html
На Apache 1 это работает хорошо, но на Apache 2 все операции AddType выполняются после всех операций RemoveType, список операций общий для глобальной конфигурации сервера и конфигурации через .htaccess. Это приводит к тому, что единожды встреченный в конфигурации AddType сделает невозможным никакой более AddType на этот тип файлов, так как два AddType будут выполнены подряд – это ошибка.
На хостинге 1Gb в общей конфигурации уже присутствует AddType на файлы htm html shtm shtml для обработки SSI в этих типах файлов. Это является ожидаемой традиционной конфигурацией для большого числа Веб-мастеров. В результате для того, чтобы задать другой AddType на любой из этих расширений, необходимо предварительно убрать SSI обработчик с этих файлов, что и можно сделать, удалив соответствующее расширение из списка.
Изменение вступит в силу в течение 1-2 часов если вы сделаете это вручную, и в течение 24 часов (точнее – ночью), если просто напишите директивы в .htaccess. В последнем случае для ускорения обратитесь, пожалуйста, к службе поддержки.
[править] PHP работает в режиме FastCGI (UNIX)
В файл .htaccess достаточно добавить:
FcgidWrapper /home/virtwww/ваш_FTP_логин/.fast-php/fast-php .html AddHandler fcgid-script .html