Nginx脚本作为www-data执行

时间:2014-08-31 19:06:01

标签: php nginx

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

我对如何做到这一点没有任何想法。我已经改变了用户www-data;" in" user myuser;"在/etc/nginx.conf但仍然是同样的问题。

有什么想法吗?

感谢您的帮助。

3 个答案:

答案 0 :(得分:2)

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

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

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

  3. 你可以从php开始一个后台进程,它使用上述一个想法

  4. 您可以修复您的内容,使其与当前用户ID一起使用。是的,这是可能的。

答案 1 :(得分:2)

  

因为它作为“www-data”

执行时不起作用

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

chown www-data:www-data scriptName.sh

答案 2 :(得分:0)

尝试编辑这些文件

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

    用户YOUR_USER YOUR_GROUP;

    worker_processes 4;
    
    pid /run/nginx.pid;
    
    1. php5-fpm用户(sudo nano /etc/php5/fpm/pool.d/www.conf)
    2.   

      user = www-data

           

      group = www-data

      listen.owner = www-data
      listen.group = www-data
      

      然后

      sudo /etc/init.d/nginx restart
      

      sudo /etc/init.d/php5-fpm restart
      

      我希望它有所帮助。