在PHP-FPM中设立chroot,有很好的隔离作用,提高系统安全性,但是要想建立一个合理的PHP-FPM Chroot环境难度有点大,比用debootstrap等工具建立还要麻烦,下面通过参考相关资料,把PHP-FPM之Chroot执行环境整理出来,分享给大家。
本文以Ubuntu 14.04.2为例,php-fpm使用的是 ppa:ondrej/php5-5.6 提供的PHP5.6版本,跟系统自带以及Debian系统的php-fpm和系统目录结构应该是一致的。CentOS请自行调整。
php-fpm的chroot环境配置和所使用的服务器前端没有关联,也不强求Apache/Nginx进行chroot。当然那样更安全——也更复杂。
1.建立目录结构
chroot的目录选择为 /var/www/chroot ,其中页面文件放置在 /var/www/chroot/public 。
执行下面的命令建立基本的目录结构:
- bash
- mkdir -p /var/www/chroot/
- cd /var/www/chroot
- mkdir -p public bin dev tmp usr/sbin/ usr/share/zoneinfo/ var/run/nscd/ var/lib/php5/sessions var/www
- cp -a /dev/zero /dev/urandom /dev/null dev/ #注3
- chmod --reference=/tmp tmp/
- chmod --reference=/var/lib/php5/sessions var/lib/php5/sessions #注4
- chown -R root:root . #注2
- chown -R www-data:www-data public/ #注2
- cd var/www
- ln -s ../.. chroot #注1
新闻热点
疑难解答