我有两个使用Django框架开发的网站,并且尝试通过Apache2中的虚拟主机配置从同一台计算机访问它们。 我已经创建了/ etc / apache2 / sites-available / alcs

NameVirtualHost alcs:80
<VirtualHost alcs:80>
    ServerAdmin candini@meeo.it
    ServerName alcs
    DocumentRoot /home/candini/Repos/ALCS/SW/alcs-system/GUI-User-Interface
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /home/candini/Repos/ALCS/SW/alcs-system/GUI-User-Interface/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>
    WSGIScriptAlias / /home/candini/Repos/ALCS/SW/alcs-system/GUI-User-Interface/apache/django.wsgi
    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/error.log
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>
</VirtualHost>

/ etc / apache2 / sites-available / jsonopenlayers

NameVirtualHost jsonopenlayers:80
<VirtualHost jsonopenlayers:80>
    ServerAdmin candini@meeo.it
    ServerName jsonopenlayers
    DocumentRoot /home/candini/Repos/CanetaRepo/tmp/STO
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /home/candini/Repos/CanetaRepo/tmp/STO/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>
    WSGIScriptAlias / /home/candini/Repos/CanetaRepo/tmp/STO/apache/django.wsgi
    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>
    ErrorLog ${APACHE_LOG_DIR}/error.log
    LogLevel warn
    CustomLog ${APACHE_LOG_DIR}/access.log combined
    Alias /doc/ "/usr/share/doc/"
    <Directory "/usr/share/doc/">
        Options Indexes MultiViews FollowSymLinks
        AllowOverride None
        Order deny,allow
        Deny from all
        Allow from 127.0.0.0/255.0.0.0 ::1/128
    </Directory>
</VirtualHost>

然后,我做了以下事情:

echo "127.0.0.1 localhost.localdomain localhost jsonopenlayers alcs" >> /etc/hosts
a2ensite alcs
a2ensite jsonopenlayers
/etc/init.d/apache2 reload
/etc/init.d/apache2 restart

但是问题是我得到了:

root@office-007:~# /etc/init.d/apache2 restart
* Restarting web server apache2 [Mon Dec 12 11:23:26 2011] [warn] NameVirtualHost jsonopenlayers:80 has no VirtualHosts
[Mon Dec 12 11:23:26 2011] [warn] NameVirtualHost jsonopenlayers:80 has no VirtualHosts
... waiting [Mon Dec 12 11:23:27 2011] [warn] NameVirtualHost jsonopenlayers:80 has no VirtualHosts
[Mon Dec 12 11:23:27 2011] [warn] NameVirtualHost jsonopenlayers:80 has no VirtualHosts

只能通过http:// localhost / alcs正确访问alcs站点。 如果我尝试达到第二个错误,则会出现以下Django错误:

Page not found (404)
Request Method: GET
Request URL: http://localhost/jsonopenlayers/

Using the URLconf defined in python_scripts.urls, Django tried these URL patterns, in this order:
^alcs/
^alcs/evolution_model_catalogue.html
^alcs/advanced_search_option.html
^alcs/ontological_tree_cascade.html
^alcs/search_evolution_model.html
^alcs/load_evolution_model.json
^alcs/select_load_option.html
^alcs/delete_model.json
^alcs/withdraw_model.json
^alcs/evolution_model_catalogue.html
^alcs/support_request.json
^alcs/malfunction_report.json
^alcs/file_upload.html
^alcs/malfunction_file_upload

The current URL, jsonopenlayers/, didn't match any of these.

但是,如果我从/ etc / apache2 / sites-enabled /目录中删除alcs链接,它就不会出现问题。

我的配置哪里错误?

===============>>#1 票数:1

正如我在评论中提到的那样,命名主机完全是错误的方法。 命名主机就是这样-当您想从同一台计算机提供多个不同的域名时。 因此,如果您想从同一Apache提供foo.com和bar.com,则可以使用它。

您想要的是不同的东西,并且更简单:仅在同一个域中的两个子文件夹下提供两个Django站点。 您只需执行以下两行即可:

WSGIScriptAlias /alcs/ /home/candini/Repos/ALCS/SW/alcs-system/GUI-User-Interface/apache/django.wsgi
WSGIScriptAlias /jsonopenlayers/ /home/candini/Repos/CanetaRepo/tmp/STO/apache/django.wsgi

  ask by caneta translate from so

未解决问题?本站智能推荐:

1回复

多个Django站点,一台服务器

我有同一个客户端的多个站点,在同一台服务器上运行django,例如fooplumbing.com和bazheating.org 。 这两个网站每个都有不同的django应用程序,即管道网站不应该能够访问加热应用程序,反之亦然。 这两个站点之间没有共享对象,每个站点都需要自己独立的管理站点。
1回复

1个使用django登录的apache虚拟主机上的2个django站点

我有2个站点,都需要登录(我使用的是django.contrib.auth.views.login提供的django)。 当我输入http:// url / siteb时,我将重定向到account / login,并且siteb从创建http:// url / accounts / logi
2回复

Django站点与开发服务器一起运行,但不在Apache mod_wsgi上运行

我有一些Django网站,我想使用mod_wsgi将它们放置在Web服务器Apache2上。 该网络服务器可以正常工作,而一个Django网站可以正常工作,但是另一个则不能(显示“内部服务器错误”页面)。 但是奇怪的是,该网站在开发服务器上可以完美运行。 这是我的虚拟主机配置:
1回复

django wsgi在虚拟主机上的正确配置

我想将我的工作应用程序放在apache2虚拟主机(Ubuntu)上,其他带有php的主机也可以正常工作,但是我的问题出在了Django上。 我有500个内部/home/py/django/kitty/kitty/wsgi.py /etc/apache2/sites-available/
1回复

Apache上基于Django的框架虚拟主机设置https

我使用的是基于django的框架,并且已成功找到HTTP模式的Apache设置。 基本上,我已经正确完成了<VirtualHost *:80> ... </VirtualHost> ,当我这样做时, http: //mysite.domain.com正确地路由到了我的站
1回复

在同一apache服务器中使用SSL运行两个django应用

我在ubuntu lucid安装了apache2 ,并启用了ssl 。现在,我正在使用mod_wsgi在其上运行django应用(让我说myapp1 )。 我已经如下配置了/etc/apache2/sites_enabled/ssl文件和/etc/apache2/sites-available
1回复

Apache2使用Django项目设置带有子域的虚拟主机

我在Ubuntu Server 12.04上使用Django 1.4和Python 2.7。 我正在尝试在单个服务器上托管多个网站。 我是Apache的新手,在设置虚拟主机时似乎写错了一些东西。 我拥有2个要在单个服务器上托管的域。 称它们为www.my_first_domain.c
1回复

如何在Phusion-Passenger中从不同的虚拟主机重用相同的Python应用程序,但维护单独的进程?

我有两个虚拟主机,它们使用Apache和Passenger提供服务于同一Django应用程序: 由于两者的DocRoot都相同,因此,Passenger第一次启动/产生一个进程时,将根据请求的第一个虚拟主机来设置ENV变量。 然后将应用程序代码缓存起来,因此,即使访问另一个虚拟主机,E
2回复

将应用移至新服务器

我必须将应用程序从一台服务器移动到另一台服务器。 它也是debian,所以我安装了所有安装在旧服务器上的python软件包,然后将文件移到相同的目录(我希望:D) 当我尝试检查它是否有效时,我收到这样的错误: 我不知道我忘记安装什么。 不幸的是-在移动之前(旧服务器已关闭)无法
2回复

apache服务器上的django admin CSS

我需要解决缺少的管理页面CSS问题。 我已经在网上测试了几乎所有的解决方案,但是没有运气! (我在apache2.4上使用django 1.8) 到目前为止,这是我所做的: 在setting.py我有: 我做了python manage.py collectstatic