У меня была такая же проблема, и я добавляю свое решение. В моем случае также, если я просто добавлю:
<?php phpinfo();
это сработало бы, но мое настоящее приложение не сработало. Проблема заключалась в том, что внутри PHP-кода перед командой стоял символ @
, что приводило к фатальной ошибке :
<?php $tz = @date_default_timezone_get();
Так как я находился внутри chroot-окружения(chroot = /some/folder
внутри конфигурации пула для FPM )произошла ошибка
Fatal error: date_default_timezone_get(): Timezone database is corrupt - this should never happen!
Конкретное решение состояло в том, чтобы скопировать /usr/share/zoneinfo
файлы в папку с chroot -, но это просто показывает, что никогда не стоит использовать @
в PHP-коде, потому что отладка (может быть очень сложной. также подавляет сообщения журнала, и вы просто получаете белый экран )!
Я понял, что проблема была на уровне шифрования. (Вы можете запустить dmsetup table
от имени пользователя root, чтобы увидеть, отображается ли на вашем устройстве allow_discards
.)
Это решило мою проблему:
/etc/initramfs-tools/conf.d/cryptroot
, добавьте опцию discard
для конкретного устройства. В моем случае строка выглядела так:CRYPTROOT=target=encrypted-root,source=/dev/disk/by-uuid/5ddb7e3a-dcbe-442d-85e8-359e944d0717,discard
. update-initramfs -k all -c
. (Возможно, сначала сделайте резервную копию на случай, если с вашей конфигурацией что-то не так, а вы об этом не знаете.)