我将项目上传到web服务器,按照安全建议,将CodeIgniter 4文件放在服务器的非公共目录中:/home/user/codeigniter
在公共目录中:/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)发布于 2020-10-15 18:37:19
我已经解决了这个问题。问题的根源是关于我的主机中的"zlib_output_compression“。它应该是“关”的位置。在cpanel上,将位置更改为"off“后,一切正常。
发布于 2020-10-15 17:17:49
这是错误的,您不能像那样同时使用FCPATH和..,您必须提供完整路径,如$pathsPath = '/home/user/codeigniter/app/Config/Paths.php';
还要确保php可以访问路径/home/user/codeigniter,要么需要在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安装和路径
composer create-project codeigniter4/appstarter project-root这将确保CI4升级时的无缝更新,以使您的应用程序更安全限制访问您的可写文件夹,如nginx/apache,您可以限制哪些类型的文件可以从这些文件夹中打开。
https://stackoverflow.com/questions/64354509
复制相似问题