Ubuntu 16 + Nginx + PHP:从环境搭建到部署实战
在Web开发领域,Ubuntu系统凭借其稳定性和长期支持特性,一直是服务器环境的热门选择。而Nginx作为轻量级高性能Web服务器,搭配PHP(通过PHP-FPM处理动态请求)构成的组合,更是中小型网站和Web应用的经典架构。本文将详细介绍在Ubuntu 16.04 LTS环境下,如何从零开始搭建Nginx+PHP的Web运行环境,并完成基础部署。
一、环境准备:更新Ubuntu 16系统
Ubuntu 16.04 LTS系统安装完成后,首先需确保系统包管理器更新到最新状态,避免因软件源陈旧导致安装失败。打开终端执行以下命令:
sudo apt-get update
sudo apt-get upgrade -y

这一步将更新系统内核、基础库及软件包,为后续安装奠定基础。
二、安装并配置Nginx
1. 安装Nginx
Ubuntu 16的官方软件源中已包含稳定版Nginx,直接通过apt安装即可:
sudo apt-get install nginx -y
安装完成后,启动Nginx服务并设置开机自启:
sudo systemctl start nginx
sudo systemctl enable nginx
可通过systemctl status nginx验证服务状态,正常情况下应显示“active (running)”。
2. 配置Nginx站点
Nginx通过“服务器块”(Server Block)管理不同站点的配置。在Ubuntu 16中,默认站点配置位于/etc/nginx/sites-available/default。如需部署多站点,可复制该文件并修改:
sudo cp /etc/nginx/sites-available/default /etc/nginx/sites-available/my-site
sudo nano /etc/nginx/sites-available/my-site
在配置文件中,需指定网站根目录(如/var/www/html)、默认首页(index.html/index.php)及服务器域名(或IP地址)。示例配置如下:
server {
listen 80;
server_name example.com www.example.com; # 替换为实际域名或IP
root /var/www/html; # 网站根目录
index index.html index.php; # 默认首页
location / {
try_files $uri $uri/ =404; # 处理静态文件和404错误
}
}
保存配置后,启用站点并测试配置语法:
sudo ln -s /etc/nginx/sites-available/my-site /etc/nginx/sites-enabled/
sudo nginx -t # 检查配置是否有误,无误则输出“syntax is ok”
sudo systemctl restart nginx # 重启Nginx使配置生效
三、安装并配置PHP-FPM
Nginx需通过PHP-FPM(FastCGI进程管理器)处理PHP文件。Ubuntu 16默认软件源中的PHP版本为7.0,可直接安装:
sudo apt-get install php7.0-fpm php7.0-cli php7.0-mysql php7.0-mbstring -y
php7.0-fpm:PHP-FPM服务,负责处理动态请求php7.0-cli:命令行接口,用于测试PHP脚本php7.0-mysql/php7.0-mbstring:常用扩展,按需安装(如需MySQL支持则必装前者)
安装完成后,验证PHP-FPM服务状态:
sudo systemctl status php7.0-fpm # 应显示“active (running)”
四、整合Nginx与PHP
需修改Nginx配置,使其将.php文件请求转发给PHP-FPM处理。在之前创建的站点配置文件中,添加以下location块:
location ~ \.php$ {
include snippets/fastcgi-php.conf; # 引入FastCGI配置片段
fastcgi_pass unix:/run/php/php7.0-fpm.sock; # PHP-FPM的socket地址
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
此配置将所有.php文件的请求转发至PHP-FPM的Unix socket(路径需与php7.0-fpm的配置一致,可通过netstat -ln | grep php查看)。保存后重启Nginx:
sudo systemctl restart nginx
五、测试与验证
1. 创建测试PHP文件
在Nginx根目录(/var/www/html)创建测试文件:
sudo nano /var/www/html/info.php
文件内容如下:
<?php phpinfo(); ?>
保存后设置权限(Nginx以www-data用户运行):
sudo chown -R www-data:www-data /var/www/html
2. 浏览器访问验证
通过浏览器访问服务器IP或域名(如http://your-server-ip/info.php),若页面显示PHP版本、环境变量等信息,则说明配置成功。
六、常见问题与排查
- 502 Bad Gateway:通常是PHP-FPM未启动或Nginx配置中
fastcgi_pass地址错误。执行systemctl status php7.0-fpm检查服务状态,或检查socket路径是否正确。 - PHP文件无法解析:检查Nginx配置中是否包含
fastcgi_pass,且站点目录权限是否正确(www-data需有读写权限)。 - 版本过旧:如需更高版本PHP(如7.2+),可添加第三方源(如ondrej/php):
sudo add-apt-repository ppa:ondrej/php sudo apt-get update sudo apt-get install php7.2-fpm
总结
通过以上步骤,已完成Ubuntu 16环境下Nginx与PHP-FPM的整合。该架构轻量高效,适合部署静态站点、动态Web应用及中小型项目。实际生产中,还需进一步配置SSL证书、限制请求频率、优化PHP-FPM进程池等,以提升安全性和性能。
本文来自作者[]投稿,不代表亚星官网-www.yaxin222.com立场,如若转载,请注明出处:https://000yaxing.com/post/7.html
评论列表(3条)
我是亚星官网-www.yaxin222.com的签约作者“”
本文概览:Ubuntu16+Nginx+PHP:从环境搭建到部署实战在Web开发领域,Ubuntu系统凭借其稳定性和长期支持特性,一直是服务器环境的热门选择。而Nginx作为轻量级高性能Web服务器,搭配PHP(通过PHP-FPM处理动态...
文章不错《亚星管理》内容很有帮助