今天是: 收藏本站 设为主页
网站首页 >  技术专栏  >  linux  > 

Nginx + PHP5.3中的虚拟主机功能加强

日期:2012-06-27  点击率:774


如果你使用的是Nginx,在一台服务器上使用多个网站,就有可能对服务器的安全感到担心,也会觉得Nginx+php不适合多站点的部署:没有Apache php_admin_value对open_basedir的限制,也没有.htaccess对php.ini的自定义。

PHP5.3及时地对这方面进行弥补,可能很多系统管理员还没有意识,php5.3内置了对nginx这类软件类apache的支持:

使用[PATH]和[HOST]对php.ini进行自定义

举例:

  1. [HOST=www.pandaidea.com]   
  2. open_basedir=/var/www/www.pandaidea.com:/tmp   
  3.   
  4. [PATH=/var/www/www.tincoco.org]   
  5. open_basedir=/var/www/www.tincoco.org:/tmp   
  6.   
  7. [PATH=/var/www/www.xiayucha.com]   
  8. 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上放多个站点也不用担心某个使用开源程序的站点成了害群马。





下一篇:linux shell使用if时判断参数介绍   上一篇:Ubuntu Nginx 启动脚本/重启脚本