使用Nginx + PHP-FPM部署Laravel,CentOS和Ubuntu哪个配置更简单?

对于部署 Laravel + Nginx + PHP-FPM 的环境,Ubuntu 通常配置更简单,原因如下:


Ubuntu 的优势

  1. 软件包更新更及时
    Ubuntu 的官方仓库通常包含较新的 PHP、Nginx 版本,且 Laravel 的依赖(如 php-mbstringphp-xml)在 Ubuntu 中更容易安装,无需额外配置第三方仓库。

  2. 默认配置更友好

    • Nginx 的站点配置文件默认路径为 /etc/nginx/sites-available//etc/nginx/sites-enabled/,结构清晰。
    • PHP-FPM 的进程池配置文件路径为 /etc/php/{version}/fpm/pool.d/,易于管理。
  3. 社区支持丰富
    Laravel 官方文档和社区教程更多以 Ubuntu 为例,遇到问题时解决方案更容易查找。

  4. 一键安装便利性
    通过 apt 安装时,依赖包自动处理较好,例如:

    sudo apt install nginx php-fpm php-mysql php-mbstring php-xml php-curl

CentOS 的额外步骤

  1. 需要添加第三方仓库
    CentOS 默认仓库的 PHP 版本较旧,通常需要添加 EPELRemi 仓库才能安装较新版本的 PHP,步骤更繁琐。

  2. SELinux 配置
    CentOS 默认启用 SELinux,可能导致权限问题(如 Laravel 的 storage/ 目录写入失败),需要额外命令调整:

    sudo setsebool -P httpd_can_network_connect on
    sudo chcon -Rt httpd_sys_content_t /path/to/laravel
  3. 配置文件路径差异
    Nginx 配置默认在 /etc/nginx/conf.d/,PHP-FPM 配置路径为 /etc/php-fpm.d/,对新手可能稍显混乱。


简单配置示例(Ubuntu)

# 1. 安装
sudo apt update
sudo apt install nginx php8.1-fpm php8.1-mysql php8.1-mbstring php8.1-xml

# 2. 配置 Nginx(/etc/nginx/sites-available/laravel)
server {
    listen 80;
    server_name your_domain.com;
    root /var/www/laravel/public;
    index index.php;

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

    location ~ .php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.1-fpm.sock;
    }
}

# 3. 启用站点并重启
sudo ln -s /etc/nginx/sites-available/laravel /etc/nginx/sites-enabled/
sudo systemctl restart nginx

结论

  • 选择 Ubuntu:适合快速部署、新手友好,减少环境配置的复杂度。
  • 选择 CentOS:适合企业级稳定场景或已有 CentOS 运维经验的团队。

如果追求简单省时,Ubuntu 是更推荐的选择

云服务器