网站首页Python相关

django1.8部署到apache2.2

发布时间:2016-08-19编辑:阿超阅读(1559

    记录一下将django1.8的项目部署到centos7,httpd2.2上面的过程

    -----------------------------------------------------

    1:卸载系统自带的httpd服务

    #rpm -e httpd --nodeps

    2:下载apache-httpd服务:

    #wget http://apache.cs.utah.edu//httpd/httpd-2.2.31.tar.gz

    3:解压并编译安装:

    #tar -xzvf httpd-2.2.31

    #cd httpd-2.2.31

    #./configure --prefix=/usr/local/apache2 --enable-rewrite --enable-so

    #make && make install

    4:启动httpd服务:

    #/usr/local/apache2/bin/apachectl start

    可将apache2目录添加到环境变量里边,那样可直接使用apachectl命令

    在/etc/profile里面添加如下内容:

        export HTTPD_HOME=/usr/local/apache2

        export PATH=$PATH:$HTTPD_HOME/bin

    保存之后:

    #source /etc/profile

    5:验证是否安装完毕

    登录127.0.0.1,如果出现it works,则表示成功.

    --------------------------------------------------------

    1:下载并编译mod_wsgi模块:

    #wget http://modwsgi.googlecode.com/files/mod_wsgi-3.3.tar.gz

    #tar -xzvf mod_wsgi-3.3.tar.gz

    #cd mod_wsgi*****

    #./configure --with-apxs=/usr/local/apache2/bin/apxs \

    --with-python=/usr/local/bin/python2.7(pyton路径,可能需要自己编译,后面会讲到)

    #make && make install

    注意:如果这里出现****[mod_wsgi.la]****错误,则需要下载python2.7的源代码并重新编译,编译时添加--enable-shared。

    https://www.python.org/ftp/python/2.7.10/Python-2.7.10.tgz

    以上是下载python27的网址。

    解压后编译时:

    #./configure --enable-shared

    #make && make install

    然后删除原先python路径,建立软链接:

    #mv /usr/bin/python /usr/bin/python.bak(防止出错可以恢复)

    #ln -s /usr/local/python27/bin/python(新编译的python路径)  /usr/bin/python

    ---------------------------------------------------------------

    配置apache-httpd服务:

    1:修改httpd.conf配置文件:

    #vim /usr/local/apache2/conf/httpd.conf

    添加如下两行:    

    LoadModule wsgi_module modules/mod_wsgi.so

    WSGIPythonPath /home/mysite:/usr/lib/python2.7/site-packages/

    红色部分为你django项目的目录,一定要添加,不然会报错。

    如果有多个项目,可用:连接。

    具体配置可看官网网站详解:https://docs.djangoproject.com/en/1.8/howto/deployment/wsgi/modwsgi/#using-a-virtualenv

    2:将Include conf/extra/httpd-vhosts.conf前面的注释#去掉,启动虚拟主机服务.

    3:修改虚拟主机文件:

    #vim /usr/local/apache2/conf/extra/httpd-vhosts.conf 

    配置如下:

    $path为你放项目的路径,如:/home/fangc/workspace

    <VirtualHost *:80>

            ServerName www.fangc.xyz:80

            DocumentRoot "$path/mysite" #项目路径

            WSGIScriptAlias / "$path/mysite/mysite/wsgi.py"

            Alias /static "$path/mysite/static/" #静态文件地址

            <Directory "$path/mysite/static/">

                 Order Deny,Allow

                 Allow from all

            </Directory>

            Alias /media "$path/mysite/media" #媒体文件地址

            <Directory "$path/mysite/media">

                      Order deny,allow

                      Allow from all

             </Directory>

             <Directory "$path/mysite/fangc">

                       Order deny,allow

                  Allow from all

             </Directory>

             <Directory "$path/">

                    Order Deny,Allow

                   Allow from all

             </Directory>

             ErrorLog   "/var/logs/fangc.error.log" #错误日志文件地址

            LogLevel warn #输出日志的等级

    </VirtualHost>

    -------------------------------------------------------------

    如果多个项目用同一个mod_wsgi,修改项目文件里面$path/mysite/mysite/wsgi.py

    可以将:

    os.environ.setdefault("DJANGO_SETTINGS_MODULE", "{{ project_name }}.settings")

    修改为:

    os.environ["DJANGO_SETTINGS_MODULE"] = "{{ project_name }}.settings"

    可以看文档:https://docs.djangoproject.com/en/1.8/howto/deployment/wsgi/modwsgi/#basic-configuration

    ------------------------------------------------------------------

    重启apache服务:

    #apachectl restart