温馨提示×

centos部署laravel要注意啥

小樊
37
2026-09-27 00:29:51
栏目: 智能运维

在 CentOS 上部署 Laravel 时,和 Ubuntu 类似,但有一些 CentOS 特有的坑和注意事项。下面按「环境准备 → 部署 → 权限 → 优化 → 常见坑」给你总结一份实用清单。


一、系统与基础环境

1. 系统版本

  • 推荐 CentOS 7 / 8 / Stream
  • CentOS 6 已停止维护,不建议

2. 关闭 SELinux(或配置正确)

SELinux 是 CentOS 最容易踩坑的地方

# 临时关闭
setenforce 0

# 永久关闭(重启生效)
vi /etc/selinux/config
SELINUX=disabled

如果是生产环境,建议 学习配置 SELinux 策略,而不是简单关闭。


二、Web 服务选择

方案 A(推荐):Nginx + PHP-FPM

yum install nginx php php-fpm php-mysqlnd php-mbstring php-xml php-json

启动:

systemctl start nginx
systemctl start php-fpm

方案 B:Apache + PHP

CentOS 下 Apache 默认是 prefork + mod_php,性能一般。


三、PHP 版本注意

Laravel 对 PHP 版本要求较新:

Laravel PHP
8.x ≥ 7.3
9.x ≥ 8.0
10.x ≥ 8.1
11.x ≥ 8.2

⚠️ CentOS 自带 PHP 很旧(5.4 / 7.2),不要用 yum 默认源

推荐:

  • Remi 源
  • 或编译安装
  • 或 Docker

四、目录权限(重点)

Laravel 必须可写目录:

storage
bootstrap/cache

正确做法(Nginx 用户通常是 nginx):

chown -R nginx:nginx /var/www/laravel
chmod -R 755 /var/www/laravel
chmod -R 777 storage bootstrap/cache

❌ 不要 chmod 777 整个项目


五、Nginx 配置示例

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;
    }
}

六、Composer 安装

curl -sS https://getcomposer.org/installer | php
mv composer.phar /usr/local/bin/composer

部署时:

composer install --no-dev --optimize-autoloader

七、.env 与缓存

cp .env.example .env
php artisan key:generate

生产环境优化:

php artisan config:cache
php artisan route:cache
php artisan view:cache

修改 .env 后一定要:

php artisan config:clear

八、常见坑(CentOS 专属)

1. 防火墙

firewall-cmd --permanent --add-service=http
firewall-cmd --reload

2. PHP 扩展缺失

常见报错:

  • Class 'PDO' not found → 缺 php-pdo
  • Mbstring → 缺 php-mbstring

3. 时区问题

date.timezone = Asia/Shanghai

4. storage 没写权限

报错:

The stream or file could not be opened

九、生产建议

  • ✅ 使用 队列(queue)
  • ✅ 使用 supervisor 管理队列
  • ✅ 开启 opcache
  • ✅ 使用 HTTPS(Let’s Encrypt)

十、最简部署流程(总结)

git clone
composer install --no-dev
cp .env.example .env
php artisan key:generate
chown -R nginx:nginx .
php artisan migrate --force

如果你愿意,我可以:

  • 给你一套 CentOS 7 + Nginx + PHP 8.1 完整部署脚本
  • 或针对 Docker / 宝塔 / 云服务器 给方案

你现在是 个人项目还是生产环境?

0 踩