php-fpm多用户运行的两种方式
php-fpm各个站要是以同样的用户运行的话,一个网站要是被攻击了的话,可能会威胁到其他网站。当然解决方法不仅仅是以多用户的方式去运行php-fpm,还可以配置open_basedir,但是测试了一下,貌似只有在php5.3以上才有效。
下面以php5.3.28为例,配置多用户运行php-fpm:
第一种:一个php-fpm主进程
这种方式比较简单,也只需要一个php-fpm自启动文件
首先我们查看一下原php-fpm.conf的这个配置文件,分为两个部分,一个是global块,另外一个是自定义的块,配置文件里面称为pool池,默认叫“www”。在global池的上方,有一行注释了的“include=etc/fpm.d/*.conf”配置项,再通过www池的配置,我们可知可以通过不同的池来配置不同的用户,来达到多个用户运行php-fpm的目的,步骤如下:
1、在etc目录下创建fpm.d目录
1 | |
2 | mkdir fpm.d |
3 |
2、复制php-fpm.conf 到fpm.d目录下并重命名,比如 blog.conf
1 | |
2 | cp php-fpm.conf ./fpm.d/blog.conf |
3 |
3、进入fpm.d目录,修改blog.conf
1 | |
2 | cd fpm.d |
3 | vim blog.conf |
4 |
4、删除前面的global块,或者注释掉
5、修改[www]为其他,比如你[blog]
6、配置[blog]池,主要修改两个地方:
6.1:第一处为运行的用户和用户组
即将
1 | |
2 | user = www |
3 | group = www |
4 |
修改为
1 | |
2 | user=nobody #具体用哪个用户视自己情况而定,我只做个示例 |
3 | group=nobody |
4 |
6.2:修改监听的端口或者socket:
即将:
1 | |
2 | listen = 127.0.0.1:9000 |
3 |
修改为:
1 | |
2 | listen = /var/socket/php-fpm/blog.socket #php-fpm需要自己创建,当然也可以直接放在php-fpm目录下 |
3 |
修改成其他端口也是可以的,比如:listen = 127.0.0.1:9001
7、到主配置文件 php-fpm.conf将“include=…”前面的注释去掉,让它去读取fpm.d目录下的配置文件;
8、到此第一种方案就修改完毕了,重新启动测试一下:
1 | |
2 | service php-fpm reload |
3 |
第二种:两个php-fpm主进程
这种方法需要独立的配置文件和独立的自启动文件:
1、复制一份php-fpm.conf主配置文件
1 | |
2 | cp php-fpm.conf php-fpm-blog.conf |
3 |
2、修改主配置文件
1 | |
2 | vim php-fpm-blog.conf |
3 |
2.1:修改[global]下pid和error_log文件的路径
修改 pid=run/php-fpm.pid 为 pid=run/php-fpm-blog.pid
修改 error_log = /log/php-fpm.log 为 error_log = /log/php-fpm-blog.log
2.2:修改池的名称[www]为[blog],不过这个可以不用修改了,因为这里和原来的进程是独立的
2.3:修改用户和用户组;
2.4:监听端口或socket文件;
以上两部可以按照第一种方案进行修改,这里就不再重复
3、进入/etc/init.d目录,复制一份自启动文件
1 | |
2 | cp php-fpm php-fpm2 |
3 |
4、修改自启动文件php-fpm2:
4.1:修改配置文件路径
1 | |
2 | php_fpm-CONF=${prefix}/etc/php-fpm.conf |
3 |
为
1 | |
2 | php_fpm-CONF=${prefix}/etc/php-fpm-blog.conf |
3 |
这个路径就是刚才的主配置文件
4.2:修改PID文件路径:
声明:该文观点仅代表作者本人,入门客AI创业平台信息发布平台仅提供信息存储空间服务,如有疑问请联系rumenke@qq.com。
copyright © 2008-2019 入门客AI创业平台 版权所有 备案号:湘ICP备2023012770号
|