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

2021-07-08 15:05

阅读:724

标签:虚拟   控制   share   har   one   include   更改   ports   exe   

前几天以源码的方式部署了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    (如果你还有音、视频的,请再加相关的目录)


Options Indexes FollowSymLinks ExecCGI
AllowOverride none
Require all granted
  
    Require all granted
  



Options Indexes FollowSymLinks
AllowOverride None
Require all granted
  
    Require all granted
  



Options Indexes FollowSymLinks
AllowOverride None
Require all granted
  
  Require all granted
  

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

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

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

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

 

 

目前我存在的问题如下:

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

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

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

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

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

 

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

标签:虚拟   控制   share   har   one   include   更改   ports   exe   

原文地址:http://www.cnblogs.com/if-then/p/7073082.html


评论


亲,登录后才可以留言!