插件窝 干货文章 Linux系统下怎么架设nginx+php服务器应用

Linux系统下怎么架设nginx+php服务器应用

PHP sudo Nginx 配置 892    来源:    2025-04-22

Linux下架设Nginx+PHP服务器指南

准备工作

  1. 确保你使用的是基于Debian/Ubuntu或RHEL/CentOS的Linux系统
  2. 确保你有root或sudo权限

安装步骤

1. 更新系统软件包

# Debian/Ubuntu
sudo apt update && sudo apt upgrade -y

# RHEL/CentOS
sudo yum update -y

2. 安装Nginx

# Debian/Ubuntu
sudo apt install nginx -y

# RHEL/CentOS
sudo yum install nginx -y

3. 安装PHP和相关模块

# Debian/Ubuntu (以PHP 8.1为例)
sudo apt install php-fpm php-mysql php-mbstring php-xml php-curl php-gd php-zip -y

# RHEL/CentOS 8+
sudo dnf install php-fpm php-mysqlnd php-mbstring php-xml php-curl php-gd php-zip -y

4. 配置PHP-FPM

编辑PHP-FPM配置文件:

sudo nano /etc/php/{version}/fpm/php.ini

(将{version}替换为你安装的PHP版本号,如8.1)

找到并修改以下参数:

cgi.fix_pathinfo=0

然后重启PHP-FPM服务:

sudo systemctl restart php{version}-fpm

5. 配置Nginx支持PHP

编辑Nginx默认站点配置文件:

sudo nano /etc/nginx/sites-available/default

修改或添加以下内容:

server {
    listen 80;
    server_name your_domain_or_IP;

    root /var/www/html;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ =404;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php{version}-fpm.sock;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include fastcgi_params;
    }

    location ~ /\.ht {
        deny all;
    }
}

6. 测试配置并重启Nginx

sudo nginx -t  # 测试配置是否正确
sudo systemctl restart nginx

7. 创建测试PHP文件

sudo nano /var/www/html/info.php

添加以下内容:

<?php phpinfo(); ?>

8. 设置防火墙(如有需要)

# 对于UFW (Ubuntu)
sudo ufw allow 'Nginx Full'

# 对于firewalld (CentOS/RHEL)
sudo firewall-cmd --permanent --zone=public --add-service=http
sudo firewall-cmd --permanent --zone=public --add-service=https
sudo firewall-cmd --reload

9. 测试安装

在浏览器中访问:

http://your_server_ip/info.php

你应该能看到PHP信息页面。

常见问题解决

  1. 502 Bad Gateway错误

    • 检查PHP-FPM是否运行:sudo systemctl status php{version}-fpm
    • 确保Nginx配置中的sock路径正确
  2. PHP文件被下载而不是执行

    • 确保Nginx配置中PHP处理部分正确
    • 检查PHP-FPM服务是否正常运行
  3. 权限问题

    • 确保/var/www/html目录权限正确: bash sudo chown -R www-data:www-data /var/www/html sudo chmod -R 755 /var/www/html

后续优化

  1. 配置HTTPS(使用Let's Encrypt免费证书)
  2. 优化PHP-FPM和Nginx性能参数
  3. 设置适当的文件缓存
  4. 配置OPcache提高PHP性能

需要任何特定部分的更详细说明或遇到具体问题,请随时询问。

下一篇:没有了