Пустая страница на веб-сервере с Codeigniter 4

Я загрузил свой проект на веб-сервер. Следуя рекомендациям по безопасности, я поместил файлы 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)

person Onur ÇİÇEK    schedule 14.10.2020    source источник
comment
Вы предоставили доступной для записи папке правильные разрешения? Это было бы мое первое предположение. Если эти папки имеют правильные разрешения, вы сможете проверить журналы в папке с возможностью записи/журналы для получения дополнительной информации о конкретной ошибке. Если эта папка пуста, вы можете проверить журналы ошибок вашего сервера, если это apache, проверьте журналы там, если его nginx, попробуйте их. Наконец, если ни на одном из них нет ошибок, проверьте, включено ли на вашем сервере ведение журнала ошибок.   -  person marcogmonteiro    schedule 14.10.2020
comment
Были ли у вас какие-либо ошибки в error.log?   -  person LeXxyIT    schedule 14.10.2020
comment
Также я вижу, что вы отправляете файл .env на свой веб-сервер, что не является хорошей практикой, приложение должно иметь производственные настройки в своем коде и соответствующих файлах конфигурации. Файл .env используется разработчиками для переопределения этих настроек без каких-либо изменений в коде. Не следует использовать в производстве.   -  person marcogmonteiro    schedule 14.10.2020
comment
Да, вот моя первая строка 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)   -  person Onur ÇİÇEK    schedule 14.10.2020
comment
Похоже, у вас что-то подозрительное происходит с вашими сессиями. Опубликуйте код, где вы загружаете библиотеку сеансов и как вы ее используете.   -  person marcogmonteiro    schedule 14.10.2020


Ответы (2)


Я решил проблему. Источник проблемы связан с zlib_output_compression на моем хосте. Он должен быть выключен. На cpanel после смены положения как на выключенном все идет нормально.

person Onur ÇİÇEK    schedule 15.10.2020

Это неправильно $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 create-project codeigniter4/appstarter project-root

Это обеспечит бесшовные обновления при обновлении CI4, чтобы сделать ваше приложение более безопасным, ограничьте доступ к вашей доступной для записи папке, например, с nginx/apache, вы можете ограничить, какие типы файлов можно открывать из этих папок.

person user969068    schedule 15.10.2020