在我的 Web 服务器上,出于安全考虑,我将 chroot 更改为只能访问我网站主目录的根目录,而不是文件系统的其余部分。但是,我注意到自从更改后,我似乎无法让 PHP 识别 OpenSSL。尝试从我的服务器发送邮件时,我收到以下错误:
Warning: stream_socket_enable_crypto(): SSL: Success in /public/lib/mailer/class.smtp.php on line 274 2014-05-04 23:32:29 CLIENT -> SERVER: QUIT 2014-05-04 23:32:29 SERVER -> CLIENT: 2014-05-04 23:32:29 SMTP ERROR: QUIT command failed: SMTP connect() failed
为了使脚本运行,我需要在 chroot 中包含哪些 OpenSSL 文件?有没有其他方法可以让 PHP 访问 OpenSSL 而无需更改我的 chroot?如能得到任何帮助,我将不胜感激。谢谢。
答案1
我将 /etc/ssl、/etc/pki/ca-trust、/etc/pki/tls 绑定到 [CHROOT] 文件夹并且它可以正常工作(适用于 CentOS 7、Rocky 8)。例如:mkdir -p [CHROOT]/etc/pki/tls mount --bind -o ro /etc/pki/tls [CHROOT]/etc/pki/tls