问题描述
在Ubuntu 12.04上启用nginx上的PHP最简单的方法是什么?
最好的解决方案是请求最少的工作,理想情况下只是一个包安装:)
最佳解决方法
下面的方法可以让你在Ubuntu 12.04上快速启动:
安装相关性:
sudo apt-get install php5-common php5-cli php5-fpm
安装nginx:
sudo apt-get install nginx
开始nginx:
sudo service nginx start
测试它正在工作(应该看到“欢迎使用nginx!”)
sudo service nginx stop
在您的nginx站点配置(/etc /nginx /sites-available /default)中,修改服务器部分中的行{}部分
index index.html index.htm
到index index.php index.html index.htm
。
从开始取消注释服务器部分中的行
listen
用于ipv4 /ipv6。
向下滚动到“location〜.php {”的位置,取消注释行,如下所示:
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
}
sudo service php5-fpm restart
sudo service nginx restart
您的默认Web根位于/usr /share /nginx /www(根据配置文件)。 (见root /usr/share/nginx/www;
(注意:对于Ubuntu 12.10或更新的版本,您需要替换fastcgi_pass 127.0.0.1:9000;
行以使其工作:fastcgi_pass unix:/var/run/php5-fpm.sock;
)
次佳解决方法
编辑:正如Matt Browne指出的,你可能会对这个更近的帖子感兴趣:How To Install Linux, Nginx, MySQL, PHP (LEMP stack) in Ubuntu 16.04
papashou’s answer在旧版Ubuntu 12.04上是正确的。自Ubuntu 12.10以来,配置有点不同。这是我所做的:
安装
sudo apt-get install nginx php5-fpm
启用PHP
在配置文件/etc/nginx/sites-available/default
中取消注释以下行
location ~ \.php$ {
fastcgi_split_path_info ^(.+\.php)(/.+)$;
# NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini
# # With php5-cgi alone:
# fastcgi_pass 127.0.0.1:9000;
# With php5-fpm:
fastcgi_pass unix:/var/run/php5-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
开始(或重新启动)
sudo service php5-fpm restart
sudo service nginx restart
测试nginx
打开此链接http://localhost
应显示“欢迎使用nginx!”
测试php
创建一个php文件:
-
目标路径是的输出
awk -F' |;' '/^[^#]*root/ {print $2}' /etc/nginx/sites-available/default
例如
/usr/share/nginx/www
-
用以下方式编写
info.php
文件:echo '<?php phpinfo(); ?>' | \ sudo tee /usr/share/nginx/www/info.php
或one-liner
echo '<?php phpinfo(); ?>' | \ sudo tee "$(awk -F' |;' '/^[^#]*root/ {print $2}' /etc/nginx/sites-available/default)/info.php"
打开http://localhost/info.php
应显示PHP信息页面。