(1).Apache安装
首先要安装APR、APR-Util和PCRE。安装之前,来看下怎么下载它们。先来看下APR与APR-Util的下载,大家可以去http://apr.apache.org进行下载,看下面两张图:
-
再来看下怎么下载PCRE。大家可以去http://www.pcre.org进行下载,看下面四张图:
-
将下载的3个压缩包上传到你的Linux系统中去。我上传到了我Linux系统下/mysoft目录中。进入这个目录:cd /mysoft。我们先解包APR,并查看/mysoft目录下的文件,依次执行命令:
gzip -d apr-1.5.2.tar.gz
tar -xf apr-1.5.2.tar
ls -l
可以看到/mysoft目录下多了一个目录apr-1.5.2。
-
进入apr-1.5.2目录:cd ./apr-1.5.2/。然后,进行APR的源码安装,依次执行命令:
./configure
make
make install
安装完成后,我们可以在make install过程中看到如下图所示信息,我们可以看到APR的安装路径/usr/local/apr。当然,你也可以使用 --prefix=目录 选项来指定一个安装目录。
-
接着,我们来解包APR-Util,并查看/mysoft目录下的文件,依次执行命令:
gzip -d apr-util-1.5.4.tar.gz
tar -xf apr-util-1.5.4.tar
ls -l
可以看到/mysoft目录下多了一个目录apr-util-1.5.4。
-
进入apr-util-1.5.4目录:cd ./apr-util-1.5.4/。然后,进行APR-Util的源码安装,依次执行命令:
./configure --with-apr=/usr/local/apr
make
make install
在安装APR-Util时,需要指定APR的安装路径,所以需要带上选项--with-apr=/usr/local/apr,如果你不带上这个选项,在configure的时候会看到下图的错误提示。
-
下面,我们来安装PCRE。首先,解包PCRE,并查看/mysoft目录下的文件,依次执行命令:
gzip -d pcre-8.36.tar.gz
tar -xf pcre-8.36.tar
ls -l
可以看到/mysoft目录下多了一个目录pcre-8.36。
-
进入pcre-8.36目录:cd ./pcre-8.36/。然后,进行pcre-8.36源码安装,但是,当你在执行./configure时,会看到下图所示提示:
configure: error: You need a C++ compiler for C++ support
不用担心,yum又派上用场了,执行命令:yum install -y gcc gcc-c++ 。
gcc-c++安装完成后,我们继续我们的pcre-8.36源码安装,依次执行命令:
./configure
make
make install
至此,准备工作就绪,开始准备安装Apache Server2.4,首先,来看下怎么下载Apache2.4,我们可以去http://httpd.apache.org进行下载,看下图。
-
解包httpd,并查看/mysoft目录下的文件,依次执行命令:
gzip -d httpd-2.4.17.tar.gz
tar -xf httpd-2.4.17.tar
ls -l
可以看到/mysoft目录下多了一个目录httpd-2.4.17。
-
进入httpd-2.4.17目录:cd ./httpd-2.4.17/。然后,进行Apache源码安装,依次执行命令:
./configure --enable-mods-shared=all
make
make install
Apache默认安装在/usr/local/apache2目录下。同样,这里你也可以使用
--prefix=目录名
来指定一个安装目录,例如:
./configure --prefix=/usr/mydir --enable-mods-shared=all
-
Apache已经安装成功,现在启动httpd服务。执行命令:
/usr/local/apache2/bin/apachectl -k start。
大家会发现,httpd服务并没有启动,而是出现了一条如下图所示的错误信息:
AH00558: httpd: Could not reliably determine the server's fully qualified domain name, using localhost.localdomain. Set the 'ServerName' directive globally to suppress this message
-
出现上述错误信息,是因为配置文件httpd.conf中的ServerName没有修改。
我们用Vim打开httpd.conf配置文件,执行命令:
vi /usr/local/apache2/conf/httpd.conf
设置Vim在执行搜索时不区分大小写,执行命令:
:set ic
搜索"servername"字符串,执行命令:
/servername
找到servername后,按A键进行编辑。将ServerName前的#号去掉,将ServerName后面的字符串改为:localhost:80,如下图所示。
修改完成后,按Esc键由编辑模式切换到命令模式,然后执行保存退出命令:
:wq
-
在启动httpd之前,我们先为其创建一个软链接(相当于windows下的快捷方式),否则每次重启Apache都要输那么一长串,很费劲。
为httpd创建软链接,并查看一下软链接是否创建成功,依次执行命令:
ln -s /usr/local/apache2/bin/apachectl /mylinks/httpd。
ls -l /mylinks
来吧,启动httpd服务,执行命令:/mylinks/httpd -k start
-
在测试Apache是否已经正常工作之前,我们先看下防火墙的状态:
systemctl status firewalld
如果处于running运行状态,就把它关掉:
systemctl stop firewalld
然后,查看一下防火墙是否已经关掉:
systemctl status firewalld
如果处于dead状态,就说明已经关掉了。
如果你希望每次系统启动的时候都不要启动防火墙,可以执行命令:
systemctl disable firewalld
同样,如果你希望每次系统启动的时候都启动防火墙,可以执行命令:
systemctl enable firewalld
-
防火墙关闭后,接着来看下你系统的IP地址:ifconfig -a。可以看到我的IP是192.168.0.104。
(2)、CGI配置
Apache支持CGI配置,下面就来详细说明配置的过程。
找到安装Apache的目录/usr/local/apache2/conf,并对httpd.conf配置文件进行修改,如下面的说明:
(1)加载cgi模块
大概在httpd.conf的137行:
1
|
#LoadModule cgid_module modules/mod_cgid.so
|
去掉注释:
1
|
LoadModule cgid_module modules
/mod_cgid
.so
|
(2)设置cgi脚本文件路径
大概在httpd.conf的329行:
1
|
ScriptAlias
/cgi-bin/
"/usr/local/apache2/cgi-bin/"
|
可以看到apache将"/usr/local/apache2/cgi-bin/"映射为/cgi-bin/,即当你通过浏览器访问/cgi-bin/目录时,实际上就是访问"/usr/local/apache2/cgi-bin/"目录,为了方便,我将其设置为如下:
1
|
ScriptAlias
/cgi-bin/
/home/xpleaf/Source_Code/cgi_for_py/
|
注意这里路径末尾一定要加/,否则apache是无法打到该路径下的文件的。
(3)设置cgi路径的访问权限
大概在httpd.conf195行:
1
2
3
4
|
AllowOverride none
Require all denied
<
/Directory
>
|
将上面的内容全部修改为下面的内容:
1
2
3
4
5
6
|
AllowOverride None
Options +ExecCGI
Order allow,deny
Allow from all
<
/Directory
>
|
注意这里的目录是修改为前面我们改的:/home/xpleaf/Source_Code/cgi_for_py/
这样的修改是有原因的,如果没有在这里设置权限,当你在浏览器中访问你的cgi脚本文件时,得到的可能是这样的提示:
Forbidden
You don't have permission to access /cgi-bin/hello.py on this server.
(4)设置apache可解释python的cgi脚本文件
大概在httpd.conf的386行:
1
|
#AddHandler cgi-script .cgi
|
去掉注释,将其修改为:
1
|
AddHandler cgi-script .cgi .py
|
加上.py后,就可以解释python的脚本文件了,如果你需要解释shell的脚本文件,可以添加.pl,其它的类似。
OK,完成上面的4步之后,CGI配置就算完成了。不过在配置完成之后,我们需要重启一下Apache服务:
1
2
|
xpleaf@leaf:
/usr/local/apache2/conf
$
sudo
/usr/local/apache2/bin/apachectl
restart
AH00558: httpd: Could not reliably determine the server
's fully qualified domain name, using 127.0.1.1. Set the '
ServerName' directive globally to suppress this message
|
(3)、添加CGI脚本文件
(1)创建cgi脚本文件
在/home/xpleaf/Source_Code/cgi_for_py/目录下添加下面一个文件,并命名为hello.py:
1
2
3
4
5
6
7
8
9
10
11
12
13
|
#!/usr/bin/env python
# -*- coding: UTF-8 -*-
print
"Content-type:text/html"
print
print
''
print
''
print
'
print
''
print
''
print
'
print
''
print
''
|
注意#!/usr/bin/env python一定要加上,否则会出现500错误提示。
(2)设置cgi脚本文件的文件权限为755
1
2
3
|
xpleaf@leaf:~
/Source_Code/cgi_for_py
$
chmod
755 hello.py
xpleaf@leaf:~
/Source_Code/cgi_for_py
$
ls
-l hello.py
-rwxr-xr-x 1 xpleaf xpleaf 289 1月 31 16:02 hello.py
|
此步非常非常重要,如果忘记这步,无论你怎么找配置文件也找不出错误,就算看代码也不会发现有错误,然后通过浏览器访问时会一直显示500错误,所以一定要记得该步操作!
(4)、通过浏览器访问cgi脚本文件
浏览器中输入 服务器地址/cgi-bin/hello.py