【问题标题】:localhost is currently unable to handle this request HTTP ERROR 500 in Codeigniter3localhost 当前无法在 Codeigniter3 中处理此请求 HTTP ERROR 500
【发布时间】:2018-06-21 06:36:39
【问题描述】:

我将 MAMP 用于 MAC,并且我在本地有一个项目。它运作良好。在 localhost 显示 500 错误后,我决定更新此项目并从我的 Web 服务器下载。

但是,当我进入另一个 localhost 项目时,它可以工作。我使用 Codeigniter3 框架。问题可能出在哪里?

【问题讨论】:

  • 检查您的错误日志
  • 在哪里可以查看?
  • 有时我会使用一种技术,即使用 php 的 die 来查看是否可以达到代码执行的目的。例如,如果我使用die('X'),并且我的屏幕上出现“X”,我知道我没有解决问题,所以我前进了几行代码并再次测试。你最终会到达一个你知道问题出在哪里的地步。

标签: php codeigniter localhost mamp


【解决方案1】:

index.php 文件中的 CodeIgniter 具有针对不同环境的选项 productiondevelopment 并支持在 config 文件夹中具有相同名称的子目录,并根据环境进行不同的配置。我的猜测是index.php 文件的第一行说这个define('ENVIRONMENT', 'production'); 并指向/application/config/production/database.php 中的生产数据库(当你从生产服务器下载它时) - 结果你无法连接也不是您会收到任何错误,因为默认情况下,生产环境不会出现任何错误,如果出现问题,只会显示 500 页。

如果您没有不同的子目录用于生产和开发,那么您在主config 目录中只有一个config.php 和一个database.php 文件。更改database.php 以反映您的本地开发数据库名称、密码等。并将环境定义更改为开发define('ENVIRONMENT', 'development');

至少你应该通过转向开发开始得到错误。

否则它是一个更复杂的问题定位。

【讨论】:

  • 非常感谢!!有效!但是,您能解释一下define('ENVIRONMENT', 'production');define('ENVIRONMENT', 'development'); 之间的区别吗?
  • 您可以在此下方的index.php 文件中看到主要区别。本质上,production 会消除错误(以免让用户了解您的内部框架使您容易受到攻击),而development 则不会 - 让您查看所有错误。
  • 我做的是有一个本地index.php 用于开发和远程index.php 用于生产环境。这样,您推送除index.php 之外的所有文件,并使用您的 /production 和 /development 子文件夹配置,您可以确保无论您在哪里使用您的站点,它都可以正常工作,您不必摆弄一个配置来更改变量第四。 (如果这有任何意义)
猜你喜欢
  • 2020-09-16
  • 1970-01-01
  • 2019-06-28
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2017-03-06
  • 1970-01-01
相关资源
最近更新 更多