hao32的个人日志

nginx使用不同的用户来跑fastcgi

今天在freebsd下用ports方式安装nginx+php+mysql环境, nginx使用www用户来跑的, 然后使用lighttpd中附带的spawn-fcgi来启动php-cgi, 我依然是用www用户来跑的fastcgi, 但是服务器上有多个用户, 我不想让他们使用一个用户来跑, 从安全上的考虑, 我可不想别人跨目录搞自己的站, 现在的phpshell都这么NB.
后来经朋友指点发现可以启动不同的fastcgi进程来解决这个问题, 一个用户只启动自己的进程,用自己的端口, 后来想了一下, 真的非常简单, 在使用spawn-fcgi启动的时候指定不同的端口指定不同的用户多简单啊, 唯一不爽的就是要多几个配置文件, 至少得一个用户一个吧

nginx的虚拟主机配置文件里有加载php的地方, 类似如下的
               location ~ .*\.php?$
               {
                       include php5.conf;
               }
这个时候你就可以指定不同的配置文件了, 例如在虚拟主机hao32.com.conf里, 你可以使用hao32这个用户来跑一系列php-cgi进程:
               location ~ .*\.php?$
               {
                       include php5_hao32.conf;
               }
那么这个php5_hao32.conf文件里必须有:
fastcgi_pass  127.0.0.1:8809; (其中8809是hao32用户独立占用的端口, 可以自定义)

在启动nginx之前可以先使用spawn-fcgi以hao32用户和8099端口来启动一系列php-cgi进程,
以此类推, 可以启动多组不同用户的和不同端口的php-cgi进程

这样安全很多了

        

1 评论

  1. 很好的方法
    看到 SUDU好象就是这么做的
    一直寻找这个是怎么实现的

回复 qlj 取消回复