(php)项目a是用test用户运行
nginxphp-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