(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
|
<Directory />
AllowOverride none
Require all denied
<
/Directory
>
|
將上面的內容全部修改為下面的內容:
|
1
2
3
4
5
6
|
<Directory
"/home/xpleaf/Source_Code/cgi_for_py/"
>
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
'<html>'
print
'<head>'
print
'<title>Hello</title>'
print
'</head>'
print
'<body>'
print
'<h2>Hello Word! This is my first CGI program</h2>'
print
'</body>'
print
'</html>'
|
注意#!/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























