Вызов PHP кода в HTML документах на веб-севере NGINX

28 Feb 2017 | Автор: anchous |

Иногда бывает необходимо запустить PHP код в HTML файлах. Особенно это актуально если торгуешь ссылочками в сапе или её ином аналоге.

В веб-сервере Apache это делается добавлением текстовой строки AddHandler в .htaccess
AddHandler application/x-httpd-php .php .htm .html
но к сожалению NGINX не понимает .htaccess и все настройки у него приходится производить через конфиг.

Поэтому придется немного подправить конфиг. За основу я взял конфиг из мануала по установке NGINX и PHP-FPM но нам от него интересна только часть описывающая работу PHP, поэтому я процитирую только её

##### vi /etc/nginx/conf.d/site.ru.conf
location ~ \.php$ {
include /etc/nginx/fastcgi_params;
fastcgi_pass  unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
##########################################

собственно в ней мы и прописываем, что используем не только php, но и другие расширения файлов, приводя эту секцию к следующему виду

##### vi /etc/nginx/conf.d/site.ru.conf
location ~ \.(php|html|htm) {
include /etc/nginx/fastcgi_params;
fastcgi_pass  unix:/var/run/php5-fpm.sock;
fastcgi_index (index.html|index.php|index.htm);
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
##########################################

но помимо этого нам надо поменять директиву security.limit_extensions в файле /etc/php-fpm.d/www.conf поскольку она по умолчанию закомментирована и позволяет выполнять только php файлы. Для этого открываем файл конфига PHP-FPM и приводим строку к следующему виду:

security.limit_extensions = .php .php3 .php4 .php5 .html .htm

после чего рестартим оба сервиса
# service nginx restart
# service php-fpm restart

и видимо что у нас PHP код начинает корректно отрабатываться в виде вызовов из HTML файлов.

VN:F [1.9.21_1169]
Rating: 0.0/10 (0 votes cast)
VN:F [1.9.21_1169]
Rating: 0 (from 0 votes)

Теги: ,

Ваш отзыв