Команды Magento2 не работают в среде chroot
Я успешно установил chroot на моем сервере. Я хочу разместить проекты magento в chroot, чтобы пользователь мог выполнять все виды команд magento2, если это необходимо. Я смонтировал magento проекты в каталог chroot. Но когда я запускаю любую из команд magento2, говоря "php bin/magento cache:clean", я получаю следующую ошибку:
php: ошибка при загрузке общих библиотек: libresolv.so.2: невозможно открыть общий объектный файл: такого файла или каталога нет
После копирования всех необходимых библиотек я получаю следующую ошибку:
Примечание: date_default_timezone_set(): идентификатор часового пояса "UTC" недопустим в /home/user/myapp/app/bootstrap.php в строке 63
Неустранимая ошибка: необработанная ошибка: класс "DOMDocument" не найден в /home/user/myapp/vendor/magento/framework/Config/Dom.php:384
Трассировки стека:
0 /home/user/myapp/vendor/magento/framework/Config/Dom.php(115): Magento \ Framework \ Config \ Dom -> _ initDom ('1 /home/user/myapp/vendor/magento/framework/ObjectManager/Config/Reader/Dom.php(70): Magento \ Framework \ Config \ Dom -> __ construct ('
Пожалуйста, помогите мне пройти через эту ошибку.. Заранее спасибо
2 ответа
После нескольких дней борьбы я наконец нашел решение... Мне пришлось объединить JailKit и некоторые другие команды. Это заставило меня работать так, как я хотел.
Чтобы выполнить любую команду внутри chroot, эта программа должна быть доступна в chroot (поскольку она не может использовать программу, установленную в файловой системе /. Вам могут потребоваться части /dev, /bin, /etc, /usr, /lib (и, вероятно, другие также) установлены соответствующим образом в новом корневом каталоге. Символьные ссылки обратно "вне среды chroot()", в общем, не будут работать. Если вы беспристрастно захотите команду ls, вам будет просто необходимо скопировать больше, чем ls. Для запуска ls вам необходимо скопировать команду ls, а также все файлы, с которыми она зависит.