在 CentOS 上跑不了 Laravel,通常不是“CentOS 不支持 Laravel”,而是环境没满足 Laravel 的运行要求。下面按最常见原因给你梳理一下。
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
Laravel 必须有的扩展:
php-mbstring
php-xml
php-ctype
php-json
php-tokenizer
php-fileinfo
php-openssl
php-pdo
检查:
php -m
Laravel 必须靠 Composer
php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
php composer-setup.php
mv composer.phar /usr/local/bin/composer
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
public/Nginx 示例:
root /var/www/laravel/public;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
Apache:
DocumentRoot /var/www/laravel/public
AllowOverride All
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 报错我可以按你这台机器的具体情况一步步帮你排。