HTML files as PHP in Nginx

懵懂的女人 提交于 2019-12-17 10:57:16

问题


For web servers using PHP as apache module:

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

For web servers running PHP as CGI:

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

I have an Nginx server and I want to run .js files and and .htm files as PHP, so I will have full PHP code inside them. Anyone know how to configure the Nginx to do this?


回答1:


Example for .htm, .html files

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

Example for .js files

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

just change the extension and port settings if needed




回答2:


Passing to fastcgi didn't work for me. After a few hours of searching, I have found solution here: http://ffct.cc/solving-nginx-php-fpm-access-denied-issue/

In short:

since PHP versions > 5.3.8, to make it works, you should add directive to your php-fpm.conf:

security.limit_extensions = .php .html .js

The recognition sign is "Access denied." (notice that it's different from HTTP error 403) when accesssing .html or .js file.




回答3:


Simple; just change

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;
    }

to

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;
    }



回答4:


Tom's answer with the link:

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

was really helpful. However, I was using php with php-fpm installed on mac os yosemite w/ homebrew. Changes to the php-fpm.conf file did not take effect until I added the following to my .bash_profile:

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

For details see:

brew info php55


来源:https://stackoverflow.com/questions/8644783/html-files-as-php-in-nginx

易学教程内所有资源均来自网络或用户发布的内容,如有违反法律规定的内容欢迎反馈
该文章没有解决你所遇到的问题?点击提问,说说你的问题,让更多的人一起探讨吧!