apache安裝(httpd)
(一)在linux或windows平臺共享apache安裝軟件,並掛載
yum install -y cifs-utils
mount //192.168.1.100/Apache--httpd /opt
(二)解壓文件
cd /opt
tar zxvf apr-1.4.6.tar.gz -C /usr/local
tar zxvf apr-util-1.4.1.tar.gz -C /usr/local
tar zxvf httpd-2.4.4.tar.gz -C /usr/local
(三)複製解壓文件,去掉版本號
cd /usr/local
cp -r apr-1.4.6 httpd-2.4.4/srclib/apr
cp -r apr-util-1.4.1 httpd-2.4.4/srclib/apr-util
(四)安裝下面的三個必須安裝的編譯語言工具gcc、gcc-c++、make
安裝過程出現的錯誤,要安裝prce-devel這個開發包
yum -y install gcc
yum -y installgcc-c++
yum -y installmake
yum -y installpcre-devel
(五)源碼編譯
cd /usr/local/httpd-2.4.4
./configure \
--prefix=/usr/local/apache \
--enable-so \
--enable-rewrite \
--enable-mods-shared=most \
--with-mpm=worker \
--disable-cgid \
--disable-cgi
參數解釋:
./configure \ //可執行配置程序
--prefix= //指定將httpd服務程序安裝到哪個目錄
--enable-so //該參數表示支持用mod_so模塊提供的功能,用LoadModule在httpd.conf文件或包含的conf文件中
動態加載某個模塊。讓 Apache 可以支持DSO模式
--enable-rewrite / /啓用網頁地址重啓功能,用於網站優化及目錄遷移維護
--enable-mods-shared=most //選項:告訴編譯器將所有標準模塊都動態編譯爲DSO模塊。
--with-mpm=worker // 讓apache以worker方式運行
--with-mpm=worker //該參數是配置apache將以何種模式編譯的。Apache網站文檔指出不同操作系統下的不同
的默認模式.
--disable-cgid //禁止用一個外部 CGI 守護進程執行CGI腳本
--disable-cgi //禁止編譯 CGI 版本的 PH,不便於擴展網站的應用訪問能力
(六)源碼編譯及安裝
make 把源代碼轉換爲可執行程序
make install 拷貝過程:將/usr/local/httpd-2.4.4目錄下編譯完的http程序及相關目錄,文件複製到預設
的安裝目錄(及--prefix=/usr/local/apache指定的安裝路徑)
(七)使httpd服務可以使用service管理
"service”管理的命令都在/etc/init.d/這個目錄下
grep -v "#" /usr/local/apache/bin/apachectl > /etc/init.d/httpd
vi /etc/init.d/httpd
在文件最前面插入下面的三行,使其支持chkconfig命令
#!/bin/sh
# chkconfig: 2345 85 15
# description: Apache is a World Wide Web server.
第二行參數意義分別爲:Linux2,3,4,5級別需要啓動httpd服務,啓動序號(85);關閉序號(15)
chmod+x /etc/init.d/httpd //把httpd文件加上可執行權限
chkconfig --add httpd //注如果在/etc/init.d/httpd不編輯這個# chkconfig: 2345 85 15內容的話,
就沒法用chkconfig --add來添加apache這個服務的
htpd的基本配置(訪問默認網頁)
(一)修改主配置文件
vi /etc/httpd.conf(# vi /usr/local/apache/conf/httpd.conf)
ServerName //設置成hostname顯示的名稱
Listen 192.168.1.20//添加或修改監聽本地的IPv4的地址的80端口
cat /usr/local/apache/htdocs/index.html
<html><body><h1>It works!</h1></body></html> 默認顯示網頁
(二)設置軟連接
ln -s /usr/local/apache/conf/httpd.conf/etc/httpd.conf 軟連接------/etc/httpd.conf -> /usr/local/apache/conf/httpd.conf
虛擬目錄(匿名用戶訪問)
(一)修改主配置文件
vi /usr/local/apache/conf/httpd.conf//在主配置文件裏添加一條參數
Include conf.d/*.conf //識別/usr/local/apache/conf.d目錄下以.conf 結尾的虛擬目錄配置文件
(二)創建虛擬目錄
mkdir /usr/local/apache/conf.d
(三)編輯虛擬目錄下的配置文件
cd /usr/local/apache/conf.d
vi vdir.conf
Alias /anon "/opt/anon/"
<Directory "/opt/anon/">
Options Indexes MultiViews FollowSymLinks //固定模式
AllowOverride None//固定的不允許重寫
Order allow,deny //先允許,後拒絕
Allow from all //允許任何網段客戶機訪問
Require all granted //對這個目錄給予授權,這是6.0手動編譯安裝的apache時,定義被訪問目錄的權限
</Directory>
(四)創建虛擬目錄存放路徑
mkdir /opt/anon
(五)在虛擬目錄下存放文件
echo "this is www.benet.com" > /opt/anon/index.html
虛擬目錄(用戶授權訪問)
(一)修改主配置文件
vi /usr/local/apache/conf/httpd.conf//在主配置文件裏添加一條參數
Include conf.d/*.conf //識別/usr/local/apache/conf.d目錄下以.conf 結尾的虛擬目錄配置文件
(二)創建虛擬目錄
mkdir /usr/local/apache/conf.d
(三)編輯虛擬目錄下的配置文件
vi /usr/local/apache/conf.d/vdir.conf
Alias /test "/opt/test/" 指定授權虛擬目錄名(即192.168.1.20/test),虛擬目錄存放路徑
<Directory "/opt/test/"> //虛擬目錄存放路徑
Options Indexes MultiViews FollowSymLinks //固定模式
AllowOverride None //固定的不允許重寫
AuthName "hello" //定義受保護的領域名稱,該內容將在瀏覽器彈出的認證對話框中顯示
authtype basic //設置認證的類型,basic爲基本的認證
authuserfile /usr/local/apache/user//這裏的文件路徑要和創建用戶認證數據文件的路徑一樣的
require valid-user //要求只有認證文件中的合法用戶才能訪問。valid-user表示所有合法用戶
# authgroupfile /etc/httpd/group //設置組的保存用戶賬號、密碼的認證文件路徑444444444444444444444# authuserfile /etc/httpd/user//設置用於保存用戶賬號、密碼的認證文件路徑(htpasswd)
# require user test //只允許指定的test這個用戶訪問
# Require group admin //允許訪問的組名,只有組中定義的才能訪問
# Require all granted //對這個目錄給予授權,這是6.0手動編譯安裝的apache時,定義被訪問目錄的權限
</Directory>
(四)使用htpasswd工具,創建用戶認證數據文件
htpasswd -c /usr/local/apache/user test 新建數據文件user,並包含一個名爲test用戶信息。(這裏的文件路徑要和虛擬目錄下的配置路徑一樣(即authuserfile /usr/local/apache/user/)
(五)創建虛擬目錄存放路徑
mkdir /opt/test
(六)在虛擬目錄下存放文件
echo "this is www.benet.com" > /opt/anon/index.html
注!!
/usr/local/apache/bin/htpasswd -c 等同於htpasswd -c
htpasswd這個工具在我們手工編譯的安裝路徑的bin的執行文件下,用“-c”的參數表示新建立此文件。
如下所示:如果省略“-c”選項,則表示指定的用戶數據文件已經存在,用於添加新的用戶或修改現有用戶的密碼
htpasswd /usr/local/httpd/user tom
New password: 修改密碼
Re-type new password: 確認修改密碼
Re-type new password:mkdir /opt/benet
虛擬主機(基於端口號)
(一)新建虛擬主機目錄和網站
mkdir /opt/accp
mkdir /opt/accp
echo "<h1>this is www.benet.com</h1>" > /opt/benet
echo "<h1>this is www.accp.com</h1>" > /opt/accp
(二)修改主配置文件
vi /usr/local/apache/conf/httpd.conf//在主配置文件裏添加一條參數
Include conf.d/*.conf //識別/usr/local/apache/conf.d目錄下以.conf 結尾的虛擬目錄配置文件
(三)編輯虛擬主機配置文件(子配置文件)
touch /usr/local/apache/conf.d/vhost.conf
vi /usr/local/apache/conf.d/vhost.conf
Listen 81 //監聽端口
<VirtualHost 192.168.1.20:80>
ServerAdmin xiaohang@benet.com
DocumentRoot /opt/benet/
ServerName www.benet.com
ErrorLog logs/bjxh.com-error_log
CustomLog logs/bjxh.com-access_log common
</VirtualHost>
<Directory "/opt/benet">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
Require all granted
</Directory>
<VirtualHost 192.168.1.20:81>
ServerAdmin xiaohang@accp.com
DocumentRoot /opt/accp/
ServerName www.accp.com
ErrorLog logs/xhce.com-error_log
CustomLog logs/xhce.com-access_log common
</VirtualHost>
<Directory "/opt/accp">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
Require all granted
</Directory>
虛擬主機(基於域名)
(一)配置搭建DNS服務器
1、全局配置文件
vi /etc/named.conf
options {
listen-on port 53 { 192.168.1.20; };
allow-query { any; };
};
2、區域配置文件
vi /etc/named.rfc1912.zones
zone "benet.com" IN {
type master;
file "benet.com.zone";
};
zone "accp.com" IN {
type master;
file "accp.com.zone";
allow-update { none; };
};
3、區域數據配置文件
# vi /var/named/benet.com.zone
$TTL 1D
@ IN SOA @ xiaohang.benet.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS www.benet.com.
www A 192.168.1.20
vi /var/named/accp.com.zone
$TTL 1D
@ IN SOA @ xiaohang.accp.com. (
0 ; serial
1D ; refresh
1H ; retry
1W ; expire
3H ) ; minimum
NS www.accp.com.
www A 192.168.1.20
(二)修改主配置文件
vi /usr/local/apache/conf/httpd.conf//在主配置文件裏添加一條參數
Include conf.d/*.conf //識別/usr/local/apache/conf.d目錄下以.conf 結尾的虛擬目錄配置文件
(三)編輯虛擬主機配置文件(子配置文件)
touch /usr/local/apache/conf.d/vhost.conf
vi /usr/local/apache/conf.d/vhost.conf
<VirtualHost 192.168.5.4:80> //設置benet虛擬站點區域
ServerAdmin [email protected] //管理員郵箱
DocumentRoot /opt/benet/ //網站根目錄路徑
ServerName www.benet.com //虛擬主機網站名稱
ErrorLog logs/bjxh.com-error_log //錯誤日誌存放路徑
CustomLog logs/bjxh.com-access_log common //設置訪問日誌文件的路徑,日誌類型
</VirtualHost>
<Directory"/opt/benet/"> //設置目錄訪問權限
Options Indexes MultiViews FollowSymLinks //控制選項,允許使用符號鏈接
AllowOverride None //不允許隱含控制文件中的覆蓋配置
Order allow,deny //白名單,先允許,後拒絕
Allow from all //允許所有網段訪問虛擬主機網站
Require all granted //
</Directory>
<VirtualHost 192.168.5.4:80>
ServerAdmin [email protected]
DocumentRoot /opt/accp/
ServerName www.accp.com
ErrorLog logs/xhce.com-error_log
CustomLog logs/xhce.com-access_log common
</VirtualHost>
<Directory "/opt/accp/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
Require all granted
</Directory>