阿里云-云小站(无限量代金券发放中)
【腾讯云】云服务器、云数据库、COS、CDN、短信等热卖云产品特惠抢购

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

206次阅读
没有评论

共计 5078 个字符,预计需要花费 13 分钟才能阅读完成。

源码编译方式安装 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。

可以到 官网 下载。

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

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

tarzxvf 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>


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

本文永久更新链接地址 :http://www.linuxidc.com/Linux/2017-03/142211.htm

正文完
星哥说事-微信公众号
post-qrcode
 0
星锅
版权声明:本站原创文章,由 星锅 于2022-01-21发表,共计5078字。
转载说明:除特殊说明外本站文章皆由CC-4.0协议发布,转载请注明出处。
【腾讯云】推广者专属福利,新客户无门槛领取总价值高达2860元代金券,每种代金券限量500张,先到先得。
阿里云-最新活动爆款每日限量供应
评论(没有评论)
验证码
【腾讯云】云服务器、云数据库、COS、CDN、短信等云产品特惠热卖中