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下,

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

反正都统统在一块了!

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

[email protected]:/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 为执行文件

[email protected]:/tmp# ls /usr/lib/apache2    为模块目录,以后的wsgi.so就会生成到这
modules 
[email protected]:/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/  欢迎访问

时间: 2024-10-24 00:03:20

Apache+Django++mod_wsgi(ubuntu下虚拟机方式部署过程)的相关文章

linux下smb打印服务器部署过程(对windows终端)

一. 需求 用户需求:员工需要打印多种资料.标书.凭证.打印需求很大.建立稳健的打印服务系统,以方便员工打印.复印.扫描. 细化需求: 1.部署一台装有开源系统的打印服务器: 2.高可用性.可靠性: 3.方便安装,在windows端感受不到平台差异: 4.打印机以windows计算机名为用户名,能记录打印作业的发送者.文档名.大小.提交时间,方便在出现打印故障时找到问题电脑快速修复: 5.不能接收扫描文档: 6.能兼容xp.win7的32.64位系统. 二.部署过程 1.安装RHEL6.3时,选

在ubuntu下使用gunicorn部署django程序

只是记录一下,网上教程很多: 1.修改nginx配置文件 server { listen 80 default_server; listen [::]:80 default_server ipv6only=on; root /home/ranvane/gwdj; index index.html index.htm; # Make site accessible from http://localhost/ server_name localhost;      access_log  /hom

Ubuntu下用crontab 部署定时任务

用php做了一个网站,其中一个统计工能,需要每周定时用行.想看看有什么方法,之前看别人的东西,一般有2中方式,一个是php自带的定时任务,一个是用系统 带的,linux下的crontab和windows下的定时任务. 之前用了php自带的定时任务工能,发现实现起来很简单,中间也没出现很多问题,同时做的时候对  ob_flush()  和 flush() 等函数不是很熟,后来又看了相关的一些文章, 对其中的东西有了深入的了解.但是后来发现php定时任务开启后,貌似不能停止,不需要重启服务器才行.不

ubuntu下使用nginx部署Laravel

问题描述 Laravel是PHP下当今最受欢迎的web应用开发框架,github上start数远超第二名Symfony,以前我用这个框架做项目的时候通常就是扔到apache里面,然后配置.htaccess文件移除路由里面的public字样,达到Pretty URLs效果,这这两天在完善各个版本的微信墙,准备部署在azure上,结果发现以前装的是nginx,mysql这样的环境,于是乎花了一点时间研究了一下如何部署,便就有了这篇文章,废话少说,上干货: 配置环境 sudo apt-get inst

ubuntu下安装配置部署zabbix3.0——基于docker

一.系统配置 Ubuntu 16.04 LTS dockers  1.11.2 Mariadb 二.安装docker(apt方式+curl方式) 1.apt方式安装 1.1.安装https证书: $ sudo apt-get update $ sudo apt-get install apt-transport-https ca-certificates 1.2.安装docker 官方apt源公钥: $ sudo apt-key adv --keyserver hkp://p80.pool.sk

Window+Apache+Django+mod_wsgi静态文件处理

例子:已经配置好了Apache可以访问D:\WebRoot\DjangoProject\mysite工程,想要把其他目录的django工程中的app加入到该工程中. 如果直接把app拷贝过去的话,Apache无法向Django一样直接找到static目录 解决办法: 1 把其他工程中所有app的静态问价收集到一个static文件夹中,再把这个文件夹拷贝到mysite工程目录. 在test\settings.py中添加: STATIC_ROOT = BASE_DIR + os.sep + 'sta

Ubuntu下apt方式安装与更新Git

本人使用的系统 Ubuntu 18.04.1 ,使用apt安装Git: sudo apt insatll git 安装后发现不是最新的版本,更新方法: sudo add-apt-repository ppa:git-core/ppa sudo apt update sudo apt upgrade 原文地址:https://www.cnblogs.com/xgo0104/p/10247656.html

virt-v2v &nbsp; UBUNTU下安装方式

git clone https://git.fedorahosted.org/git/virt-v2v.git   ##建议直接手动下载,这样CLONE不下来,下载完后解压 sudo apt-get install dh-autoreconf sudo apt-get install libguestfs-tools sudo apt-get install libxml-dom-perl libxml-xpath-perl libxml-dom-xpath-perl \ libterm-pro

Windows下NodeJS+Express部署过程

1. 下载Node.js官方Windows版程序: 下载地址:http://nodejs.org/#download 进入页面后选择Download,然后选在Windows Installer,32位或者64位按自己配置来选择. 2. 下载完成后双击安装,这里暂定我是安装到E:\NodeJs\目录下面. 安装完成后运行Node.Js Command Prompt,在Prompt窗口中输入 node -v,安装正确的话会输出当前Node.Js的版本号. 这里可以编写一个测试程序来测试Node.js