Nginx脚本作为www数据执行


Nginx scripts executed as www-data

我正在尝试使用Nginx web服务器使用PHP执行bash脚本。对于我正在做的事情,它必须作为"myuser"执行,而不是作为"www data"执行(因为当它作为"www数据"执行时不起作用)。

我不知道怎么做。我已经在/etc/nginx.conf中的"user-myuser;"中更改了"user-www-data;",但仍然存在同样的问题。

有什么想法吗?

谢谢你的帮助。

此需求通常有四种解决方案策略:

  1. 使用php作为cgi-scipting引擎,它允许使用文件系统suid或guid位来切换有效的用户id。然而,这是非常不安全的,你真的必须保护你的Web服务器。

  2. 看看php提供的sudo模块。

  3. 您可以从php启动一个后台进程,该进程使用上面的想法之一

  4. 你可以修复你的东西,使其与当前用户id一起工作。是的,这是可能的。

因为它在作为"www数据"执行时不起作用

因此,请更改脚本的所有权。

chown www-data:www-data scriptName.sh

尝试编辑这些文件

  1. nginx.conf(sudo nano/etc/nginx/nginix.conf)

用户YOUR_user YOUR_GROUP;

worker_processes 4;
pid /run/nginx.pid;
  1. 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

我希望它能有所帮助。