带有chdir的PHP-FPM chroot

我正在尝试在PHP-FPM chroot中设置一个站点。 我的path如下:

chroot = /var/www/ chdir = www/ 

chroot工作得很好,没有chdir。 但是,当我添加chdir我得到这个错误在PHP的启动:

ERROR: [pool www] the chdir path '/usr/www/' within the chroot path '/var/www/' ('/var/www///usr/www/') does not exist or is not a directory

有人知道为什么它会追加/usr/ chdirpath? 有没有办法把它从这个path中删除?

另外,如果我将chdirpath更改为/www/ ,则必须浏览到http://localhost/www/filename.php以查看我的文件。 chdir的重点并不是没有必要吗?

你真的准备好一个适合PHP的chroot吗?

简单地设置一个任意的目录是不够的 – 你实际上需要build立一个chroot并确保它包含所有必要的库,设备和二进制文件。

否则,基本的东西,如DNSparsing将无法正常工作,你会得到随机错误,挂起或应用段错误。 这听起来像是你错误地将open_basedir与chroot的简单性open_basedir了。

首先,这个脚本一旦定制,就会给你一个chroot的基础。

http://www.fuschlberger.net/programs/ssh-scp-sftp-chroot-jail/make_chroot_jail.sh

但实际上,如果你没有太多的经验,

  1. 如果设置不正确,可能不会比平常更安全
  2. 它可能比正常情况下更不安全,如果设置不当,可能会导致根本升级
  3. 你最终可能会遇到随机问题,这将随着时间的推移而困扰你的应用程序,这些问题都是由一个糟糕的chroot造成的

我猜想安全是你的目标,但是你很可能最终会得到相反的结果。

从phpfreaks IRC昨晚得到帮助。 这是Apache方面的一个问题,我需要将“/ www”发送到PHP-FPM。