对于部署 Laravel + Nginx + PHP-FPM 的环境,Ubuntu 通常配置更简单,原因如下:
Ubuntu 的优势
-
软件包更新更及时
Ubuntu 的官方仓库通常包含较新的 PHP、Nginx 版本,且 Laravel 的依赖(如php-mbstring、php-xml)在 Ubuntu 中更容易安装,无需额外配置第三方仓库。 -
默认配置更友好
- Nginx 的站点配置文件默认路径为
/etc/nginx/sites-available/和/etc/nginx/sites-enabled/,结构清晰。 - PHP-FPM 的进程池配置文件路径为
/etc/php/{version}/fpm/pool.d/,易于管理。
- Nginx 的站点配置文件默认路径为
-
社区支持丰富
Laravel 官方文档和社区教程更多以 Ubuntu 为例,遇到问题时解决方案更容易查找。 -
一键安装便利性
通过apt安装时,依赖包自动处理较好,例如:sudo apt install nginx php-fpm php-mysql php-mbstring php-xml php-curl
CentOS 的额外步骤
-
需要添加第三方仓库
CentOS 默认仓库的 PHP 版本较旧,通常需要添加 EPEL 和 Remi 仓库才能安装较新版本的 PHP,步骤更繁琐。 -
SELinux 配置
CentOS 默认启用 SELinux,可能导致权限问题(如 Laravel 的storage/目录写入失败),需要额外命令调整:sudo setsebool -P httpd_can_network_connect on sudo chcon -Rt httpd_sys_content_t /path/to/laravel -
配置文件路径差异
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 是更推荐的选择。
CLOUD技术笔记