Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/django/20.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Python+;Django在apache2(httpd)上的另一个用户Redhat下运行_Python_Django_Apache_Apache2_Redhat - Fatal编程技术网

Python+;Django在apache2(httpd)上的另一个用户Redhat下运行

Python+;Django在apache2(httpd)上的另一个用户Redhat下运行,python,django,apache,apache2,redhat,Python,Django,Apache,Apache2,Redhat,我已经有一个django应用程序绑定到Red hat上的httpd(apache2),它工作得很好,但是我想用不同于apache的用户名运行它,所以如果它写入文件系统,文件的所有者应该是newuser。我正在寻找实现这一目标的解决方案 我尝试使用httpd-itk(在这之后:),但它抱怨: permission denied: mod_wsgi (pid=31322): Unable to connect to WSGI daemon process 'myapp.djangoserver' o

我已经有一个django应用程序绑定到Red hat上的httpd(apache2),它工作得很好,但是我想用不同于apache的用户名运行它,所以如果它写入文件系统,文件的所有者应该是newuser。我正在寻找实现这一目标的解决方案

我尝试使用httpd-itk(在这之后:),但它抱怨:

permission denied: mod_wsgi (pid=31322): Unable to connect to WSGI daemon process
'myapp.djangoserver' on '/var/run/wsgi.31085.0.1.sock' after multiple attempts.
解决了这个问题后(通过对文件授予777测试权限),我仍然将apache作为文件的所有者

我的conf文件如下所示:

<VirtualHost *:80>

    ServerName myapp
    ServerAlias myapp 
    DocumentRoot /usr/share/myapp

    <Directory /usr/share/myapp>
        Order allow,deny
        Allow from all
    </Directory>

    WSGIDaemonProcess syntyma.djangoserver processes=10 threads=20 display-name=%{GROUP}
    WSGIProcessGroup myapp.djangoserver

    WSGIScriptAlias / /usr/share/myapp/apache/django.wsgi
    CustomLog logs/myapp-access.log combined
    ErrorLog logs/myapp-error.log

    LogLevel debug
    AssignUserId newuser newuser

</VirtualHost>
WSGISocketPrefix /var/run/wsgi

我如何使用htttpd-itk或任何其他解决方案(如一些suEXEC或类似产品)实现我的目标


谢谢。

WSGIDaemonProcess
为运行守护进程的用户提供了一个
user
参数。就你而言:

WSGIDaemonProcess syntyma.djangoserver user=newuser processes=10 etc...
从:

user=name | user=#uid.rst

定义守护进程处理的用户的UNIX用户名或数字用户uid 应按以下方式运行。如果未提供此选项 守护进程将以与Apache相同的用户身份运行 按照用户指令的定义运行子进程和

请注意,如果Apache不是以root用户身份启动的,则忽略此选项,其中 无论设置如何,守护进程都将作为启动Apache的用户运行

还要注意,mod_wsgi将不允许您以根用户身份运行守护进程进程组 由于运行 web应用程序作为根

WSGIDaemonProcess syntyma.djangoserver user=newuser processes=10 etc...