我正在尝试使用Nginx web服务器使用PHP执行bash脚本。对于我正在做的事情,它必须作为"myuser"执行,而不是作为"www data"执行(因为当它作为"www数据"执行时不起作用)。
我不知道怎么做。我已经在/etc/nginx.conf中的"user-myuser;"中更改了"user-www-data;",但仍然存在同样的问题。
有什么想法吗?
谢谢你的帮助。
此需求通常有四种解决方案策略:
-
使用php作为cgi-scipting引擎,它允许使用文件系统suid或guid位来切换有效的用户id。然而,这是非常不安全的,你真的必须保护你的Web服务器。
-
看看php提供的sudo模块。
-
您可以从php启动一个后台进程,该进程使用上面的想法之一
-
你可以修复你的东西,使其与当前用户id一起工作。是的,这是可能的。
因为它在作为"www数据"执行时不起作用
因此,请更改脚本的所有权。
chown www-data:www-data scriptName.sh
尝试编辑这些文件
- nginx.conf(sudo nano/etc/nginx/nginix.conf)
用户YOUR_user YOUR_GROUP;
worker_processes 4; pid /run/nginx.pid;
- php5-fpm用户(sudo nano/etc/php5/fpm/pool.d/www.conf)
user=www数据
group=www数据
和
listen.owner = www-data
listen.group = www-data
然后
sudo /etc/init.d/nginx restart
和
sudo /etc/init.d/php5-fpm restart
我希望它能有所帮助。