www.yaxin009.net

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

ubuntu 16 nginx php

这一步将更新系统内核、基础库及软件包,为后续安装奠定基础。

二、安装并配置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://www.000yaxing.com/post/7.html

(991)
的头像签约作者

文章推荐

发表回复

作者才能评论

评论列表(3条)

  • 的头像
    2026年05月15日 13:19:59

    我是亚星官网-www.yaxin222.com的签约作者“”

  • 2026年05月15日 13:19:59

    本文概览:Ubuntu16+Nginx+PHP:从环境搭建到部署实战在Web开发领域,Ubuntu系统凭借其稳定性和长期支持特性,一直是服务器环境的热门选择。而Nginx作为轻量级高性能Web服务器,搭配PHP(通过PHP-FPM处理动态...

  • 用户0515131959 2026年05月15日 13:19:59

    文章不错《www.yaxin009.net》内容很有帮助