@网络老鼠技术小屋

网络老鼠技术小屋-涂飞平的博客空间

分享Apache Httpd的安装过程

3 年前 0

由于之前对于apache web服务器版本不是很在意,所以都是apt-get方式安装apache httpd服务的,昨天突然接到清华图书馆D老师的邮件,需要在其服务器上面安装最新的apache httpd 2.4.9版本,且系统是CentOS。
在安装的过程中,碰到一系列问题,并逐一解决,以下列举安装详细步骤
1、lynx出现问题
lynx http://httpd.apache.org/download.cgi
进入指定链接后,发现一直是Sent Request,Await Response,没有办法,只能自己下载apache httpd的源码,然后上传到服务器;
2、APR依赖问题
解压,
./configure
后发现需要APR依赖,由于lynx无效,直接上http://apr.apache.org/download.cgi下载apr和apr-util两个源码包,上传到服务器,然后进入各自解压目录分别运行
./configure --prefix=/usr/local/apr && make && make install
./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr/bin/apr-1-config && make && make install
我个人比较喜欢把各种软件安装在 /usr/local/软件名 目录下面
3、需要C/C++编译器
如果make失败,提示需要c或者c++编译器,这里一起都安装了
yum -y install gcc gcc+ gcc-c++
4、PCRE库依赖
这个依赖很重要,没有他,Apache的那些路径配置的正则规则就不能使用了 :-)
在 http://ftp.exim.llorien.org/pcre/pcre-8.35.tar.gz 下载最新版本的PCRE库(不大,才2.13MB),解压,进入解压后的目录运行
./configure --prefix=/usr/local/pcre
make && make install
5、编译安装httpd
所有依赖和环境都配置好了,可以编译安装httpd了,其实之前步骤都是在进行编译安装httpd的时候报出各种错误,然后再处理的,这里就按照顺序来描述吧。注意生成Makefile的时候,需要将之前我们安装依赖的路径作为参数传入,以便生成的Makefile有这些信息,之后的make才能让编译器正常找到这些库的静态/动态库资源。进入目录,运行
/configure --prefix=/usr/local/apache2 --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre
make && make install
我把httpd安装在/usr/local/apache2目录下面
然后启动服务:
/usr/local/apache2/bin/apachectl start
访问:
wget http://localhost
提示保存为index.html了,查看其内容
vi index.html
-----------------------------------

It works!

-----------------------------------
说明安装正确,再看看版本:
/usr/local/apache2/bin/apachectl -V
httpd.png
可以自己加入到/etc/rc.d/rc.local中以便服务在机器开启时启动。

------------------------华丽的分隔符-------------------------

Apache + WSGI 运行Bottle

由于要运行python的web程序(采用bottle),所以,需要加入wsgi的支持。

1、设置apxs
安装mod_wsgi,其实就是编译apache的一个插件(模块module),所以这里应该将apxs设置到PATH中,因为我们采用源码编译方式安装apache,所以apxs已经在/usr/local/apache2/bin中了,运行
export PATH=$PATH:/usr/local/apache2/bin
将路径加入到PATH中即可

2、下载编译mod_wsgi
下载mod_wsgi(这里挑最新版本下载)
wget https://github.com/GrahamDumpleton/mod_wsgi/archive/4.2.4.zip -O mod_wsgi.zip
然后解压
unzip mod_wsgi.zip
由于编译mod_wsgi需要python头文件(C语言)支持,所以这里先安装python开发环境
yum install python-devel
现在可以编译mod_wsgi了
./configure
make && make install
编译后会提示,mod_wsgi.so已经安装到apache2/module里面,并设置好权限了
pic1.png
查看一下是否真的安装成功。
pic2.png
3、配置mod_wsgi
停止apache2,然后编辑/usr/local/apache2/conf/httpd.conf文件
加入以下所示内容
pic3.png
并在最后一行加入以下内容:
pic4.png
4、查看是否成功
将bottle_test.py文件拷贝到/usr/local/apache2/htdocs目录下面
重启apache2,然后在浏览器输入
http://166.111.120.114/test
如果看到如下界面,说明成功了!
pic5.png

我这里bottle_test.py内容:
#!/usr/bin/env python

def application(environ, start_response):
status = '200 OK'
output = 'Hello World!'
response_headers = [('Content-type', 'text/plain'),('Content-Length', str(len(output)))]
start_response(status, response_headers)
return [output]

编写评论