在 Ubuntu 12.04 上的 nginx 上启用 PHP 的最简单方法是什么?
最好的解决方案是需要最少的工作,理想情况下只需要安装一个包:)
答案1
以下方法可以帮助您快速开始使用 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;
:)
答案2
编辑:正如马特·布朗您可能对这篇最新文章感兴趣:
如何在 Ubuntu 16.04 中安装 Linux、Nginx、MySQL、PHP(LEMP 堆栈)
这papashou 的回答在旧版 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
或者单行
echo '<?php phpinfo(); ?>' | \ sudo tee "$(awk -F' |;' '/^[^#]*root/ {print $2}' /etc/nginx/sites-available/default)/info.php"
打开后http://localhost/info.php
应该会显示 PHP 信息页面。
答案3
sudo apt install nginx php-fpm
注意 fpm 版本,或者php -v
在我的情况下检查 .7.3.11-0ubuntu0.19.10.3 (cli)。
sudo nano /etc/nginx/sites-available/default
设置正确的
root
文件夹。添加
index.php
到index
指令。取消注释 php 的位置处理程序,但如果使用 php-fpm,请保留“php-cgi”行的注释。还要确保 fpm 版本正确,以免在本地主机上出现“502 Bad Gateway”:
fastcgi_pass unix:/var/run/php/php7.3-fpm.sock;
sudo service nginx restart
适用于:
$ nginx -v
nginx version: nginx/1.16.1 (Ubuntu)
$ uname -a
Linux cees-XPS-13-9380 4.15.0-1067-oem #77-Ubuntu SMP Mon Jan 20 09:23:07 UTC 2020 x86_64 x86_64 x86_64 GNU/Linux