在php中利用chroot的心得

在php中有个chroot功能,结合系统用户管理,可以实现php进程独立性。 实现步骤如下

将系统中的一干执行文件和工作目录一并复制到/var/www下,而且实验的chroot目录为 /var/www/chroot.bb

1:新建用户,用户组

在本例中,已经有用户组 www-data,www-user 两个用户组。要添加的用户名是www-data-coo已经www-user-coo,指定的工作目录是 /home/www 和 /home/www-user(注意是 chroot下的home,非系统的)

useradd -r -g www-data -d /home/www www-data-coo (php进程用户)

useradd -g www-user -G www-data -d /home/www-user www-user-coo (sftp用户)

2:配置sshd_config文件

在/etc/sshd_config 文件末尾添加匹配规则。针对sftp而言。

Match user www-user-coo  
        ChrootDirectory /var/www/chroot.bb
        X11Forwarding no
        AllowTcpForwarding no

重启ssh /etc/init.d/ssh restart

*3:chroot目录的操作 *

将/etc/passwd 拷贝到chroot的 /etc 目录下

4:配置fpm池

引入fpm-php池管理,可以比较方便的管理相关配置。可以做到独立进程不互相干扰。

user  =  www-data-coo  
chroot = /var/www/chroot.bb  

其他诸如启动数量和最大启动数量,闲置时间等各种按照实际需求处理。

到此已经完成php方面的配置。

axiaoyue

继续阅读此作者的更多文章