我有两个Django网站。一个是暂存站点,另一个是生产。我希望在IF()
处显示暂存网站,在beta.ialexander.io
处显示正在生产的网站。我在Apache上使用ialexander.io
。以下是两个mod_wsgi
文件:
.conf
:
ialexander.conf
# WSGI Stuff
WSGIPythonPath /var/www/Ullmannite
<VirtualHost *:80>
# WSGI Stuff
WSGIScriptAlias / /var/www/Ullmannite/Ullmannite/wsgi.py
# Identification
ServerName ialexander.io
ServerAdmin Alexander2475914@gmail.com
# Public files
Alias /assets /var/www/Ullmannite/public
# Logs
ErrorLog ${APACHE_LOG_DIR}/iAlexander-Error.log
CustomLog ${APACHE_LOG_DIR}/iAlexander-Access.log combined
# Access
DocumentRoot "/var/www/Ullmannite/public"
<Directory "/var/www/Ullmannite/Ullmannite">
<Files "wsgi.py">
Require all granted
</Files>
</Directory>
<Directory "/var/www/Ullmannite/public">
Require all granted
</Directory>
</VirtualHost>
:
000-ialexander-staging.conf
我几周来一直在努力解决这个问题。最初在# WSGI Stuff
WSGIPythonPath /var/www/Ullmannite-Staging
<VirtualHost *:80>
# WSGI Stuff
WSGIScriptAlias /beta /var/www/Ullmannite-Staging/Ullmannite/wsgi.py
# Identification
ServerName ialexander.io
ServerAdmin Alexander2475914@gmail.com
# Public files
Alias /assets /var/www/Ullmannite-Staging/public
# Logs
ErrorLog ${APACHE_LOG_DIR}/iAlexander-Staging-Error.log
CustomLog ${APACHE_LOG_DIR}/iAlexander-Staging-Access.log combined
# Access
DocumentRoot "/var/www/Ullmannite-Staging/public"
<Directory "/var/www/Ullmannite-Staging/Ullmannite">
<Files "wsgi.py">
Require all granted
</Files>
</Directory>
<Directory "/var/www/Ullmannite-Staging/public">
Require all granted
</Directory>
</VirtualHost>
我有000-ialexander-staging.conf
和WSGIScriptAlias / /var/www/Ullmannite-Staging/Ullmannite/wsgi.py
,但这并没有给我我需要的东西。我不记得发生了什么事,因为这是两周前的事。
目前我已ServerName beta.ialexander.io
已停用,因为它会破坏另一个(000-ialexander-staging.conf
)。但是,当我启用ialexander.conf
并访问000-ialexander-staging.conf
时,我会看到生产网站。
我知道有一个小问题,你必须按顺序拥有http://ialexander.io/beta
个值的网站。如果我有第一个WSGIScriptAlias
在第二个之前设置为WSGIScriptAlias
,那么它将首先发送该/
。这就是我用000-ialexander-staging.conf
前缀命名000-
的原因。我想确保Apache首先阅读那个,因为它的WSGIScriptAlias
值为/beta
。
为什么会发生这些事情?如何让生产网站返回ialexander.io
但是beta.ialexander.io
的暂存状态?
答案 0 :(得分:0)
这是我在Windows的一个httpd.conf
文件中执行的操作:
*注意:
WSGIPythonPath
以外的VirtualHost
- 如果存在,则两个VirtualHost
不能有不同的python-django配置(www.)ialexander.io
和beta.ialexander.io
没有使用virtualenv。 (我不确定这是否会成为问题......)
# for the public site
<VirtualHost *:80>
DocumentRoot "/var/www/Ullmannite/public"
ServerName ialexander.io
ServerAlias www.ialexander.io
WSGIScriptAlias / /var/www/Ullmannite/Ullmannite/wsgi.py
# ...other things the same...
</VirtualHost>
# for the staging site
<VirtualHost *:80>
DocumentRoot "/var/www/Ullmannite-Staging/public"
ServerName beta.ialexander.io
WSGIScriptAlias / /var/www/Ullmannite-Staging/Ullmannite/wsgi.py
# ...other things the same...
</VirtualHost>