我们有一个已经投入生产数月的项目(其所有配置工作正常,没有问题-包括https和用户访问权限)。
我们在Symfony 4下重写了部分代码(在此之前未使用任何框架)。一切都可以在本地完美运行,但是在生产中,我们开始在日志中收到以下错误:
vendor/composer/ca-bundle/src/CaBundle.php is_dir(): open_basedir restriction in effect. File(/usr/local/etc/openssl) is not within the allowed path(s)
任何想法可能导致该问题的原因(嗯……错误很明显,一种解决方法是将其包括在允许的路径中,但是在我理解问题的根本原因之前,我不想这样做) ?
重要说明:
我有点无所适从,可能是导致问题的原因,尤其是因为它在本地甚至生产中都没有发生,因此该项目似乎还可以。
答案 0 :(得分:1)
CA捆绑正试图从usr/local/etc/openssl
中读取,但失败了,因为它不在PHP进程允许的目录之一中。
它发生在一台机器上,而不发生在另一台机器上,因为您的本地openbase_dir
设置与生产环境不匹配(并且可能很松懈,因为这通常在开发中发生)。
您有两个选择:
更改生产环境的openbase_dir设置,以便至少在该特定虚拟主机上更宽松。
检查安装的软件包取决于Ca-Bundle,然后删除该软件包,使其不再包含。
进一步阅读: