• Apache+Django++mod_wsgi(ubuntu下虚拟机方式部署过程)


    前几天以源码的方式部署了Apache+mod_wsgi+django的项目,见我的另一个篇博客

    这几天也用apt-get方式安装Apache的方式,安装了部署了一次,其中有一致的地方,也有差别的地方,再此记录一下

    环境ubuntu 16.04 +apache2.4.25 +django1.8+mod_wsgi-4.5.15+python2.7

    Apache、Python2.7都是以apt-get install的方式安装的

    django1.8 是pip install django==1.8的方式安装的

    mod_wsgi-4.5.15 是需要下载源码编译安装

    Apache源码与apt方式安装的区别就是目录结构不一样,配置文件加载方式不一样,源码的方式,所有的东西在一块,配置文件就主要是httpd.conf,启动程序就在bin下,

    john@UBT:/usr/local/apache24$ ls
    bin    cgi-bin  error   icons    logs  manual
    build  conf     htdocs  include  man   modules
    john@UBT:/usr/local/apache24$
    john@UBT:/usr/local/apache24$ tree -L 1
    .
    ├── bin      ------------------程序目录
    ├── build           
    ├── cgi-bin        
    ├── conf                  -------------配置文件目录,主要是httpd.conf
    ├── error         
    ├── htdocs
    ├── icons
    ├── include
    ├── logs               -------------------日志目录
    ├── man
    ├── manual
    └── modules        ------------------模块目录

    反正都统统在一块了!

    而apt方式的,就分布到各个目录下了

    root@i:/tmp# whereis apache2
    apache2: /usr/sbin/apache2  /usr/lib/apache2  /etc/apache2  /usr/include/apache2  /usr/share/apache2  /usr/share/man/man8/apache2.8.gz
    /usr/sbin/apache2 与/usr/sbin/apache2ctl 为执行文件

    root@i:/tmp# ls /usr/lib/apache2    为模块目录,以后的wsgi.so就会生成到这
    modules 
    root@i:/tmp# ls /etc/apache2   ---主目录,主要配置都在这
    apache2.conf    conf-enabled  magic           mods-enabled  sites-available
    conf-available  envvars       mods-available  ports.conf    sites-enabled

     ls /usr/share/apache2    一些其他的文件在这
    apache2-maintscript-helper  ask-for-passphrase  build  default-site  error  icons

    还有就是项目目录 /var/www/html   这里面就一个index.html

    日志目录就在/var/log/apache2/  下,访问日志和错误日志都在这

    第一步,将项目放到服务器上面,我为了方便就放到/var/www/下面,我的项目是mysit

    然后更改wsgi.py 文件,需要加一个项目路径,sys.path.append("/var/www/mysit")

    第二步,更改apache配置文件

    需要做2个工作,一个是安装mod_wsgi,源码安装,安装的时候要满足安装条件,需要apache-dev,可以参考官方安装说明

    满足条件了就安装就可以了,命令就是 ./coungure  make make install  这3步,安装完后,看看/usr/lib/apache2/modules 目录里有了wsgi.so了吧!

    然后加配置文件 /etc/apache2/mods-available目录下建立加载模块的配置文件

     wsgi.load

    #如下一行
    LoadModule wsgi_module /usr/lib/apache2/modules/mod_wsgi.so

    然后使用a2enmod命令,就能看到wsgi模块。输入名字后就启用了

    再修改/etc/apache2/sites-enabled/000-default.conf   (我就用这个默认的了,也可以自己建立一个,格式一样就可以了)

    加入

    DocumentRoot /var/www/mysit
    WSGIScriptAlias / /var/www/mysit/mysit/wsgi.py

     Alias /static /var/www/mysit/static    (如果你还有音、视频的,请再加相关的目录)

    <Directory /mysit/>
    Options Indexes FollowSymLinks ExecCGI
    AllowOverride none
    Require all granted
      <Files wsgi.py>
        Require all granted
      </Files>
    </Directory>
    <Directory /static/>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
      <Files *.jpg>
        Require all granted
      </Files>
    </Directory>
    <Directory /static/style/>
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
      <Files pkq.gif>
      Require all granted
      </Files>
    </Directory>

    这里就加一些目录访问权限

    然后用a2ensite 命令,启用 000-。。。。。。这个site就行了

    然后将80端口的访问权限开开,那么启动apache服务后,访问就可以了!

    envvars 配置系统环境变量的相关参数

    目前我存在的问题如下:

    admin页面登录退出等写数据库操作,系统会报异常,网上米有找到将admin发布的帖子

    setting 配置debug=false ,外部访问不了!

    apache服务日志每天早上6:25:01时会将日志压缩打包,碰巧的是Apache服务在这时会做一个重启,但是哪里控制打包日志的,我没找到,也不确定重启是不是系统做的

    以上问题如果有高手知道,望指点一下,谢谢

    我的项目有半年时间,网站是http://60.205.221.253/  欢迎访问

  • 相关阅读:
    Verilog之阻塞赋值非阻塞赋值
    Verilog之case语句
    Verilog 分频器
    kvm虚拟化存储管理(3)
    kvm虚拟机管理(2)
    Kvm 虚拟化介绍(1)
    云计算 大数据 人工智能
    openstack核心组件——cinder存储服务(11)
    openstack核心组件——horizon Web管理界面(10)
    openstack核心组件——neutron网络服务 抓取ip(9)
  • 原文地址:https://www.cnblogs.com/if-then/p/7073082.html
Copyright © 2020-2023  润新知