Linux安裝配置Apache服務
一、常用的安裝和管理命令
yum install httpd #安裝Apache,也就是httpd服務
systemctl start httpd #啟動httpd服務
systemctl enable httpd #設定開機自動啟動httpd服務
systemctl restart httpd #重啟httpd服務
二、配置檔案說明
/etc/httpd/conf/httpd.conf #主配置檔案 /etc/httpd/conf.d #子配置檔案目錄 /var/log/httpd/ #日誌檔案目錄(access.log error.log) /etc/httpd/modules #模組檔案的目錄 /var/www/html #預設網站根目錄
主配置檔案(/etc/httpd/conf/httpd.conf)資訊:
由<></>包含的的配置資訊都是區域配置資訊,其他則是全域性配置資訊。
ServerRoot "/etc/httpd" #服務主目錄 Listen 80 #監聽IP地址及埠號 Include conf.modules.d/*.conf User apache #執行httpd服務的使用者 Group apache #執行httpd服務的使用者組 ServerAdmin [email protected] #管理員郵箱 ServerName www.example.com:80 #伺服器域名,預設為註釋 <Directory /> AllowOverride none Require all denied </Directory> DocumentRoot "/var/www/html" #網站資料根目錄 <Directory "/var/www"> AllowOverride None Require all granted </Directory> <Directory "/var/www/html"> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory> <IfModule dir_module> DirectoryIndex index.html </IfModule> <Files ".ht*"> Require all denied </Files> ErrorLog "logs/error_log" #錯誤日誌檔案 LogLevel warn <IfModule log_config_module> LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined LogFormat "%h %l %u %t \"%r\" %>s %b" common <IfModule logio_module> LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\" %I %O" combinedio </IfModule> CustomLog "logs/access_log" combined #訪問日誌檔案 </IfModule> <IfModule alias_module> ScriptAlias /cgi-bin/ "/var/www/cgi-bin/" </IfModule> <Directory "/var/www/cgi-bin"> AllowOverride None Options None Require all granted </Directory> <IfModule mime_module> TypesConfig /etc/mime.types AddType application/x-compress .Z AddType application/x-gzip .gz .tgz AddType text/html .shtml AddOutputFilter INCLUDES .shtml </IfModule> AddDefaultCharset UTF-8 <IfModule mime_magic_module> MIMEMagicFile conf/magic </IfModule> EnableSendfile on IncludeOptional conf.d/*.conf
關於網站目錄配置資訊(以根目錄為例):
<Directory "/var/www/html">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
AllowOverride: 允許存在於.htaccess檔案中的指令型別(.htaccess檔名是可以改變的,其檔名由AccessFileName指令決定)。其值為None時,表示不搜尋該目錄下的.htaccess檔案;當其值為All時,表示在.htaccess檔案中可以使用所有的指令。
Options: 配置在特定目錄使用哪些特性,多個特性之間用空格隔開。ExecCGI表示在該目錄下允許執行CGI指令碼;FollowSymLinks表示在該目錄下允許檔案系統使用符號連線;Indexes表示當用戶訪問該目錄時,如果使用者找不到DirectoryIndex指定的主頁檔案(例如index.html),則返回該目錄下的檔案列表給使用者;SymLinksIfOwnerMatch表示當使用符號連線時,只有當符號連線的檔案擁有者與實際檔案的擁有者相同時才可以訪問。
Order: 控制在訪問時Allow和Deny兩個訪問規則哪個優先:Allow表示允許訪問的主機列表(可用域名或子網,例如:Allow from 192.168.0.0/16);Deny表示拒絕訪問的主機列表。
DirectoryIndex index.html index.htm index.php #設定預設的主頁檔名
三、虛擬主機配置
1.基於域名的虛擬主機
1)配置域名資訊
[[email protected] ~]# echo '192.168.100.100 bbs.hollowman.cn' >> /etc/hosts
2)設定對應域名的站點目錄及測試網頁
[[email protected] ~]# mkdir /var/www/bbs
[[email protected] ~]# echo bbs.hollowman.cn > /var/www/bbs/index.html
3)配置虛擬主機資訊
可在主配置檔案(/etc/httpd/conf/httpd.conf)任意處新增虛擬主機配置資訊,一般放在網站資料根目錄後面後者前面便於更加清晰讀懂配置檔案
[[email protected] ~]# vim /etc/httpd/conf/httpd.conf
......
DocumentRoot "/var/www/html" #網站資料根目錄
<VirtualHost 192.168.100.100>
DocumentRoot "/var/www/bbs"
ServerName "bbs.hollowman.cn"
<Directory "/var/www/bbs">
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
......
4)重啟httpd服務
[[email protected] ~]# systemctl restart httpd
[[email protected] ~]# systemctl enable httpd
5)瀏覽器輸入域名bbs.hollowman.cn訪問
2.基於埠的虛擬主機
1)設定對應埠的站點目錄及測試網頁
[[email protected] ~]# mkdir /var/www/8080
[[email protected] ~]# echo ‘192.168.100.100:8080’ > /var/www/8080/index.html
2)配置基於埠的虛擬主機資訊
注意需要配置監聽埠資訊,可和前一次配置的基於域名的虛擬主機資訊放在一起
[[email protected] ~]# vim /etc/httpd/conf/httpd.conf
......
DocumentRoot "/var/www/html" #網站資料根目錄
...基於域名的虛擬主機配置資訊...
Listen 8080
<VirtualHost 192.168.100.100:8080>
DocumentRoot "/var/www/8080"
<Directory "/var/www/8080">
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
......
3)重啟httpd服務
[[email protected] ~]# systemctl restart httpd
4)輸入帶埠的ip地址:192.168.100.100:8080
四、修改網站根目錄
因為修改網站根目錄涉及到SELinux安全策略,需要修改安全上下文,可檢視“SElinux學習筆記”內容。