如何正确配置 Nginx 和 PHP

如何正确配置 Nginx 和 PHP


繁华开满天机
浏览 804回答 2
2回答

小怪兽爱吃肉

location ~ \.php$ {root /usr/share/nginx/html;try_files $uri = 404;include /etc/nginx/fastcgi_params;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;fastcgi_index index.php;fastcgi_pass unix:/var/run/php5-fpm.sock;#fastcgi_pass 127.0.0.1:9000;

慕少森

直接贴上代码逐行进行讲解,此处贴出一个能正常启动php脚本的最简nginx vhost配置:[plain] view plain copyserver {listen 8011;server_name test.cn;location ~ \.php?.*$ {root /share/test;fastcgi_pass 127.0.0.1:9000;fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;include fastcgi_params;}}1、第一个大括号 server{ }:不必多说,代表一个独立的server,2、listen 8011:代表该server监听8011端口3、location ~ \.php?.*${}:代表一个能匹配对应uri的location,用于匹配一类uri,并对所匹配的uri请求做自定义的逻辑、配置。这里的location,匹配了所有带.php的uri请求,例如:http://192.168.244.128:8011/test.php/asdasdhttp://192.168.244.128:8011/index.php等4、root /share/test:请求资源根目录,告诉匹配到该location下的uri到/share/teset文件夹下去寻找同名资源。5、fastcgi_pass 127.0.0.1:9000:这行开始是本文的重点:这行代码的意思是,将进入到该location内的uri请求看做是cgi程序,并将请求发送到9000端口,交由php-fpm处理。6、fastcgi_param SCRIPT_FILENAME$document_root$fastcgi_script_name;:这行配置意思是:动态添加了一行fastcgi配置,配置内容为SCRIPT_FILENAME,告知管理进程,cgi脚本名称。由于我的nginx中只有fastcgi_params文件,没有fastcgi.conf文件,所以要使php-fpm知道SCRIPT_FILENAME的具体值,就必须要动态的添加这行配置。7、include fastcgi_params; 引入fastcgi配置文件以上就是最简洁版的nginx启动php脚本的最简配置,当重启nginx之后,在/share/test目录下创建一个xx.php文件,输入<?phpecho "hello world"; ?>保存,然后在浏览器中访问localhost:8011/xx.php就可以在网页上显示hello world了。
打开App,查看更多内容
随时随地看视频慕课网APP