修改PHP-FMP的运行用户

cover-image
今天又折腾了一下VPS.

把php-fpm的运行用户改成了每个子用户, 而不是统一使用www-data用户, 这样的好处就是解决了php动态创建的文件属主和属主都是www-data, 普通用户反而没法删除这个文件的尴尬.

####流程如下…

进入php5-fpm的配置目录/etc/php5/fpm/pool.d/为每个用户添加一个conf文件, 内容大概如下.(要替换$USERNAME)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
[username]

user = $USERNAME
group = $USERNAME

listen = /tmp/$USERNAME-fpm.sock
listen.owner = $USERNAME
listen.group = $USERNAME
listen.mode = 0660

pm = dynamic
pm.max_children = 10
pm.start_servers = 3
pm.min_spare_servers = 1
pm.max_spare_servers = 3

进入nginx的配置目录/etc/nginx/sites-enabled/把用户的php套接字路径改为(也要替换$USERNAME)

1
2
3
4
5
6
7
8
location ~ \.php$ {
fastcgi_pass unix:/tmp/$USERNAME-fpm.sock;
fastcgi_index index.php;
include fastcgi_params;
}
```

重启php5-fpm和装载nginx配置生效.

service php5-fpm restart
nginx -s reload
```

###后话.

其实还有一个问题仍然存在, 用nginx直接反代的配置并没有通过apache, 这在一些使用.htaccess文件来设置rewrite规则的程序来讲(比如wordpress等)是不可接受的, 因为nginx的rewrite规则与apache并不通用. 我查了一下, 要在apache2开启fastcgi_mod还是比较麻烦的, 然后上课的点到了先去上课了, 下回有空再折腾吧~ 那些用.htaccess的就先proxy_pass apache把~