Apache 2.4 基于端口配置多个Diango项目

来源:互联网 发布:制造业软件集成商 编辑:程序博客网 时间:2024/06/01 08:54

写在前边的话:

       基于多端口配置普通的web项目是非常简单的,大家上网搜索就能得到很多答案,而且不会出错,然而在配置Django的多端口时,却出现了各种bug,苦苦的折腾了一晚上

       环境 说明:

             服务器 Windows Server 2008

             Apache 2.4.4

             Python 2.7.10

             MySQL 5.7

             Mod_Wsgi 3.4

       在进行配置之前,首先要保证你的环境是Ok的,这样才能保证配置过程中,不会因为环境缺少问题而出错,这里假设你所需要的软件都已安装完毕

1:加载 mod_wsgi

     修改Apache目录下的conf/httpd.conf 文件,加入下面这行

[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. <span style="font-size:14px;">    LoadModule wsgi_module modules/mod_wsgi.so</span><span style="font-size:18px;">  
  2. </span>  

2:打开端口虚拟映射

     和1中的文件相同,找到如下

[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. # Virtual hosts  
  2. # Include conf/extra/httpd-vhosts.conf  
     将第二行的#去掉,即允许Apache进行端口映射

3:添加端口

     还是httpd.cond 文件,大约在五十多行吧,添加你的端口,我这里设置为8080和8081

     #Listen 12.34.56.78:80
     Listen 8080
     Listen 8081

4:打开 conf/extra/httpd-vhosts.conf 

     原来是这样的

[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. <VirtualHost *:80>  
  2.     ServerAdmin webmaster@dummy-host.example.com  
  3.     DocumentRoot "c:/Apache24/docs/dummy-host.example.com"  
  4.     ServerName dummy-host.example.com  
  5.     ServerAlias www.dummy-host.example.com  
  6.     ErrorLog "logs/dummy-host.example.com-error.log"  
  7.     CustomLog "logs/dummy-host.example.com-access.log" common  
  8. </VirtualHost>  
  9.   
  10. <VirtualHost *:80>  
  11.     ServerAdmin webmaster@dummy-host2.example.com  
  12.     DocumentRoot "c:/Apache24/docs/dummy-host2.example.com"  
  13.     ServerName dummy-host2.example.com  
  14.     ErrorLog "logs/dummy-host2.example.com-error.log"  
  15.     CustomLog "logs/dummy-host2.example.com-access.log" common  
  16. </VirtualHost>  
     修改端口号,加载Django的配置文件,配置之后是这样的

[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. <VirtualHost *:8080>  
  2.   ServerName blog_analysic  
  3.   WSGIScriptAlias / D:/WWW/blog_analysic/blog_analysic/wsgi.py  
  4.   <Directory D:/WWW/blog_analysic/blog_analysic/>    
  5.      <Files wsgi.py>    
  6.        Require all granted    
  7.      </Files>    
  8.   </Directory>   
  9.     
  10.   Alias /static D:/WWW/blog_analysic/static  
  11.   <Directory D:/WWW/blog_analysic/static>     
  12.     Require all granted    
  13.   </Directory>     
  14.   
  15.   DocumentRoot "D:/WWW/blog_analysic"  
  16.   <Directory "D:/WWW/blog_analysic">  
  17.         Options Indexes FollowSymLinks  
  18.         AllowOverride None  
  19.         Require all granted  
  20.   </Directory>  
  21. </virtualHost>  
  22.   
  23. <VirtualHost *:8081>  
  24.   ServerName CyanScikit  
  25.   WSGIScriptAlias / D:/WWW/CyanScikit/CyanScikit/wsgi.py  
  26.   <Directory D:/WWW/CyanScikit/CyanScikit/>    
  27.      <Files wsgi.py>    
  28.        Require all granted    
  29.      </Files>    
  30.   </Directory>   
  31.     
  32.   Alias /static D:/WWW/CyanScikit/static  
  33.     
  34.   <Directory D:/WWW/CyanScikit/static>     
  35.     Require all granted    
  36.   </Directory>     
  37.      DocumentRoot "D:/WWW/CyanScikit/templates"  
  38.      <Directory "D:/WWW/CyanScikit/templates">  
  39.          Options Indexes FollowSymLinks  
  40.          AllowOverride None  
  41.          Require all granted  
  42.      </Directory>  
  43. </virtualHost>  
      分别监控8080和8081端口,且我的项目目录在D盘根目录的WWW文件夹下,其中包含两个项目 blog_analysic 和CyanScikit
      

      PS:网上查的资料都是基本配置到这里就完事了,就可以重启Apache服务器了,这样的现象是服务器重启OK,但是访问我们 的web项目时会报错如下:

 
      这时候查看服务器日志 logs/error文件

[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. mod_wsgi (pid=3548): Target WSGI script 'D:/WWW/blog_analysic/blog_analysic/wsgi.py' cannot be loaded as Python module.  
  2. mod_wsgi (pid=3548): Exception occurred processing WSGI script 'D:/WWW/blog_analysic/blog_analysic/wsgi.py'.  
  3. Traceback (most recent call last):  
  4.   File "D:/WWW/blog_analysic/blog_analysic/wsgi.py", line 16, in <module>  
  5.     application = get_wsgi_application()  
  6.   File "D:\\Program Files\\Python27\\lib\\site-packages\\django-1.8.8-py2.7.egg\\django\\core\\wsgi.py", line 14, in get_wsgi_application  
  7.     django.setup()  
  8.   File "D:\\Program Files\\Python27\\lib\\site-packages\\django-1.8.8-py2.7.egg\\django\\__init__.py", line 17, in setup  
  9.     configure_logging(settings.LOGGING_CONFIG, settings.LOGGING)  
  10.   File "D:\\Program Files\\Python27\\lib\\site-packages\\django-1.8.8-py2.7.egg\\django\\conf\\__init__.py", line 48, in __getattr__  
  11.     self._setup(name)  
  12.   File "D:\\Program Files\\Python27\\lib\\site-packages\\django-1.8.8-py2.7.egg\\django\\conf\\__init__.py", line 44, in _setup  
  13.     self._wrapped = Settings(settings_module)  
  14.   File "D:\\Program Files\\Python27\\lib\\site-packages\\django-1.8.8-py2.7.egg\\django\\conf\\__init__.py", line 92, in __init__  
  15.     mod = importlib.import_module(self.SETTINGS_MODULE)  
  16.   File "D:\\Program Files\\Python27\\Lib\\importlib\\__init__.py", line 37, in import_module  
  17.     __import__(name)  
  18. ImportError: No module named blog_analysic.settings  
     这个问题是因为找不到项目的路径,这时候就要修改项目的wsgi文件了

5:修改项目的wsgi.py

     打开文件,将我们的项目目录加进去

[html] view plain copy
 在CODE上查看代码片派生到我的代码片
  1. import sys  
  2.   
  3. sys.path.append('D:/WWW/blog_analysic/')    

     同理修改另一个项目的wsgi.py即可

这时候再去重启我们的服务器,访问web目录

http://115.28.17.62:8080

0 0
原创粉丝点击