温馨提示×

linux laravel为何启动失败

小樊
38
2026-10-04 05:29:19
栏目: 智能运维

Linux 上 Laravel 启动失败的原因非常多,通常需要结合具体报错信息来判断。下面我按最常见原因 → 排查方法 → 解决方式给你一个系统性的清单,你可以逐条对照。


一、最常见原因汇总(90% 问题在这里)

1️⃣ PHP 版本不满足 Laravel 要求

不同 Laravel 版本对 PHP 有要求:

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

检查:

php -v

解决:

  • 升级 PHP
  • 或换对应 Laravel 版本

2️⃣ 依赖未安装(composer install 没执行)

刚 clone 项目最常犯。

报错示例:

Class 'App\Http\Controllers\Controller' not found

解决:

composer install

3️⃣ .env 文件不存在

Laravel 启动必须有 .env

解决:

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

4️⃣ 权限问题(Linux 特有高发)

storage / bootstrap/cache 没写权限

典型报错:

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

修复权限:

chmod -R 755 storage bootstrap/cache
chown -R www-data:www-data storage bootstrap/cache

www-data 视你的 web 服务而定(nginx/apache)


5️⃣ Web 服务器配置错误(Nginx / Apache)

Nginx 常见错误:

  • root 指向不对
  • 没 rewrite 到 index.php

正确 Nginx 示例:

root /var/www/laravel/public;

location / {
    try_files $uri $uri/ /index.php?$query_string;
}

6️⃣ PHP 扩展缺失

Laravel 必需扩展:

mbstring
xml
ctype
json
tokenizer
openssl
pdo

检查:

php -m

安装(Ubuntu 示例):

sudo apt install php-mbstring php-xml php-curl

7️⃣ 数据库连接失败

报错:

SQLSTATE[HY000] [2002] Connection refused

排查:

  • .env 中 DB 配置是否正确
  • MySQL 是否启动
systemctl status mysql

8️⃣ 端口被占用(artisan serve)

php artisan serve

失败可能是:

Address already in use

解决:

php artisan serve --port=8001

二、快速定位错误的方法(非常重要)

✅ 看日志

tail -f storage/logs/laravel.log

✅ 看网页报错(开发环境)

.env

APP_DEBUG=true

三、如果你愿意,我可以直接帮你定位

请把以下信息发我:

  1. 启动方式
    • php artisan serve
    • Nginx
    • Docker
  2. 完整报错信息
  3. Laravel 版本
  4. PHP 版本
  5. Linux 发行版(Ubuntu / CentOS 等)

我可以直接帮你指出是哪一行配置或环境问题。

0 踩