如何为Django项目设置apache2.conf文件?

时间:2018-12-21 20:40:34

标签: django apache amazon-web-services ubuntu amazon-ec2

我现在正在aws-ec2上部署django测试项目,而AMI是Ubuntu18.04,带有Python 3.6,Django 2.1,Apache2。

该项目位于/ var / www / Project下,我正在尝试将设置添加到apache.conf。

该项目只是由django-admin startproject Project生成的,我想确保当点击实例提供的公共IP时,它应该显示django默认页面。

var results = JToken.Parse(response.Body)
                    .SelectTokens("hits.hits[*]._source")
                    .Select(t => t.ToObject<Result>())
                    .ToList();

现在我收到内部服务器错误。

WSGIDaemonProcess ubuntu  processes=2 threads=12 python-path=/var/www/Project
WSGIProcessGroup ubuntu
WSGIRestrictEmbedded On
WSGILazyInitialization On
WSGIScriptAlias / /var/www/Project/Project/wsgi.py

<Directory /var/www/Project/Project>
    Require all granted
</Directory>

我以前已经尝试过了。似乎只有在我将python2.7与Django 1.11一起使用时,它才有效。

The server encountered an internal error or misconfiguration and was unable to complete your request.

Please contact the server administrator at webmaster@localhost to inform them of the time this error occurred, and the actions you performed just before this error.

More information about this error may be available in the server error log.

我的conf文件怎么了?

1 个答案:

答案 0 :(得分:0)

我终于想出了以下解决方案。

如果您使用的是Apache2,Python2和Ubuntu18.04 LTS,则可以通过添加以下内容来更改apache2.conf文件:

WSGIScriptAlias / [path_to_wsgi.py]

WSGIPythonPath [path_to_project]

<Directory [path_to_project]>
<Files wsgi.py>
Require all granted
</Files>
</Directory>

如果要使用最新的Django 2+版本,请更改/etc/apache2/sites-available/000-default.conf(这是HTTP端口80的设置)。(000-default.conf文件不能在virtualhost中包含WSGIPythonPath)

<VirtualHost *:80>
ServerAdmin webmaster@localhost
Alias /static [path_to_static_folder]

<Directory [path_to_static_folder]>
Require all granted
</Directory>

<Directory [path_to_project]>
<Files wsgi.py>
    Require all granted
</Files>
</Directory>

WSGIDaemonProcess [name] python-home=[path_to_virtualenv] python-path=[path_to_project]
WSGIProcessGroup [name]
WSGIScriptAlias / [path_to_project_wsgi.py]

ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>