全新安装 Laravel 5.1 时出错

Posted

技术标签:

【中文标题】全新安装 Laravel 5.1 时出错【英文标题】:Error when fresh install Laravel 5.1 【发布时间】:2015-10-17 03:33:01 【问题描述】:

我安装了一个新项目 Laravel 5。它可以在本地运行,但不能在服务器(CentOS 7、LAMP)上运行。我按照 Laravel 的要求安装了服务器:

php >= 5.5.9 OpenSSL PHP 扩展 PDO PHP 扩展 Mbstring PHP 扩展 Tokenizer PHP 扩展 Mod_rewrite 已启用

我在 storage 文件夹中执行了CHMOD 777。当我在浏览器上运行项目时,没有任何显示。查看控制台选项卡,它显示“加载资源失败:服务器响应状态为 500(内部服务器错误)”。

error_log 文件的内容

[2015 年 7 月 27 日星期一 12:45:20.618306] [core:notice] [pid 1448] SELinux 启用政策; httpd 作为上下文运行 system_u:system_r:httpd_t:s0 [2015 年 7 月 27 日星期一 12:45:20.681536] [suexec:notice] [pid 1448] AH01232: 启用 suEXEC 机制(包装器:/usr/sbin/suexec) AH00558:httpd: 无法可靠地确定服务器的完全限定域名, 使用 localhost.localdomain。全局设置“ServerName”指令 压制这个混乱$ [Mon Jul 27 12:45:20.751429 2015] [auth_digest:notice] [pid 1448] AH01757:为摘要生成秘密 身份验证... [2015 年 7 月 27 日星期一 12:45:20.753167] [lbmethod_heartbeat:notice] [pid 1448] AH02282: 没有来自的 slotmem mod_heartmonitor [2015 年 7 月 27 日星期一 12:45:24.458038] [mpm_prefork:notice] [pid 1448] AH00163: Apache/2.4.6 (CentOS) PHP/5.6.11 已配置 -- 恢复正常操作 [7 月 27 日星期一 12:45:24.458129 2015] [core:notice] [pid 1448] AH00094:命令行: '/usr/sbin/httpd -D FOREGROUND' [2015 年 7 月 27 日星期一 12:53:02.593593] [:error] [pid 2558] [client 192.168.56.1:56015] PHP 致命错误: 带有消息“流”的未捕获异常“UnexpectedValueException” 或文件 $ [Mon Jul 27 12:53:02.663948 2015] [:error] [pid 2558] [client 192.168.56.1:56015] PHP 致命错误:未捕获的异常 'UnexpectedValueException' 带有消息'流或文件 $

请帮助我。谢谢!

更新: 我确实有一个 APP_KEY 并且 APP_DEBUG 也设置为 true。但我没有得到意见。我刚刚尝试在 routes.php 中回显一个字符串。

Route::get('/', function () echo 'test'; return view('welcome'); );

我可以看到“测试”这个词,但看不到视图..

p/s:storagebootstrap/cache 中的所有文件夹都可写 (CHMOD 777)

完成:我在我的服务器上禁用 SELinux,这个问题已经解决:D 谢谢大家

【问题讨论】:

您使用的是什么网络服务器? nginx?阿帕奇? 顺便说一句,777 通常不受欢迎——一旦你开始工作,考虑收紧它。 @Ben:我正在使用 apache 您的 PHP 设置似乎没问题。您是否在 Laravel 项目中启用了调试功能?就我而言,我在项目根目录中打开了 .env 文件并将APP_DEBUG 设置为true。您可能还想检查 .htaccess 甚至 php ini 文件中的 error_reporting 设置。 【参考方案1】:

为您提供一些清单项目:

    首先,检查 storage/logs 中的日志文件——这通常有答案。 检查 apache 日志文件。 确保storage 中的所有子文件夹也可由网络服务器写入。 确保您已经安装了 mcrypt 扩展程序——这个总是让我很头疼。 确保您已运行 composer install 来安装 Laravel 的要求。 确保使用php artisan key:generate 设置您的应用程序密钥 将die('test'); 添加到 public/index.php 的第 1 行以验证 apache 是否配置正确。

【讨论】:

谢谢 Ben,我确信 storege 中的任何子文件夹也可由网络服务器写入。但是,存储/日志中没有文件:(。我肯定会尝试所有推荐的解决方案。但问题还没有解决:( @Ben 我没有安装 mcrypt 扩展没有问题。 5.1。有趣的原因...特别是如果它在官方文档中被定义为“必须” apache 的日志文件中有什么内容吗?【参考方案2】:

您是否创建了 .env 文件并设置了 APP_KEY?此外,您可以通过将APP_DEBUG=true 添加到您的 .env 文件来启用调试。

【讨论】:

看看这个讨论,告诉我它是否解决了你的问题。 laracasts.com/discuss/channels/general-discussion/… 谢谢,但我的问题仍然存在:(我更新了相关信息 如果你什么都不做,得到UnexpectedValueException真的很奇怪。它是 Laravel 的全新安装吗?

以上是关于全新安装 Laravel 5.1 时出错的主要内容,如果未能解决你的问题,请参考以下文章

更新 Composer 时出错

Larave使用composer安装无反应,提示“Changed current directory to C:/Users/Administrator/AppData/Roaming/Compose

Larave使用composer安装无反应,提示“Changed current directory to C:/Users/Administrator/AppData/Roaming/Compose

doctrine / dbal-尝试将字符串字段更改为日期时出错

博客上的 Laravel 5.1 多对多标签不起作用

新 Laravel 5.4 上的“npm run dev”命令出错