我想部署Django应用程序,并尝试通过 Whitenoise 实现该目标, 但是最后一个仅提供我的静态文件,现在我需要提供我的媒体文件。 我想使用 Apache (Manjaro / Arch中的 HTTPD )来执行此操作,但是在尝试了多个tuto之后却无法解决。
这是我的配置:
httpd.conf :
ImmutableArray<T> im = Unsafe.As<T[], ImmutableArray<T>>(ref array);
settings.py :
LoadModule wsgi_module modules/mod_wsgi.so
WSGIScriptAlias / /home/chemsouh/dev/rci/rci/wsgi.py
WSGIPythonHome /home/chemsouh/dev/rci
WSGIPythonPath /home/chemsouh/dev/rci/rci
<Directory /home/chemsouh/dev/rci/rci>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
我也尝试过:
在我的 httpd-vhosts.conf 中:
MEDIA_URL = '/media-directory/'
MEDIA_ROOT=os.path.join(os.path.dirname(BASE_DIR), "media-serve/")
在我的 httpd.conf 中:
<VirtualHost 127.0.0.1:80>
ServerAdmin RCI
DocumentRoot "/home/chemsouh/dev/rci/media-serve"
ServerName rci.co
ServerAlias www.rci.co
ErrorLog "/var/log/httpd/dummy-host.example.com-error_log"
CustomLog "/var/log/httpd/dummy-host.example.com-access_log" common
</VirtualHost>
我得到了我要提供的我的媒体目录
这是我的项目树: $ pwd给了 / home / chemsouh / dev / rci
NB 我使用:
Apache 2.4 的Django 2.0.6 在设置中有settings.py
答案 0 :(得分:1)
您的Django项目架构对我来说很奇怪,而且我没有使用Manjaro
。在我的回答中,我使用的是Ubuntu 16.04
,您可以使用Manjaro
复制它。
除此之外,这是一个简单的教程,说明如何使用Apache
和Python3+
来部署django项目。
首先,您需要为Python3安装Apache2
和mod_wsgi
:
$> sudo apt update
$> sudo apt install apache2
$> sudo apt install libapache2-mod-wsgi-py3
然后,我想您的Django项目在/var/www/html
目录下,并且类似于此建筑:
$> tree -I '__pycache__|migrations'
.
└── deploy_django
├── deploy_django
│ ├── __init__.py
│ ├── settings.py
│ ├── urls.py
│ └── wsgi.py
├── django_app
│ ├── admin.py
│ ├── apps.py
│ ├── __init__.py
│ ├── models.py
│ ├── tests.py
│ └── views.py
├── manage.py
├── media
└── static
然后,您需要配置Apache
虚拟主机:
$> sudo nano /etc/apache2/sites-enabled/000-default.conf
并在<virtualHost>
和</virtualHost>
之间添加这些行:
WSGIDaemonProcess django \ # Your Django's project process name
python-home=/usr/local/lib/python3.5/dist-packages/ \ # Python3 dist packages OR even better use your virtualenv's python path
python-path=/var/www/html/deploy_django # Path of your Django project folder
WSGIProcessGroup django # Your django's Process Group
WSGIScriptAlias / /var/www/html/deploy_django/deploy_django/wsgi.py # Where is your WSGI File
<Directory /var/www/html/deploy_django/deploy_django>
Require all granted
</Directory>
Alias /media/ /var/www/html/deploy_django/media/ # Media dir
Alias /static/ /var/www/html/deploy_django/static/ # Static dir
<Directory /var/www/html/deploy_django/static>
Require all granted
</Directory>
<Directory /var/www/html/deploy_django/media>
Require all granted
</Directory>
最后:
$> service apache2 restart
然后在浏览器中打开127.0.0.1
,一切正常。
除此之外,如果遇到一些错误,可以在文件Apache's logs
或目录/var/log/apache2/error.log
下检查/var/log/apache2