温馨提示×

centos为啥跑不了laravel

小樊
42
2026-09-24 02:54:10
栏目: 智能运维

在 CentOS 上跑不了 Laravel,通常不是“CentOS 不支持 Laravel”,而是环境没满足 Laravel 的运行要求。下面按最常见原因给你梳理一下。


一、最常见原因(90% 都是这些)

1️⃣ PHP 版本太低

Laravel 对 PHP 版本要求很严格:

Laravel 版本 最低 PHP 版本
Laravel 10 PHP 8.1
Laravel 11 PHP 8.2
Laravel 12 PHP 8.2+

❌ CentOS 7 默认 PHP 是 5.4 / 7.2(repo 里很老)
✅ 需要手动装 Remi 源

yum install -y epel-release
yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
yum-config-manager --enable remi-php82
yum install -y php php-cli php-fpm php-mbstring php-xml php-json php-mysqlnd

2️⃣ 没装必要的 PHP 扩展

Laravel 必须有的扩展:

php-mbstring
php-xml
php-ctype
php-json
php-tokenizer
php-fileinfo
php-openssl
php-pdo

检查:

php -m

3️⃣ Composer 没装或版本不对

Laravel 必须靠 Composer

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
mv composer.phar /usr/local/bin/composer

4️⃣ 权限问题(最常见错误)

Laravel 需要写:

storage/
bootstrap/cache/

错误示例:

The stream or file "/var/www/laravel/storage/logs/laravel.log" could not be opened

解决:

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

5️⃣ Web 服务器配置错误

❌ 直接访问 public 上级目录

✅ 必须指向 public/

Nginx 示例:

root /var/www/laravel/public;
location / {
    try_files $uri $uri/ /index.php?$query_string;
}

Apache:

DocumentRoot /var/www/laravel/public
AllowOverride All

6️⃣ SELinux 拦住了(CentOS 特有)

CentOS 默认 SELinux = enforcing

setenforce 0
# 或
chcon -R -t httpd_sys_rw_content_t /var/www/laravel

二、快速自检清单 ✅

你可以一条条对照:

php -v
composer -V
php -m | grep -E "mbstring|openssl|pdo|tokenizer"
ls -l storage

三、如果你愿意

你可以直接把 报错信息 或 运行方式 发出来,比如:

  • php artisan serve 报错
  • Nginx 500
  • Composer 安装失败
  • CentOS 几?PHP 几?

我可以按你这台机器的具体情况一步步帮你排。

0 踩