在RedHat上部署Django项目

Cre*_*eed 5 python apache django redhat mod-wsgi

我正在尝试在我的RedHat服务器上部署我的本地Django项目.所以我安装了我需要的所有库和依赖项(也是mod_wsgi).

因此,我编辑项目的设置并将我的本地项目移动到服务器.但是我遇到了一个问题:当我尝试访问项目的URL时,我有了资源管理器视图.

我还编辑了httpd.conf文件:

WSGIScriptAlias /var/www/html/virtualEnv/ /var/www/html/virtualEnv/ThirdPartyApplications/ThirdPartyApplications/wsgi.py
    WSGIPythonPath /var/www/html/virtualEnv/ThirdPartyApplications/:/var/www/html/virtualEnv/lib/python2.7/site-packages
    WSGIDaemonProcess http://licops.app.ale-international.com/ python-path=/var/www/html/virtualEnv/ThirdPartyApplications/:/var/www/html/virtualEnv/lib/python2.7/site-packages
    WSGIProcessGroup http://licops.app.ale-international.com/
    <Directory /var/www/html/virtualEnv/ThirdPartyApplications/>
        <Files wsgi.py>
            Order deny,allow
            Allow from all
        </Files>
    </Directory>
Run Code Online (Sandbox Code Playgroud)

编辑:@FlipperPA

到目前为止,我在/etc/httpd/conf.d/djangoproject.conf中运行此conf:

WSGISocketPrefix /var/run/wsgi

NameVirtualHost *:448
Listen 448
Run Code Online (Sandbox Code Playgroud)

ServerName http://server.name-international.com
ErrorLog /home/myuser/apache_errors.log

WSGIDaemonProcess MyApp python-path=/var/www/html/MyApp:/var/www/html/MyApp/MyApp/lib/python2.7/site-packages
WSGIProcessGroup MyApp
WSGIScriptAlias /MyApp /home/user/MyApp/MyApp/wsgi.py
Alias /static /var/www/html/MyApp/MyApp/static
Run Code Online (Sandbox Code Playgroud)

Fli*_*rPA 6

这是我使用Apache 2.2在CentOS 6.8上运行的Apache配置示例; 我将其命名为yourproject.conf包含它,/etc/httpd/conf.d因此它包含在主Apache配置文件中:

LoadModule wsgi_module modules/mod_wsgi.so
LoadModule ssl_module modules/mod_ssl.so

WSGISocketPrefix /var/run/wsgi

NameVirtualHost *:443
Listen 443
<VirtualHost *:443>

  ServerName yourservername.com
  ErrorLog /home/yourusername/apache_errors.log

  WSGIDaemonProcess yourproject-https python-home=/home/yourusername/.virtualenvs/yourproject
  WSGIScriptAlias /yourproject /var/www/html/yourproject/yourproject/wsgi.py process-group=yourproject-https application-group=yourproject-https
  WSGIProcessGroup yourproject-https
  Alias /yourproject/static/ /var/www/html/yourproject/static/

  SSLENGINE on 

  SSLCertificateFile /etc/pki/tls/certs/localhost.crt
  SSLCertificateKeyFile /etc/pki/tls/private/localhost.key
  SSLCipherSuite ALL:!ADH:!EXPORT:!SSLv2:RC4+RSA:+HIGH:+MEDIUM:+LOW
  SSLProtocol all -SSLv2
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)

你可能还需要调整你wsgi.py的Django项目:

import os, sys
from django.core.wsgi import get_wsgi_application

sys.path.append(os.sep.join(os.path.abspath(__file__).split(os.sep)[:-2]))
os.environ.setdefault("DJANGO_SETTINGS_MODULE", "yourproject.settings")
application = get_wsgi_application()
Run Code Online (Sandbox Code Playgroud)

这假设你的virtualenv位置/home/yourusername/.virtualenvs/yourproject和你的Django项目位于a /var/www/html/yourproject.它还会将Apache错误写入您的主目录,以防您遇到任何障碍.祝好运!