安裝httpd
1:安裝
[root@localhost ~]# yum -y install gcc* apr-devel apr-util-devel pcre-devel //安裝開發包
[root@localhost ~]# tar zxvf httpd-2.4.25.tar.gz //解壓縮
[root@localhost ~]# cd httpd-2.4.25
[root@localhost httpd-2.4.25]# ./configure --prefix=/usr/local/httpd --enable-so --enable-rewrite --enable-charset-lite --enable-cgi //配置
注釋:
--prefix:制定程序的安裝目錄
--enable-so:啟用動態加載模塊DSO的支持,使httpd具備進一步擴展功能的能力
--enable-rewrite:啟用網頁地址重寫功能,用於網站優化
--enable-charset-lite:啟動字符集支持,以便支持使用各種字符集編碼的網頁
--enable-cgi:啟用cgi腳本程序支持,擴展網站的應用訪問能力
DSO是Dynamic SharedObjects(動態共享目標)的縮寫,它是現代Unix派生出來的操作系統都存在着的一種動態連接機制。它提供了一種在運行時將特殊格式的代碼,在程序運行需要時,將需要的部分從外存調入內存執行的方法。
[root@localhost httpd-2.4.25]# make //編譯
[root@localhost httpd-2.4.25]# make install //編譯安裝
[root@localhost httpd-2.4.25]# ls /usr/local/httpd //查看安裝后的文件
[root@localhost httpd-2.4.25]# /usr/local/httpd/bin/apachectl start //啟動httpd
[root@localhost httpd-2.4.25]# netstat -anpt |grep httpd //查看監聽的端口
[root@localhost httpd-2.4.25]# /usr/local/httpd/bin/apachectl stop //停止httpd
[root@localhost httpd-2.4.25]# netstat -anpt |grep httpd //查看監聽的端口
2:優化執行路徑
[root@localhost httpd-2.4.25]# ln -s /usr/local/httpd/bin/* /usr/local/bin/ //做軟連接,方便快速啟動
[root@localhost httpd-2.4.25]# ls -l /usr/local/bin/httpd /usr/local/bin/apachectl //查看軟連接
[root@localhost httpd-2.4.25]# httpd -v //查看httpd的版本
[root@localhost httpd-2.4.25]# apachectl start //啟動httpd
[root@localhost httpd-2.4.25]# netstat -anpt |grep httpd //查看監聽的端口
[root@localhost httpd-2.4.25]# apachectl stop //停止httpd
[root@localhost httpd-2.4.25]# netstat -anpt |grep httpd //查看監聽的端口
3:添加httpd系統服務
(1)使用chkconfig添加為系統服務
[root@localhost httpd-2.4.25]# cp /usr/local/httpd/bin/apachectl /etc/init.d/httpd //復制配置文件
[root@localhost httpd-2.4.25]# vi /etc/init.d/httpd //編輯配置文件
添加:
#!/bin/sh \\原來就有
#chkconfig:35 85 21 \\沒有這一行,chkconfig --add httpd無法執行
#description:httpd server
[root@localhost httpd-2.4.25]# chkconfig --add httpd //加入系統服務,開機啟動
[root@localhost httpd-2.4.25]# chkconfig --list httpd //查看啟動
[root@localhost httpd-2.4.25]# service httpd start //啟動httpd
(2)建立.service配置文件
[root@localhost ~]# vi /lib/systemd/system/httpd.service //編輯文檔
[Unit] //單元
Description=the apache http server //描述信息
After=network.target //啟動順序
[Service] //服務
Type=forking //類型
PIDFile=/usr/local/httpd/logs/httpd.pid //進程文件
ExecStart=/usr/local/bin/apachectl $OPTIONS //啟動命令
ExecReload=/bin/kill -HUP $MAINPID //重新加載命令
KillMode=process //殺死進程的模式:殺死主進程
Restart=on-failure //異常退出時重啟
RestartSec=42s //重啟等待時間
[Install] //安裝
WantedBy=graphical.target //圖形模式
[root@localhost ~]# systemctl start httpd.service //啟動httpd
[root@localhost ~]# systemctl enable httpd.service //開機自啟動
三:httpd服務器的基本配置
1:確定網站的名稱、ip地址和域名
2:配置並啟動httpd
[root@localhost ~]# vi /usr/local/httpd/conf/httpd.conf
修改(前面的數字是行號):
ServerName www.bdqn.com ##200行 //網站域名,做域名解析
[root@localhost ~]# apachectl -t //檢測配置文件語法
2:啟動httpd服務
[root@localhost ~]# systemctl start httpd //啟動httpd
[root@localhost ~]# netstat -anpt | grep httpd //查看端口
3:部署網頁
[root@localhost ~]# vi /usr/local/httpd/htdocs/index.html //編輯主頁
<html><body><h1>It works!</h1></body></html>
[root@localhost ~]# service httpd restart //重啟httpd服務
4:測試
打開網站
http://192.168.10.101
5:查看站點訪問情況
[root@localhost ~]# tail /usr/local/httpd/logs/access_log //查看訪問日志
[root@localhost ~]# tail /usr/local/httpd/logs/error_log //查看錯誤日志
四:httpd.conf配置文件
1:全局配置項
[root@localhost ~]# vi /usr/local/httpd/conf/httpd.conf
ServerRoot "/usr/local/httpd"
Listen 80
User daemon
Group daemon
ServerAdmin you@example.com
ServerName www.bdqn.com
DocumentRoot "/usr/local/httpd/htdocs"
DirectoryIndex index.html
ErrorLog "logs/error_log"
LogLevel warn
CustomLog "logs/access_log" common
Include conf/extra/proxy-html.conf
2:區域配置項
[root@localhost ~]# vi /usr/local/httpd/conf/httpd.conf
<Directory />
AllowOverride none
Require all denied
</Directory>
<Directory "/usr/local/httpd/htdocs">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
五:虛擬目錄的設置(www.dbqn.com/xuni)
alias /xuni "/var/xuni"
<Directory "/var/xuni">
Options None
AllowOverride None
Require all granted
</Directory>
五:符號鏈接
web網站經過一段時間的運行,網站的內容會越來越多,這時文檔根目錄的空間會不足;另外希望在文件移動位置之后使得用戶仍然能夠訪問該文件。這兩種情況可以通過在文檔目錄下使用符號鏈接使文檔目錄之外的內容被訪問。
(1)編輯配置文件
[root@localhost ~]# vi /etc/httpd/conf/httpd.conf
<Directory />
Options FollowSymlinks
AllowOverride none
</Directory>
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
(2)創建符號鏈接
[root@localhost ~]# ln -s /usr/share/man /var/www/html/man
(3)客戶端訪問
六:網頁重定向
在apache服務器中,通過使用網頁重定向可以使得用戶在訪問URL地址時,apache服務器將自動重定向到另外一個URL網址。
(1)編輯配置文件
[root@localhost ~]# vi /etc/httpd/conf/httpd.conf
<IfModule alias_module>
Redirect 302 /foo http://www.benet.com/xuni
。。。。。。略。。。。。。
</IfModule>
注釋:
302為錯誤代碼,當遇到指定的錯誤是重定向
301:被請求的url已經永久的移動到新的url
302:被請求的url臨時移動到新的url
303:被訪問的頁面已經被替換
410:被訪問的頁面已經不存在,使用此代碼時不應該使用重定向url參數
(2)重啟服務
[root@localhost ~]# systemctl restart httpd
(3)客戶端訪問
當訪問http://www.benet.com/foo時,會被重定向到http://www.benet.com/xuni