我成功地在服务器上设置了 chroot。我想将 magento 项目放在 chroot 上,以便用户可以根据需要执行各种 magento2 命令。我将 magento 项目挂载到 chroot 目录。但是当我运行任何 magento2 命令(例如“php bin/magento cache:clean”)时,我收到以下错误:
php:加载共享库时出错:libresolv.so.2:无法打开共享对象文件:没有此文件或目录
复制所有必需的库后,我收到以下错误:
注意:date_default_timezone_set():/home/user/myapp/app/bootstrap.php 第 63 行中的时区 ID“UTC”无效
致命错误:未捕获错误:在 /home/user/myapp/vendor/magento/framework/Config/Dom.php:384 中未找到类“DOMDocument”
堆栈跟踪:
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('
请帮助我解决这个错误。提前谢谢
答案1
经过几天的努力,我终于找到了解决方案...我必须结合使用 JailKit 和一些其他命令。这使一切都按我想要的方式运行。
答案2
要在 chroot 中运行任何命令,您必须在 chroot 中使用该程序(因为它无法使用安装在文件系统 / 中的程序)。您可能需要在新根目录下正确安装 /dev、/bin、/etc、/usr、/lib(可能还有其他)的部分。总的来说,指向“chroot() 环境之外”的符号链接不起作用。如果您只需要 ls 命令,您仍然需要复制 ls 以外的内容。要运行 ls,您需要复制 ls 命令以及它所依赖的所有文件。