在 CentOS 上安装和运行 Laravel,和 Ubuntu 相比有一些“坑”和注意点,下面按系统层面 → 运行环境 → Laravel 安装 → 常见问题给你梳理一下。
Laravel 10 / 11 需要 PHP ≥ 8.1
SELinux 是 Laravel 最常见的“玄学问题”来源。
# 查看状态
getenforce
# 临时关闭
setenforce 0
# 永久关闭(重启生效)
vi /etc/selinux/config
SELINUX=disabled
✅ 或在生产环境正确配置 SELinux(不推荐新手)
# 开放 80 / 443
firewall-cmd --permanent --add-service=http
firewall-cmd --permanent --add-service=https
firewall-cmd --reload
CentOS 默认 PHP 是 5.x / 7.2,不能直接用
✅ 使用 Remi 源
yum install epel-release -y
yum install https://rpms.remirepo.net/enterprise/remi-release-7.rpm -y
yum install yum-utils -y
# 启用 PHP 8.2
yum-config-manager --enable remi-php82
yum install php php-cli php-fpm php-mysqlnd php-mbstring php-xml php-curl php-zip php-gd php-bcmath
Laravel 需要:
mbstringxmlctypejsontokenizerbcmathopensslPDO检查:
php -m
vi /etc/php-fpm.d/www.conf
user = nginx
group = nginx
systemctl restart php-fpm
server {
listen 80;
server_name example.com;
root /var/www/laravel/public;
index index.php;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass 127.0.0.1:9000;
fastcgi_index index.php;
include fastcgi_params;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
}
}
chown -R nginx:nginx /var/www/laravel
chmod -R 755 /var/www/laravel
chmod -R 777 storage bootstrap/cache
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
mv composer.phar /usr/local/bin/composer
⚠️ 注意:
composer create-project laravel/laravel demo
或指定版本:
composer create-project laravel/laravel:^10 demo
proc_open / pcntl 被禁用storage/logs 不可写.env 没复制cp .env.example .env
php artisan key:generate
✅ 关闭 debug
APP_DEBUG=false
✅ 优化
php artisan config:cache
php artisan route:cache
php artisan view:cache
✅ 用 supervisor 管理队列
yum install supervisor
| 问题 | 原因 |
|---|---|
| 500 错误 | SELinux / 权限 |
| 白屏 | storage 没写权限 |
| 502 | php-fpm 没启动 |
| 慢 | 没关 debug |
| Composer 报错 | PHP 版本低 |
如果你愿意,我可以:
你现在是 CentOS 几?本地还是服务器?