1、默認的開始頁面:
<IfModule dir_module>
DirectoryIndex index.php index.pl index.cgi index.asp index.shtml index.html index.htm \
default.php default.pl default.cgi default.asp default.shtml default.html default.htm \
home.php home.pl home.cgi home.asp home.shtml home.html home.htm
</IfModule>
2、默認訪問位置,如輸入127.0.0.1後:
訪問的是htdocs文件夾下的DirectoryIndex頁面
3、爲什麼輸入127.0.0.1,訪問的是http://127.0.0.1/xampp/
因爲在htdocs的index.php做了跳轉
4、目錄相關之權限:
[root@www ~]# vim /etc/httpd/conf/httpd.conf
DocumentRoot "/var/www/html" <==可以改成你放置首頁的目錄!
# 這個設定值規範了 WWW 伺服器主網頁所放置的‘目錄’,雖然設定值內容可以變更,
# 但是必須要特別留意這個設定目錄的權限以及 SELinux 的相關規則與類型(type)!
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
# 這個設定值是針對 WWW 伺服器的‘預設環境’而來的,因爲針對‘/’的設定嘛!
# 建議保留上述的預設值 (上頭資料已經是很嚴格的限制),相關參數容後說明。
<Directory "/var/www/html"> <==針對特定目錄的限制!底下參數很重要!
Options Indexes FollowSymLinks <==建議拿掉 Indexes 比較妥當!
AllowOverride None
Order allow,deny
Allow from all
</Directory>
----------------------------------------------------
a、Options (目錄參數):
此設定值表示在這個目錄內能夠讓 Apache 進行的動作,亦即是針對 apache 的程序的權限設定啦!主要的參數值有:
Indexes:如果在此目錄下找不到‘首頁檔案 (預設爲 index.html) ’時, 就顯示整個目錄下的檔案名稱,至於‘首頁檔案檔名’則與 DirectoryIndex 設定值有關。
FollowSymLinks:這是 Follow Symbolic Links 的縮寫, 字面意義是讓連結檔可以生效的意思。我們知道首頁目錄在 /var/www/html,既然是 WWW 的根目錄,理論上就像被 chroot 一般! 一般來說被 chroot 的程式將無法離開其目錄,也就是說預設的情況下,你在 /var/www/html 底下的連結檔只要連結到非此目錄的其他地方,則該連結檔預設是失效的。 但使用此設定即可讓連結檔有效的離開本目錄。
ExecCGI:讓此目錄具有執行 CGI 程式的權限,非常重要!舉例來說,之前熱門的 OpenWebMail 使用了很多的 perl 的程式,你要讓 OpenWebMail 可以執行,就得要在該程式所在目錄擁有 ExecCGI 的權限才行喔!但請注意,不要讓所有目錄均可使用 ExecCGI !
Includes:讓一些 Server-Side Include 程式可以運作。建議可以加上去!
MultiViews:這玩意兒有點像是多國語言的支援,與語系資料 (LanguagePriority) 有關。最常見在錯誤訊息的回報內容,在同一部主機中,可以依據用戶端的語系而給予不同的語言顯示呢! 預設在錯誤回報訊息當中存在,你可以檢查一下 /var/www/error/ 目錄下的資料喔!
b、AllowOverride (允許的覆寫參數功能):
表示是否允許額外設定檔 .htaccess 的某些參數覆寫?我們可以在 httpd.conf 內設定好所有的權限,不過如此一來若使用者自己的個人網頁想要修改權限時將會對管理員造成困擾。因此 Apache 預設可以讓使用者以目錄底下的 .htaccess 檔案內覆寫 <Directory> 內的某些功能參數。 這個項目則是在規定 .htaccess 可以覆寫的權限類型有哪些。常見的有:
ALL:全部的權限均可被覆寫;
AuthConfig:僅有網頁認證 (帳號密碼) 可覆寫;
Indexes:僅允許 Indexes 方面的覆寫;
Limits:允許使用者利用 Allow, Deny 與 Order 管理可瀏覽的權限;
None:不可覆寫,亦即讓 .htaccess 檔案失效!
c、Order Allow, Deny (能否登入瀏覽的權限):
決定此目錄是否可被 apache 的 PID 所瀏覽的權限設定啦!能否被瀏覽主要有兩種判定的方式:
deny,allow:以 deny 優先處理,但沒有寫入規則的則預設爲 allow 喔。
allow,deny:以 allow 爲優先處理,但沒有寫入規則的則預設爲 deny 喔。
所以在預設的環境中,因爲是 allow,deny 所以預設爲 deny (不可瀏覽),不過在下一行有個 Allow from all,allow 優先處理,因此全部 (all) 用戶端皆可瀏覽!
5、虛擬主機:
[root@www ~]# vim /etc/httpd/conf.d/virtual.conf
# 底下這一行在規定‘本機任何介面的 port 80 所指定的虛擬主機’的意思。
NameVirtualHost *:80
# 先針對兩個多出來的可瀏覽目錄進行權限方面的規範啊!
<Directory "/var/www/www">
Options FollowSymLinks
AllowOverride None
Order allow,deny
Allow from all
</Directory>
<Directory "/var/ftp">
Options FollowSymLinks Indexes
AllowOverride None
Order allow,deny
Allow from all
</Directory>
# 針對三部主機的 DocumentRoot 進行定!
<VirtualHost *:80>
ServerName linux.centos.vbird
DocumentRoot /var/www/html
</VirtualHost>
<VirtualHost *:80>
ServerName www.centos.vbird
DocumentRoot /var/www/www
CustomLog /var/log/httpd/www.access_log combined
# 不同的主頁可以指定不同的登錄檔資訊,這樣比較好 debug 與分析啦!
</VirtualHost>
<VirtualHost *:80>
ServerName ftp.centos.vbird
DocumentRoot /var/ftp
</VirtualHost>
6、虛擬主機注意點:
a、在虛擬主機的設定上還有很多的可用的功能,不過,最低的限度是需要有 ServerName 及 DocumentRoot 這兩個即可!
b、使用了虛擬主機後,原本的主機名稱 (linux.centos.vbird) 也要同時寫入虛擬主機的對應中, 否則這個主機名稱可能會不知道被丟到哪裏去喔!
c、在 www.centos.vbird 這個主機當中多了個 CustomLog ,表示任何向 www.centos.vbird 要求資料的記錄都會改寫入 /var/log/httpd/www.access_log 而不是預設的 /var/log/httpd/access_log。 但這個新增的登錄檔必需要加入 logrotate 的管理當中才行喔!否則登錄檔會大到‘爆表’
d、在windows下的路徑不用\,都是使用/
7、生產環境的虛擬主機設置:
<VirtualHost *>
<Directory "D:/PHPnow-1.5.6/htdocs/gausstel">
Options Indexes FollowSymLinks
Allow from all
AllowOverride All
</Directory>
ServerAdmin [email protected]
DocumentRoot "D:/PHPnow-1.5.6/htdocs/gausstel"
ServerName 127.0.0.3:80
ServerAlias *.vaasdk.com
ErrorLog logs/127.0.0.3-error_log
php_admin_value open_basedir "D:\PHPnow-1.5.6\htdocs\gausstel;C:\WINDOWS\Temp;"
</VirtualHost>
Apache httpd.conf相關知識點--默認的開始頁面、目錄權限、虛擬主機
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章
MT4編程--DLL編程的整個流程
桶丁
2020-07-02 07:12:06
Apache 在配置文件httpd.conf加反向代理功能
桶丁
2020-02-24 15:31:53
簡單理解Vmware虛擬機網絡連接模式(bridged、NAT、host-only)
桶丁
2020-02-24 15:31:43
MT4編程--DLL編程的整個流程
桶丁
2020-07-02 07:12:06
Apache 在配置文件httpd.conf加反向代理功能
桶丁
2020-02-24 15:31:53
簡單理解Vmware虛擬機網絡連接模式(bridged、NAT、host-only)
桶丁
2020-02-24 15:31:43
24小時熱門文章
-
再談23種設計模式(3):行爲型模式(學習筆記)
-
Power Automate Desktop 安裝完,登錄後老是提示one driver 錯誤
-
微前端學習筆記(4):從微前端到微模塊之EMP與hel-micro方案探索
-
微前端學習筆記(1):微前端總體架構概述,從微服務發微
-
985 碩士程序員,空窗 4 個月沒有 Offer!
-
一文搞懂 Spring 循環依賴
-
賽博鬥地主——使用大語言模型扮演Agent智能體玩牌類遊戲。
-
VScode右鍵打開(添加到右鍵)
-
記一次 .NET某工控視覺自動化系統 卡死分析
-
WindowsServer--SQL Server搭建主從同步實現讀寫分離 - 事務性分發