【问题标题】:Error when fresh install Laravel 5.1全新安装 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 设置。

标签: php laravel laravel-5 centos7 server-configuration


【解决方案1】:

为您提供一些清单项目:

  1. 首先,检查 storage/logs 中的日志文件——这通常有答案。
  2. 检查 apache 日志文件。
  3. 确保storage 中的所有子文件夹也可由网络服务器写入。
  4. 确保您已经安装了 mcrypt 扩展程序——这个总是让我很头疼。
  5. 确保您已运行 composer install 来安装 Laravel 的要求。
  6. 确保使用php artisan key:generate 设置您的应用程序密钥
  7. 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 的全新安装吗?
猜你喜欢
  • 2015-09-05
  • 1970-01-01
  • 2017-01-12
  • 1970-01-01
  • 2014-07-08
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-11-15
相关资源
最近更新 更多