我试图在Apache的同一IP地址上为不同的virtualenv上的两个Django项目提供服务。
我的第一个网站是http://myip/site-1,第二个是:http://myip/site-2
当我运行http://myip/site-1时,Apache为它服务时没有问题,但当我运行第二个(http://myip/site-2)时,它引发了以下问题:
The requested URL /site-2/ was not found on this server.
因为它在第一个站点的文档根目录中进行搜索。
这是我的apache.conf
<VirtualHost *:80>
ServerName site-1.example.com
DocumentRoot /home/venv/site-1
# adjust the following line to match your Python path
WSGIDaemonProcess site-1.example.com processes=2 threads=15 display-name=%{GROUP} python-home=/home/venv/lib/python2.7
WSGIProcessGroup site-1.example.com
WSGIScriptAlias / /home/venv/site-1/site-1/wsgi.py
<directory /home/venv/site-1>
AllowOverride all
Require all granted
Options FollowSymlinks
</directory>
Alias /static/ /home/venv/site-1/static_root/
<Directory /home/venv/site-1/static_root>
AllowOverride all
Require all granted
Options FollowSymlinks
</Directory>
</VirtualHost>
<VirtualHost *:80>
ServerName site-2.example.com
DocumentRoot /home/venv_mob/site-2
# adjust the following line to match your Python path
WSGIDaemonProcess site-2.example.com processes=2 threads=15 display-name=%{GROUP} python-home=/home/venv_mob/lib/python2.7
WSGIProcessGroup site-2.example.com
WSGIScriptAlias / /home/venv_mob/site-2/site-2/wsgi.py
<directory /home/venv_mob/site-2>
AllowOverride all
Require all granted
Options FollowSymlinks
</directory>
Alias /static/ /home/venv_mob/site-2/static_root/
<Directory /home/venv_mob/site-2/static_root>
AllowOverride all
Require all granted
Options FollowSymlinks
</Directory>
</VirtualHost>
我尝试了许多我在网上找到的解决方案,但问题仍然是一样的。
有什么想法吗?
发布于 2018-06-09 18:52:56
您必须连接到http://site-1.example.com
(使用示例中的术语),而不是http://myip/site-1
。还有http://site-2.example.com
而不是http://myip/site-2
。
一般来说,您可以使用需要配置DNS的name-based virtual hosts (将site-1.example.com
和site-2.example.com
映射到您的IP地址),也可以使用run different sites on different ports。
https://stackoverflow.com/questions/50773316
复制相似问题