`

apache基于mod_wsgi配置Django虚拟主机启动(针对不同端口)

 
阅读更多
apache基于mod_wsgi配置Django虚拟主机启动(针对不同端口)
(注:CentOS6.2和Windows7都适用)

1. 检查主机名
CentOS:
# hostname
   Windows:
          Doc窗口下执行:hostname

2. 如果主机名不符合要求,修改主机名:
(注:当执行# hostname, 返回的主机名,并不是我们预想的主机名,通俗讲,是我们提供给外网访问的资源地址, 对于局域网,通常使用的是ip访问,所以并不影响局域网)
CentOS6.2下:
步骤一:修改network文件
        # vim /etc/sysconfig/network
         修改HOSTNAME=yourhostname
        参考配置:
        NETWORKING=yes
NETWORKING_IPV6=no
#HOSTNAME=localhost.localdomain
HOSTNAME=yourhostname
步骤二:修改hosts文件
       # vim /etc/hosts
       修改 127.0.0.1 localhost.localdomain localhost
           为 127.0.0.1 localhost.localdomain localhost yourhostname
       参考配置:
           127.0.0.1 localhost.localdomain localhost yourhostname
::1 localhost6.localdomain6 localhost6
步骤三: 重启系统

3. 下载mod_wsgi
下载地址http://code.google.com/p/modwsgi/
注意下载的版本号
   下载后将文件改名为mod_wsgi.so
   并放到apache安装目录的modules目录下
   $APACH_PATH/modules
   例如40机器的目录在:/etc/httpd/modules/

4. 修改apache配置文件
例如40机器是在这里/etc/httpd/conf/httpd.conf
# vim /etc/httpd/conf/httpd.conf
文件末尾添加:
LoadModule wsgi_module modules/mod_wsgi.so
# /usr/bigbang/stargazerservice为应用的路径
Include "/usr/bigbang/stargazerservice/apache_port_django_wsgi.conf"
Include "/usr/bigbang/Unicorn/apache_port_django_wsgi.conf"
5. 进入相应的django应用的目录建立apache需要加载的文件
# cd /usr/bigbang/stargazerservice
# vim apache_port_django_wsgi.conf
文本内容:
Listen 8080
<VirtualHost *:8080>
ServerName data
WSGIScriptAlias / "/usr/bigbang/stargazerservice/django.wsgi"
Alias /site_media/ "/usr/bigbang/stargazerservice/site_media/"

<Directory /site_media>
        Order allow,deny
        Allow from all
</Directory>

<Directory "/usr/bigbang/stargazerservice/apache">
    Order allow,deny
    Allow from all
</Directory>
</VirtualHost>
   还需要新建django.wsgi文件:
   # vim django.wsgi
   文本内容:
   import os, sys

# Calculate the path based on the location of the WSGI script
apache_configuration = os.path.dirname(__file__)
project = os.path.dirname(apache_configuration)
workspace = os.path.dirname(project)
sys.path.append(workspace)

sys.path.append("/usr/bigbang/stargazerservice")      # add to python system path
sys.path.append("/usr/bigbang")             # add to python system path
os.chdir('/usr/bigbang/stargazerservice')
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

同理Unicom这个应用的配置类似,具体的文本为:
apache_port_django_wsgi.conf文本如下:

Listen 8070
<VirtualHost *:8070>
ServerName data
WSGIScriptAlias / "/usr/bigbang/Unicorn/django.wsgi"
Alias /admin_media /usr/lib/python2.6/site-packages/django/contrib/admin/media

<Directory "/usr/bigbang/Unicorn/apache">
    Order allow,deny
    Allow from all
</Directory>
</VirtualHost>

django.wsgi文本内容如下:
import os, sys

# Calculate the path based on the location of the WSGI script
apache_configuration = os.path.dirname(__file__)
project = os.path.dirname(apache_configuration)
workspace = os.path.dirname(project)
sys.path.append(workspace)

sys.path.append("/usr/bigbang/Unicorn")         # add to python system path
sys.path.append("/usr/bigbang")
os.chdir('/usr/bigbang/Unicorn')
os.environ['DJANGO_SETTINGS_MODULE'] = 'settings'

import django.core.handlers.wsgi
application = django.core.handlers.wsgi.WSGIHandler()

6. 做完这步后,还需要修改应用的权限,可以让apache访问
# chown –R apache:apache myapplication_path

7. 重启apache
# service httpd restart


还存在的疑惑:
当我使用# /etc/init.d/httpd restart启动apache的时候,发现Unicom使用的环境好像是stargazer留下来的,所以无法访问,# service httpd restart启动一切正常

对应的这次的stargazerservice和unicom的部署,还需要修改相应的项目下的settings.py文件,将其中TEMPLATE_DIRS 处的“'./templates'”用
“os.path.join(os.path.dirname(__file__),'templates').replace('\\','/'),”代替,逗号一定不能忘记。
分享到:
评论

相关推荐

    window下配置前端nginx后端多apache(django_wsgi)

    2. 配置Apache:在`httpd.conf`文件中,开启WSGI模块,然后添加虚拟主机配置。这里假设你已经在Django项目中设置了WSGI接口。例如: ```apache LoadModule wsgi_module modules/mod_wsgi.so *:8000&gt; ServerName...

    windows-服务器-Django-Apache2.4-mod-wsgi.7z

    - **配置Apache**:编辑Apache的配置文件httpd.conf,添加mod_wsgi模块,并设置虚拟主机。需要指定Django项目的路径、WSGIScriptAlias(指向Django的wsgi.py文件)以及WSGIApplicationGroup。 - **创建wsgi.py文件...

    Windows下Django配置Apache示范设置

    总结来说,Windows下配置Django与Apache的集成涉及到安装必要的软件、配置Apache模块、创建虚拟主机以及编写wsgi.py文件。通过这个过程,你可以将Django应用部署到强大的Apache服务器上,为用户提供稳定的服务。

    Django 2.0项目部署到windows apache 2.4

    - 使用`mod_wsgi-express module-config`命令检查mod_wsgi的配置,并将输出内容添加到Apache配置文件中。 **6. 集成Django项目** - 在Apache的配置文件中设置WSGIScriptAlias,指向Django项目的wsgi.py文件,例如:...

    Django项目部署在Apache遇到的问题及解决思路

    mod_wsgi的配置过程与mod_python相似,只是处理方式不同,具体可参考官方文档进行配置。 总之,Django项目在Apache上的部署涉及多个步骤,包括Apache和Python模块的配置、Django项目的设置以及数据库的连接。正确...

    Apache+uWSGI+Django+Mysql环境配置手册

    【Apache+uWSGI+Django+Mysql环境配置】是构建高效稳定Web服务的关键步骤。这个配置组合在Windows环境中尤为常见,适用于Python Django项目的部署。以下是对各个组件的详细说明: 1. **Python安装**: - 从Python...

    Apache服务器

    虚拟主机配置则允许在同一台服务器上托管多个独立的网站,通过不同的域名或IP地址区分。 此外,熟悉模块管理是提高Apache功能的关键。Apache有许多可选模块,如mod_rewrite用于URL重写,mod_deflate用于内容压缩,...

    Apache如何部署django项目

    mod_wsgi的作用在于充当Apache与Django应用之间的桥梁,让Apache能够处理WSGI协议的请求。具体步骤如下: - **下载mod_wsgi**:访问mod_wsgi的官方网站 [http://code.google.com/p/modwsgi/]...

    python学习2.0Apache配置.pdf

    【Python学习与Apache配置】 ...在实际操作中,根据具体需求可能还需要进行其他配置,如设置虚拟主机、优化性能等。在学习和实践中,理解这些基本概念和流程对于深入掌握Python Web开发至关重要。

    bootstraps4 + django3 + python3.6 + Apache2.4

    然后,创建并配置Apache虚拟主机,确保其指向Django项目的根目录。设置好WSGI配置后,Apache就能启动并运行Django应用。整个过程中,需要注意兼容性和安全设置,如正确配置文件权限、设置合适的端口和SSL证书(如果...

    django.pdf

    - 在Apache配置文件中添加如下示例配置块,以配置Django项目: ```apache LoadModule wsgi_module modules/mod_wsgi.so WSGIScriptAlias / /var/www/project_name/wsgi.py process-group=example.com ...

    Python(Django)项目与Apache的管理交互的方法

    总结来说,Python(Django)项目与Apache服务器的交互主要涉及到Apache服务器的安装和配置、mod_wsgi模块的加载、Django项目的WSGI配置文件编写以及Apache配置文件的适当修改。这些步骤共同构成了Python Web项目部署的...

    python教程之Django部署资料

    9. **mod_wsgi**:这是Apache的一个模块,同样支持WSGI协议。 #### 二、Nginx + uWSGI + Django 部署方案详解 在这些部署方法中,Nginx + uWSGI + Django 是一种非常流行的组合,以其高性能和稳定性著称。接下来,...

    Apache中文手册.zip

    Apache的配置主要通过`httpd.conf`文件进行,该文件定义了服务器的行为、监听端口、网站目录、虚拟主机等。用户可以根据需求修改此文件以定制服务器配置。 3. **模块系统** Apache的强大之处在于其模块化设计。...

    搭建apachepythondjangoMySQLWeb开发环境.docx

    11. **部署**:最后,当开发完成后,将项目部署到Apache服务器,可能需要配置Apache的VirtualHosts以指向Django项目,同时确保mod_wsgi或类似的Wsgi兼容模块已安装并配置。 以上就是搭建Apache+Python+Django+MySQL...

    graphite-web-iow:高度可扩展的实时图形系统。 IPONWEB资料库

    概述石墨由两个主要成分组成: 在Apache / mod_wsgi下运行的前端Django Webapp 后端carbon-cache.py守护程序客户端应用程序连接到端口2003上正在运行的carbon-cache.py守护程序,并向其发送以下格式的文本行: my....

    在Lighttpd服务器中运行Django应用的方法

    在每个站点的`fastcgi.server`配置中,你可以为每个Django安装指定不同的FastCGI主机。这样,Lighttpd将根据请求的主机名选择正确的配置。 总结一下,要将Django应用部署到Lighttpd服务器,你需要: 1. 确保`mod_...

Global site tag (gtag.js) - Google Analytics