(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