簡體   English   中英

帶有 Codeigniter 4 的 Web 服務器上的空白頁面

[英]Blank page on the web server with Codeigniter 4

我將我的項目上傳到 Web 服務器,按照安全建議,我將 CodeIgniter 4 文件放在服務器的非公共目錄中: /home/user/codeigniter

並在公共目錄中: /home/user/public_html

這是我的路徑: $pathsPath = FCPATH. '../codeigniter/app/Config/Paths.php'; $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)

我已經解決了這個問題。 問題的根源在於我的主機中的“zlib_output_compression”。 它應該是“關閉”的位置。 在將位置更改為“關閉”后,在 cpanel 上一切順利。

這是錯誤的$pathsPath = FCPATH. '../codeigniter/app/Config/Paths.php'; $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();

然后按照 官方指南確認您是否已正確更新所有路徑

完成所有設置后,請確保您的可寫文件夾設置了寫權限。 你的 App.php 包括

public $sessionSavePath          = WRITEPATH . 'session';

雖然上面的設置可以工作,但我建議你堅持使用默認的 composer 安裝和路徑

composer create-project codeigniter4/appstarter project-root

這將確保在 CI4 升級時無縫更新,使您的應用程序更安全地限制在可寫文件夾中的訪問,就像使用 nginx/apache 一樣,您可以限制可以從這些文件夾中打開哪些類型的文件。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM