2011-05-01 62 views
0

我使用Lighttpd和php-fpm,我想chroot每个网站的虚拟主机。PHP-FPM和CHROOT

该网站的网页是:/home/vhosts/example1.com/web

每个虚拟主机具有相同的层:

/home/vhosts/example1.com/web 
/home/vhosts/example2.com/web 
/home/vhosts/example3.com/web 

我用这种路径作为文件域(example1.com),我不知道我应该用什么心理路径的chroot虚拟主机的-root,我想:

document-root = /web 

chroot = /home/vhosts/example1.com/ (on php-fpm.conf file) 

,但我总能得到404 NOT找到错误。我该如何chroot虚拟主机?

(每个网站都有.PHP和.html页面。)

回答

1

在lighttpd.conf:

server.document-root = "/home/vhosts/example1.com/web" 
fastcgi.server = (
    ".php" => (
    "localhost" => (
    "docroot" => "/web", 
    "socket" => "/home/vhosts/example1.com/php.socket", 
    ) 
) 
) 

在fpm.conf:

listen = /home/vhosts/example1.com/php.socket 
chroot = /home/vhosts/example1.com/ 
+0

@ konforce ??我在监听选项上使用IP ADDRESS,例如:127.0.0.1:9001(fpm.conf),并且我没有设置套接字,而是在fascgi.server – Dail 2011-05-01 22:00:59

+0

@Dail上设置IP地址,然后忽略该位。 – Matthew 2011-05-01 22:20:48

+0

@ konforce,你的意思是我可以使用IP:PORT代替你写的php.socket? – Dail 2011-05-01 22:21:39

0

使用$prefix & $pool变量在fpm.conf中简化多个chroots配置

[example1.com] 
prefix = /home/vhosts/$pool/ 
listen = $prefix/php.sock 
chroot = $prefix 

[example2.com] 
prefix = /home/vhosts/$pool/ 
listen = $prefix/php.sock 
chroot = $prefix 

您可能需要使用TCP/IP to listen insted的插座的一个快速增长的网站,因为它是更稳定的比使用Unix套接字

不要忘了限制,以限制IP地址的TCP连接:

listen.allowed_clients = 127.0.0.1