(php)项目a是用test用户运行
nginx和php-fpm是www-data用户运行
(python)项目b是用test用户运行
项目a通过php函数exec调用python脚本的接口造成了没有权限访问目录
直接把项目b的权限切换为www-data可以执行,但是不便于开发,最好是把php、nginx、项目a、项目b都在一个用户、组下面。
打个比方test是当前登录用户
修改nginx的运行角色
cd /etc/nginx sudo vi nginx.conf # 头部是这样 user www-data; worker_processes auto; pid /run/nginx.pid; include /etc/nginx/modules-enabled/*.conf; # 修改为 user opensmarty; worker_processes auto; pid /run/nginx.pid; include /etc/nginx/modules-enabled/*.conf; # 重启nginx sudo service nginx restart
修改php的运行角色
cd /etc/php/7.2/fpm/pool.d/ sudo vi www.conf # 找到 user = www-data group = www-data # 改为 user = opensmarty group = opensmarty cd /run/php/ ls -al # 这个目录下面有两个文件 # php7.0-fpm.pid和php7.2-fpm.sock # 修改这两个文件的权限 sudo chown opensmarty:opensmarty php7.2-fpm.pid sudo chown opensmarty:opensmarty php7.2-fpm.sock # 重启php-fpm sudo service php7-fpm restart