Nginx + PHP5.3中的虚拟主机功能加强
时间:2018-05-23 10:59来源: 作者: 点击: 次
本文摘要> >Nginx + PHP5.3中的虚拟主机功能加强
如果你使用的是Nginx,在一台服务器上使用多个网站,就有可能对服务器的安全感到担心,也会觉得Nginx+php不适合多站点的部署:没有Apache php_admin_value对open_basedir的限制,也没有.htaccess对php.ini的自定义。
PHP5.3及时地对这方面进行弥补,可能很多系统管理员还没有意识,php5.3内置了对nginx这类软件类apache的支持:
使用[PATH]和[HOST]对php.ini进行自定义
举例:
- [HOST=www.pandaidea.com]
- open_basedir=/var/www/www.pandaidea.com:/tmp
- [PATH=/var/www/www.tincoco.org]
- open_basedir=/var/www/www.tincoco.org:/tmp
- [PATH=/var/www/www.xiayucha.com]
- open_basedir=/var/www/www.xiayucha.com:/tmp
这段配置放在php.ini即可实现主机之间权限的隔离。
Notice:这些设置仅仅在CGI/FastCGI中生效,并且不能设置extension和zend_extension指令。
.user.ini的支持
根据PHP手册,php在CGI/FastCGI模式中会从当前的PHP脚本目录中开始层层扫描,直到抵达$_SERVER['DOCUMENT_ROOT']。除非当前脚本是在DOCUMENT_ROOT之外执行,只会扫描当前目录。
读取.user.ini后会缓存起来,根据user_ini.cache_ttl确定重新读取的时间,默认是5分钟。
不过PHP_INI_SYSTEM 级别的不能在.user.ini中设置。
有这两个功能的支持,nginx + php-fpm的安全程度以及功能已经和Apache类似。也看到一些公司开始推出一些nginx虚拟主机,毕竟,Nginx虚拟主机更容易超售;服务器/VPS上放多个站点也不用担心某个使用开源程序的站点成了害群马。