我是阿帕奇的新手。 所以我试图在一个Ubuntu服务器上运行至少两个不同的django项目,只有一个IP地址。
两个域的DNS都指向相同的IP地址。 我在守护进程模式下使用带有mod_wsgi的apache2。 每个项目在〜/中都有自己的目录。 我还在Project directorys中安装了一个带有python的virtaulenv
问题在于无论我如何配置apache2.conf,两个域都指向Project1。 奇怪的是,当我评论apache2.conf中的所有自定义设置时,他们甚至会这样做。 有人可以解释一下吗?
这是我的apache2.conf
with MyData as
(
SELECT to_date('2016-10-01','YYYY-MM-DD') MY_DATE, 20 AMOUNT FROM DUAL UNION
SELECT to_date('2016-08-01','YYYY-MM-DD') MY_DATE, 10 AMOUNT FROM DUAL UNION
SELECT to_date('2016-07-01','YYYY-MM-DD') MY_DATE, 17 AMOUNT FROM DUAL
),
MyResult AS (
SELECT
D.*
FROM MyData D
ORDER BY
DECODE(
12*TO_CHAR(MY_DATE,'YYYY') + TO_CHAR(MY_DATE,'MM'),
12*TO_CHAR(SYSDATE,'YYYY') + TO_CHAR(SYSDATE,'MM'),
-1,
12*TO_CHAR(MY_DATE,'YYYY') + TO_CHAR(MY_DATE,'MM'))
DESC
)
SELECT * FROM MyResult WHERE RowNum = 1
即使我的配置有问题,为什么我在评论此博客中的所有内容时仍会运行? apache从哪里获取信息?
答案 0 :(得分:1)
<VirtualHost *:80>
ServerName www.example1.com
ServerAlias example1.com
ServerAdmin admin@example1.com
DocumentRoot "/var/www/example1"
WSGIScriptAlias / /var/www/example1/example1/wsgi.py
WSGIDaemonProcess www.example1.com python-path=/var/www/example1:/usr/local/lib/python2.7/site-packages
<Location />
WSGIProcessGroup www.example1.com
</Location>
<Directory /var/www/example1>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
ErrorLog /var/www/logs/example1.log
</VirtualHost>
<VirtualHost *:80>
ServerName www.example2.com
ServerAlias exolcorporation.com
ServerAdmin admin@example2.com
DocumentRoot "/var/www/example2"
WSGIScriptAlias / /var/www/example2/example2/wsgi.py
WSGIDaemonProcess www.example2.com python-path=/var/www/example2:/usr/local/lib/python2.7/site-packages
<Location />
WSGIProcessGroup www.example2.com
</Location>
<Directory /var/www/example2>
<Files wsgi.py>
Require all granted
</Files>
</Directory>
ErrorLog /var/www/logs/example2.log
</VirtualHost>
尝试替换路径和域名 在WSGIDaemonProcess中使用virtualenv的路径 我没有在这个例子中使用virtualenv 这段代码在aws ubuntu
上工作正常答案 1 :(得分:1)
有关为什么您的请求可能最终由错误的Django实例处理的主题已在博客文章中详细记录:
该博客文章中描述了可能出现问题的多种情况。
在您的情况下,它听起来像第二个虚拟主机,如果在单独的文件中,可能没有启用,因此Web服务器甚至没有读取文件。结果是,如果使用基于名称的虚拟主机找不到合适的匹配,Apache会将所有请求发送到第一个VirtualHost。
我建议将语法错误添加到第二个虚拟主机(&#39; xxx&#39;在一行上)并查看Apache在尝试启动时是否输出错误。这将确认是否正在读取文件。