HTML-файлы как PHP в Nginx - PullRequest
       57

HTML-файлы как PHP в Nginx

3 голосов
/ 27 декабря 2011

Для веб-серверов, использующих PHP в качестве модуля apache:

AddType application/x-httpd-php .html .htm

Для веб-серверов, использующих PHP в качестве CGI:

AddHandler application/x-httpd-php .html .htm 

У меня есть сервер Nginx, и я хочу запустить .jsфайлы и файлы .htm как PHP, поэтому у меня будет полный код PHP внутри них.Кто-нибудь знает, как настроить Nginx для этого?

Ответы [ 4 ]

19 голосов
/ 16 ноября 2012

Переход на fastcgi не работает для меня. После нескольких часов поиска я нашел решение здесь: http://ffct.cc/solving-nginx-php-fpm-access-denied-issue/

Короче говоря:

, поскольку версии PHP> 5.3.8, чтобы он работал, вы должны добавить директиву в ваш php-fpm.conf:

security.limit_extensions = .php .html .js

Знак распознавания: «Доступ запрещен». (обратите внимание, что это отличается от ошибки HTTP 403) при доступе к файлу .html или .js.

10 голосов
/ 07 апреля 2014

Simple;просто измените

location ~ \.php$ {
        root           html;
       fastcgi_pass   127.0.0.1:9000;
       fastcgi_index  index.php;
       fastcgi_param    SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

на

location ~ \.(php|html|htm)$ {
        root           html;
       fastcgi_pass   127.0.0.1:9000;
       fastcgi_index  index.php;
       fastcgi_param    SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }
3 голосов
/ 27 декабря 2011

Пример для файлов .htm, .html

  location ~ \.htm$ {
            root           html;
            fastcgi_pass   127.0.0.1:9000;
            fastcgi_index  index.htm;
            include        fastcgi.conf;
  }

Пример для файлов .js

location ~ \.js$ {
    fastcgi_pass   127.0.0.1:9000;
    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    include        fastcgi_params;
}

просто измените расширение и настройки порта при необходимости

0 голосов
/ 10 апреля 2015

Ответ Тома со ссылкой:

http://ffct.cc/solving-nginx-php-fpm-access-denied-issue/

был действительно полезным.Тем не менее, я использовал php с php-fpm, установленной на Mac OS Yosemite W / Homebrew.Изменения в файле php-fpm.conf не вступили в силу, пока я не добавил в свой .bash_profile следующее:

 # for homebrew php55
 export PATH="/usr/local/sbin:$PATH"

Подробнее см.

brew info php55
...