共计 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
如果看到如下页面,说明安装成功。
如何控制 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 赋权。如图:
照着提示输入命令即可:
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
上面两种方式任选一种即可。
安装完成后可以在终端窗口中查看是否安装成功
我安装的是 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 目录,查看目录结构,其中蓝色为目录,白色为文件。
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,会看到如下页面:
注:如果不想新建网站配置文件,可直接在 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