温馨提示×

centos跑laravel要注意什么

小樊
48
2026-09-29 23:57:11
栏目: 智能运维

在 CentOS 上运行 Laravel 时,常见的坑和注意事项主要集中在 环境版本、权限、服务配置、性能与安全 这几块。下面按实战经验给你梳理一份“避坑清单”。


一、系统 & 软件版本选择

1. CentOS 版本

  • ✅ 推荐:CentOS 7 / 8 Stream / Rocky / AlmaLinux
  • ⚠️ CentOS 6 已 EOL,不建议再跑 Laravel

2. PHP 版本(非常重要)

Laravel 对 PHP 版本有硬性要求:

Laravel 版本 最低 PHP
Laravel 9 PHP 8.0
Laravel 10 PHP 8.1
Laravel 11 PHP 8.2

✅ 建议:

  • 用 Remi / SCL 源安装 PHP
  • 不要直接用 yum 默认 PHP(通常太旧)
yum install -y epel-release
yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum install -y php81 php81-php-fpm php81-php-mysqlnd php81-php-mbstring php81-php-xml php81-php-zip

二、必须安装的 PHP 扩展

Laravel 常用依赖:

php-mbstring
php-xml
php-curl
php-zip
php-gd
php-mysqlnd / php-pdo
php-bcmath
php-intl
php-openssl

检查:

php -m

三、Web 服务器选择

✅ Nginx(推荐)

Laravel 官方推荐 Nginx + PHP-FPM

关键点:

  • root 指向 public/
  • 重写规则必须配
location / {
    try_files $uri $uri/ /index.php?$query_string;
}

四、权限问题(最容易踩坑)

1. 目录权限

chown -R nginx:nginx /var/www/laravel
chmod -R 755 /var/www/laravel

2. storage & bootstrap/cache

chmod -R 777 storage bootstrap/cache

⚠️ 生产环境不建议 777,可用:

chown -R nginx:nginx storage

五、SELinux(CentOS 特色坑)

Laravel 常因 SELinux 报 500

临时关闭(不推荐长期)

setenforce 0

正确做法

setsebool -P httpd_read_user_content 1
setsebool -P httpd_can_network_connect 1

如用 write:

setsebool -P httpd_unified 1

六、Composer 安装注意

1. 用 PHP CLI 对应版本

php81 /usr/local/bin/composer install

2. 内存不足

php -d memory_limit=-1 composer install

七、队列 / 定时任务(容易被忽略)

1. 队列

php artisan queue:work

✅ 生产建议用:

  • Supervisor
[program:laravel-worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/laravel/artisan queue:work
autostart=true
autorestart=true
user=nginx

2. 定时任务

crontab -e
* * * * * php /var/www/laravel/artisan schedule:run >> /dev/null 2>&1

八、性能 & 安全建议

✅ 开启 OPcache
✅ 关闭 debug(APP_DEBUG=false)
✅ 使用 .env 不提交到 git
✅ 日志定期清理
✅ 防火墙只开 80 / 443


九、常见错误速查

现象 原因
500 白屏 SELinux / 权限
composer 报错 PHP 版本低
路由 404 Nginx rewrite
队列不执行 没起 worker
上传失败 upload_max_filesize

十、推荐标准生产结构

/var/www/laravel
 ├── app
 ├── bootstrap
 ├── public
 ├── storage
 ├── .env

如果你愿意,我可以:

  • ✅ 给你一份 CentOS + Nginx + PHP-FPM 完整配置
  • ✅ 帮你选 Laravel 版本
  • ✅ 按你的 CentOS 版本写 一键部署脚本

你现在是 本机跑还是服务器?CentOS 几?Laravel 几?

0 踩