Как включить отбрасывание на зашифрованном корневом каталоге

У меня была такая же проблема, и я добавляю свое решение. В моем случае также, если я просто добавлю:

<?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-коде, потому что отладка (может быть очень сложной. также подавляет сообщения журнала, и вы просто получаете белый экран )!

1
23.03.2020, 13:50
1 ответ

Я понял, что проблема была на уровне шифрования. (Вы можете запустить 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. (Возможно, сначала сделайте резервную копию на случай, если с вашей конфигурацией что-то не так, а вы об этом не знаете.)
1
28.04.2021, 23:19

Теги

Похожие вопросы