温馨提示×

ubuntu laravel报错怎么解决

小樊
40
2026-10-25 03:45:26
栏目: 智能运维

在 Ubuntu 上运行 Laravel 常见的报错有很多,下面我按最常见问题 → 原因 → 解决办法给你一个排查清单。你可以对照看看是哪一种。


一、常见报错及解决方法

1️⃣ Permission denied(权限问题,最常见)

报错示例:

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

原因: storage 或 bootstrap/cache 目录没有写权限

解决:

cd /var/www/你的项目
sudo chown -R www-data:www-data storage bootstrap/cache
sudo chmod -R 775 storage bootstrap/cache

如果你用 CLI 运行:

sudo chmod -R 777 storage

2️⃣ PHP Version 不满足

报错:

Your requirements could not be resolved to an installable set of packages.

原因: Laravel 版本要求 PHP 版本过高

解决: 查看 PHP 版本:

php -v

安装高版本 PHP(如 8.2):

sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php8.2 php8.2-cli php8.2-fpm php8.2-mysql php8.2-mbstring php8.2-xml php8.2-curl

3️⃣ Composer install 报错

常见错误:

  • ext-xxx missing
  • memory limit

解决:

composer install --ignore-platform-reqs

或提高内存:

php -d memory_limit=-1 composer install

4️⃣ .env 不存在

报错:

No application encryption key has been specified.

解决:

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

5️⃣ 数据库连接失败

报错:

SQLSTATE[HY000] [2002] Connection refused

原因:

  • MySQL 没启动
  • .env 配置错误

解决:

sudo systemctl start mysql
sudo systemctl enable mysql

检查 .env:

DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=root
DB_PASSWORD=

6️⃣ Nginx / Apache 404

原因: 没配置 rewrite

Nginx 示例:

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

7️⃣ storage/logs 无法写入(CLI 和 Web 用户不同)

sudo chown -R $USER:www-data storage
sudo chmod -R 775 storage

二、快速排查流程(推荐)

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

然后:

tail -f storage/logs/laravel.log

三、如果你愿意,我可以更精准帮你

你可以直接把完整报错信息发给我,例如:

  • 终端报错截图 / 文字
  • Laravel 版本
  • Ubuntu 版本
  • PHP 版本
  • Web 服务器(Nginx / Apache)

我可以直接告诉你具体是哪一行出问题 + 怎么改。

0 踩