Linux下安装Apache并以mod_wsgi方式部署django站点

时间:2023-02-13 18:54:45

源码编译方式安装Apache

首先下载Apache源码压缩包,地址为http://mirror.bit.edu.cn/apache/httpd/

继续下载apr和apr-util压缩包,地址为http://mirror.bit.edu.cn/apache/apr/

下载pcre压缩包,地址为http://ftp.exim.llorien.org/pcre/

l 安装arp

tar -zxf apr-1.5.0.tar.gz #解压压缩包 压缩包名称根据版本号决定
cd apr-1.5.0 #进入解压目录
./configure --prefix=/usr/local/apr #进行安装配置 设置安装位置
make #编译
sudo make install #安装

l 安装apr-util

tar –zxvf apr-util-1.5.3.tar.gz #解压 压缩包名称根据版本号决定
cd apr-util-1.5.3 #进入解压目录
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config
make
sudo make install

l 安装pcre

unzip –o pcre-8.34.zip #解压 文件名依据版本号而定
cd pcre-8.34
./configure --prefix=/usr/local/pcre
make
sudo make install

l 安装Apache

tar –zxvf httpd-2.4.7.tar.gz #解压 我安装的为2.4.7版本
cd httpd-2.4.7
./configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util/
make
sudo make install

之后启动Apache,

cd /usr/local/apache2/bin

sudo apachectl –k start
或者
sudo service apache2 start

如果看到如下页面,说明安装成功。

Linux下安装Apache并以mod_wsgi方式部署django站点

如何控制Apache服务

启动:

sudo service apache2 start
或者
sudo apachectl start

停止:

sudo service apache2 stop
或者
sudo apachectl stop

重启:

sudo service apache2 restart
或者
sudo apachectl restart

重新加载站点:

sudo service apache2 reload

如何使Apache支持django

采用mod_wsgi的方式。

首先需要下载mod_wsgi-2.4.tar.gz。

可以到官网下载。

还可以到点这里直接下载。

接下来执行如下命令,对压缩包进行解压;

tar –zxvf mod_wsgi-3.4.tar.gz

然后cd到解压之后的目录,执行如下命令,产生配置编译配置文件;

./configure --with-apxs=/usr/local/apache2/bin/apxs --with-python=/usr/bin/python

其中/usr/local/apache2为Apache的安装目录,确保apxs存在于bin目录中,/usr/bin/python为Ubuntu中python默认安装位置。

接下来执行make 命令,进行编译;

make

最后执行如下命令,进行安装;

sudo make install

如果到这里都顺利的话,会提示“chmod 755 /usr/local/apache2/modules/mod_wsgi.so” 为mod_wsgi.so赋权。如图:

Linux下安装Apache并以mod_wsgi方式部署django站点

照着提示输入命令即可:

chmod 755 /usr/local/apache2/modules/mod_wsgi.so

接下来,安装Django:

django官网(https://www.djangoproject.com/download/)上提供了两种安装方式。

l pip方式

pip install Django==1.6.2

l 直接下载压缩包安装,下载地址https://www.djangoproject.com/download/1.6.2/tarball/

tar xzvf Django-1.6.2.tar.gz   #先解压cd Django-1.6.2 #进入解压后目录
sudo python setup.py install

上面两种方式任选一种即可。

安装完成后可以在终端窗口中查看是否安装成功

Linux下安装Apache并以mod_wsgi方式部署django站点

我安装的是django 1.7版本。

如何新建一个django网站

Apache的默认www服务地址为/var/www,刚刚安装好服务后,里面只有一个index.html的网页文件。

接着说一下Apache,由于Apache在Linux下安装后,安装文件是分两部分存在的,一部分在安装时指定的目录中,另一部分在/etc/apache2目录中。

由于我安装Apache时,指定的目录是/usr/local/apache2,所以我的机器上apache分布在如下两个目录,即:

/usr/local/apache2   #可执行程序目录

/etc/apache2         #配置文件目录

进入/etc/apache2目录,查看目录结构,其中蓝色为目录,白色为文件。

Linux下安装Apache并以mod_wsgi方式部署django站点

httpd.conf 文件通常是一个空文件,以后设置时可以加入以下指令;

下面我们来看一下httpd.conf中的几条指令,“#”后加入了注释说明;
Port 80  #定义了web服务器的侦听端口,默认值为80,它是TCP网络端口之一。若写入多个端口,以最后一个为准。

User apache(Unix平台最流行的WEB服务器平台)  #一般情况下,以nobody用户和nobody组来运行web服务器,因为web

Group apache(Unix平台最流行的WEB服务器平台)   #服务器发出的所有的进程都是以root用户身份运行的,存在安全风险。

ServerAdmin root@localhost  #指定服务器管理员的E-mail地址。服务器自动将错误报告到该地址。

ServerRoot /etc/httpd    #服务器的根目录,一般情况下,所有的配置文件在该目录下

ServerName new.host.name:80  #web客户搜索的主机名称

KeepAliveTimeout 15  #规定了连续请求之间等待15秒,若超过,则重新建立一条新的TCP连接

MaxKeepAliveRequests 100   #永久连接的HTTP请求数

MaxClients 150   #同一时间连接到服务器上的客户机总数

ErrorLog logs/error_log   #用来指定错误日志文件的名称和路径

PidFile run/httpd.pid   #用来存放httpd进程号,以方便停止服务器。

Timeout 300  #设置请求超时时间,若网速较慢则应把值设大。

DocumentRoot /var/www/   #用来存放网页文件

magic文件中包含的是有关mod_mime_magic模块的数据, 一般不需要修改它;

ports.conf则为服务器监听IP和端口设置的配置文件;

mods-available目 录下是一些.conf和.load 文件, 为系统中可以使用的加载各种模块的配置文件, 而mods-enabled目录下则是指向这些配置文件的符号连接, 从配置文件apache(Unix平台最流行的WEB服务器平台)2.conf 中可以看出, 系统通过mods-enabled目录来加载模块, 也就是说, 系统仅通过在此目录下创建了符号连接的mods-available 目录下的配置文件来加载模块。同时系统还提供了两个命令 a2enmod 和 a2dismod用于维护这些符号连接。这两个命令由 apache(Unix平台最流行的WEB服务器平台)2-common 包提供。命令各式也非常简单: a2enmod [module] 或 a2dismod [module];

sites-available目 录下为配置好的站点的配置文件, sites-enabled 目录下则是指向这些配置文件的符号连接, 系统通过这些符号连接来起用站点 sites-enabled目录下的符号连接附有一个数字前缀, 如000-default, 这个数字用于决定启动顺序, 数字越小, 启动优先级越高. 系统提供了两个命令 a2ensite 和 a2dissite 用于维护这些符号连接。这两个命令由 apache(Unix平台最流行的WEB服务器平台)2-common 包提供;

Apache配置介绍到这里,接下来开始配置Django网站。

Apache默认的服务器地址为var/www目录,没有必要修改此位置,cd到/var/www目录,新建Django项目,执行如下命令:

sudo django-admin.py startproject mysite

创建的项目目录结构如下

mysite/

manage.py

mysite/ __init__.py

settings.py

urls.py

wsgi.py

可以通过

python manage.py runserver 8000

测试django项目是否创建成功。如果提示错误,可能是由于django默认使用sqllite数据库的原因,只要在mange.py同级目录中添加db.sqllite3即可。

之后,我打算将mysite这个站点,在端口8888下运行。

修改/etc/apache2/ports.conf ,在其中的

NameVirtualHost *:80
Listen 80

下面添加

NameVirtualHost *:8888
Listen 8888

表示VirtualHost *:8888的虚拟主机监听8888端口,而默认的VirtualHost *:80的虚拟主机监听80端口。

接下来让apache来加载我们自己的工程网站,去apache的配置目录/etc/apache/sites-available, 新建一个我们网站的配置文件。

sudo vim mysite

添加如下配置:

<VirtualHost *:8888>
DocumentRoot /var/www/mysite/mysite
<Directory /var/www/mysite/mysite>
Order allow,deny
Allow from all
</Directory> WSGIScriptAlias / /var/www/mysite/mysite/wsgi.py</VirtualHost>

在/etc/apache2/httpd.conf添加如下配置:

<VirtualHost *:8888>
DocumentRoot /var/www/mysite/mysite
<Directory /var/www/mysite/mysite>
Order allow,deny
Allow from all
</Directory> WSGIScriptAlias / /var/www/mysite/mysite/wsgi.py</VirtualHost>

最后在/var/www/mysite/mysite/wsgi.py中添加如下代码:

import sys
sys.path.append("/var/www/mysite/")

将网站目录添加到环境变量,如果网站目录不再环境变量中,会出现错误。

激活我新建的mysite网站,执行如下命令:

sudo a2ensite mysite #其中mysite就是sites-available中新建的那个配置文件的名称

重新加载网站:

sudo service apache2 reload

之后执行

sudo service apache2 restart

重启apache服务。

在浏览器打开127.0.0.1:8888,会看到如下页面:

Linux下安装Apache并以mod_wsgi方式部署django站点

注:如果不想新建网站配置文件,可直接在etc/apache2/httpd.conf中添加配加默认配置即可:

WSGIScriptAlias / "/ var/www/mysite/mysite/wsgi.py"
<Directory " /var/www/mysite/mysite">
Order Deny,Allow
Allow from all
</Directory>

初次配置,如有错误及疏漏之处,还请各位看官提醒、指点,或者有任何问题也可留言说明。

Linux下安装Apache并以mod_wsgi方式部署django站点的更多相关文章

  1. linux下安装apache详解

    下载httpd-2.2.6.tar.bz2  把httpd-2.2.6.tar.bz2放到/soft 下[root@localhost ~]#cd /soft[root@localhost soft] ...

  2. linux下安装apache环境

    Centos6.5  64位下安装apache php mysql(安装包版本一定要正确,网上很多都不准,不要用32位的安装包装再64位上,后期有很多问题,下载安装后一定要检出版本,有的网友操蛋,把3 ...

  3. linux下安装apache与php&semi;Apache&plus;PHP&plus;MySQL配置攻略

    1.apache   在如下页面下载apache的for Linux 的源码包    http://www.apache.org/dist/httpd/;   存至/home/xx目录,xx是自建文件 ...

  4. linux下安装Apache&lpar;https&rpar; 服务器证书安装配置指南

    一.  安装准备 1.    安装Openssl 要使Apache支持SSL,需要首先安装Openssl支持.推荐下载安装openssl-0.9.8k.tar.gz   下载Openssl:http: ...

  5. linux下安装apache与php

    http://www.92csz.com/study/linux/16.htm 1.apache 在如下页面下载apache的for Linux 的源码包 http://www.apache.org/ ...

  6. Linux下安装APache

    1:在图形界面下下载apache 安装包,我下的是 httpd-2.2.9.tar.gz 源码安装包,地址是http://httpd.apache.org/download.cgi 2:用:gzip ...

  7. linux 下安装apache 快速教程

    最近自学linux,看鸟哥的文章.提到了apache,所以在虚拟机redhat 5下安装了一把, 结合国内外文章写下快速可行的教程: --------------------------------- ...

  8. linux下安装apache(httpd-2&period;4&period;3版本)各种坑

    博主的linux是ubuntu 14.04.3. 在安装apache最新版httpd-2.4.3的时候遇到各种坑. 先提供安装apache httpd-2.4.3所需要的包,博主已经整理好,下载地址: ...

  9. linux下安装apache和php和mysql

    我的系统环境时ubuntu 18.04.3,为了ROS: 首先:安装下面一堆软件包: sudo apt install nginx nginx-doc fcgiwrap sudo apt instal ...

随机推荐

  1. http

    HTTP是一个属于应用层的面向对象的协议,由于其简单.快速的方式,适用于分布式超媒体信息系统, 特点: 1.支持客户/服务器模式. 2.简单快速:客户向服务器请求服务时,只需传送请求方法和路径.请求方 ...

  2. 第24天 runtime

    面试时被问到一个问题,如何实现weak变量的自动置nil?当时也不知道. 今天在实现target-action模式时,如何调用SEL,刚开始只会PerformSelector,但不能传递多个参数,后来 ...

  3. 外部引用JavaScript文件乱码问题

    使用js外部文件输出中文乱码解决: 将js文件编码改为和页面的编码相同.

  4. SQL 范式(转载)

    装载于"http://www.cnblogs.com/KissKnife/ 理论性的东西,往往容易把人人都看得懂的东西写成连鬼都看不懂,近似于主任医生开的药方.从前学范式的时候,把书中得概念 ...

  5. Request、Response

    Request Request对象在我们写爬虫发送请求的时候调用,参数如下: url: 就是需要请求的url callback: 指定该请求返回的Response由那个函数来处理. method: 请 ...

  6. 非阻塞I&sol;O事件驱动

    在 Java.PHP 或者.net 等服务器端语言中,会为每一个客户端连接创建一个新的线程.而每个线程需要耗费大约 2MB 内存.也就是说,理论上,一个 8GB 内存的服务器可以同时连接的最大用户数为 ...

  7. Yahoo Programming Contest 2019 D - Ears

    D - Ears 思路: s:起点           t:终点           l:左端点           r:右端点 以上称为关键点 dp[i][j]表示到位置 i 为止,已经经过前 j ...

  8. JavaScript创建对象的6种方式

    JavaScript创建对象简单的说,无非就是使用内置对象(Object)或各种自定义对象,当然还可以用JSON,但写法有很多种,也能混合使用. 1.对象字面量的方式 person = {name : ...

  9. 关于limit&lowbar;req和limit&lowbar;conn的区别

    1,首先,limit_req和limit_conn两个模块都是为了来限流的,但是两者不在一个层面,为了搞清楚这个,必须先要弄清楚request和connection的区别,因为在很多情况下,我们把他们 ...

  10. BI失败的原因

    最最重要的, 要有个清晰的目标和范围. 有些客户, 完全脑袋一热开始上BI, 连根本上要BI来解决什么问题都不知道.作为企业的CIO, 首先要知道上BI项目是不是符合企业的战略目标, 是不是能给企业带 ...