【问题标题】:Blank page on the web server with Codeigniter 4使用 Codeigniter 4 的 Web 服务器上的空白页
【发布时间】:2021-01-28 22:20:04
【问题描述】:

我将我的项目上传到 Web 服务器,按照安全建议,我将 CodeIgniter 4 文件放在服务器的非公共目录中: /home/user/codeigniter

and 在公共目录中: /home/user/public_html

这是我的路径: $pathsPath = FCPATH. '../codeigniter/app/Config/Paths.php';

我把所有文件都放好了;

|__ public_html (or your domain root folder)
| |assets
| |index.php
| |.htaccess
|
|__ codeigniter
|__ app
|__ system
|__ writable
|__ .env

但我总是收到一个空白页。 你能帮我解决这个问题吗

而error.log是:

RITICAL - 2020-10-14 06:12:09 --> ini_set(): Headers already sent. You cannot change the session module's ini settings at this time
#0 [internal function]: CodeIgniter\Debug\Exceptions->errorHandler(2, 'ini_set(): Head...', '/home/catideko/...', 101, Array)

【问题讨论】:

  • 你是否给你的可写文件夹正确的权限?那将是我的第一个猜测。如果这些文件夹具有正确的权限,那么您应该能够检查 writable/logs 文件夹中的日志以获取有关特定错误的更多信息。如果那个文件夹是空的,你可以检查你的服务器错误日志,如果它的 apache 检查那里的日志,如果它的 nginx 试试这些。最后,如果其中任何一个都没有错误,请检查您的服务器是否打开了错误日志记录。
  • error.log 中是否有任何错误?
  • 我还看到您正在将 .env 文件发送到您的网络服务器,这不是一个好习惯,应用程序应该在其代码和相应的配置文件中包含生产设置。 .env 文件用于开发人员覆盖这些设置,而无需更改代码中的任何内容。不应在生产中使用。
  • 是的,这是我的第一行 error.log RITICAL - 2020-10-14 06:12:09 --> ini_set(): Headers already sent. You cannot change the session module's ini settings at this time #0 [internal function]: CodeIgniter\Debug\Exceptions->errorHandler(2, 'ini_set(): Head...', '/home/catideko/...', 101, Array)
  • 您的会话似乎有些可疑。将代码发布到您加载会话库的位置以及您如何使用它。

标签: php codeigniter path webserver codeigniter-4


【解决方案1】:

这是错误的$pathsPath = FCPATH. '../codeigniter/app/Config/Paths.php'; FCPATH..不能这样一起使用,你必须提供完整的路径,比如$pathsPath = '/home/user/codeigniter/app/Config/Paths.php';

还要确保路径 /home/user/codeigniter 可以被 php 访问,要么你需要将该路径包含在你的 php.ini 中,要么在你的 index.php 中设置

set_include_path(get_include_path() . PATH_SEPARATOR . '/home/user/codeigniter');

然后确认是否包含您的路径

echo get_include_path();

然后通过关注official guidelines 确认您是否已正确更新所有路径

完成所有设置后,请确保您的可写文件夹已设置写入权限。并且您的 App.php 包括

public $sessionSavePath          = WRITEPATH . 'session';

虽然上面的设置可以工作,但我建议你坚持使用默认的作曲家安装和路径

composer create-project codeigniter4/appstarter project-root

这将确保 CI4 升级时的无缝更新,让您的应用更安全地限制对可写文件夹的访问,就像使用 nginx/apache 一样,您可以限制可以从这些文件夹中打开哪些类型的文件。

【讨论】:

    【解决方案2】:

    我已经解决了这个问题。问题的根源在于我的主机中的“zlib_output_compression”。它应该是“关闭”的位置。将位置更改为“关闭”后在 cpanel 上一切顺利。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2012-05-05
      • 2021-04-05
      • 2014-09-19
      • 1970-01-01
      • 2018-02-23
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多