插件窝 干货文章 nginx php项目怎么部署

nginx php项目怎么部署

PHP Nginx 配置 sudo 418    来源:    2025-04-07

Nginx + PHP 项目部署指南

基本部署步骤

1. 安装必要软件

# Ubuntu/Debian
sudo apt update
sudo apt install nginx php-fpm php-mysql php-cli php-curl php-gd php-mbstring php-xml php-zip

# CentOS/RHEL
sudo yum install epel-release
sudo yum install nginx php-fpm php-mysql php-cli php-curl php-gd php-mbstring php-xml php-zip

2. 配置PHP-FPM

编辑PHP-FPM配置文件(通常位于/etc/php/{version}/fpm/pool.d/www.conf):

listen = /run/php/php{version}-fpm.sock
user = www-data
group = www-data

重启PHP-FPM服务:

sudo systemctl restart php{version}-fpm

3. 配置Nginx

创建Nginx站点配置文件(如/etc/nginx/sites-available/your_project):

server {
    listen 80;
    server_name yourdomain.com;
    root /var/www/your_project/public;
    index index.php index.html index.htm;

    location / {
        try_files $uri $uri/ /index.php?$query_string;
    }

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

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

启用站点并测试配置:

sudo ln -s /etc/nginx/sites-available/your_project /etc/nginx/sites-enabled/
sudo nginx -t
sudo systemctl reload nginx

4. 部署项目代码

将项目文件上传到服务器(如/var/www/your_project):

sudo mkdir -p /var/www/your_project
sudo chown -R www-data:www-data /var/www/your_project

5. 配置项目环境

根据项目需求: - 安装Composer依赖:composer install - 配置.env文件 - 设置存储目录权限:chmod -R 775 storage bootstrap/cache

高级配置

HTTPS配置

使用Let's Encrypt免费证书:

sudo apt install certbot python3-certbot-nginx
sudo certbot --nginx -d yourdomain.com

性能优化

  1. PHP-FPM优化

    pm = dynamic
    pm.max_children = 50
    pm.start_servers = 5
    pm.min_spare_servers = 5
    pm.max_spare_servers = 10
    
  2. Nginx优化

    gzip on;
    gzip_types text/plain text/css application/json application/javascript text/xml application/xml application/xml+rss text/javascript;
    

常见问题解决

  1. 502 Bad Gateway

    • 检查PHP-FPM是否运行:systemctl status php-fpm
    • 检查Nginx配置中的sock路径是否正确
  2. 403 Forbidden

    • 确保项目目录权限正确:chown -R www-data:www-data /var/www/your_project
    • 检查Nginx配置中的root路径是否正确
  3. PHP文件被下载而不是执行

    • 确保Nginx配置中包含PHP处理部分
    • 检查fastcgi_pass设置是否正确

自动化部署

考虑使用部署工具如: - Deployer - Capistrano - Git hooks + 自定义脚本

希望这个指南对您有所帮助!根据您的具体项目需求,可能还需要进行其他配置。