參考博文:
a、http://www.linuxidc.com/Linux/2016-09/134827.htm 這個解釋挺好
昨天配置新服務器:以為自己老手 就一步到位結果一直出現 403 Forbidden You don’t have permission to access / on this server. 百度所有的解決方法發現還是不行,沒辦法重新重頭一步一步來找錯誤:
1、從http安裝查找:這個最好 是在安裝完成后顯示下信息頁
<?php phpinfo() ?>
我從這個信息頁中發現有些本以為安裝的沒有安裝上,例如: php55w-mysql.x86_64 php55w-pdo.x86_64
反思:yum 安裝多個時最好加上 -y 省的每次都要介入。
2、配置 http.conf
只要出現 信息頁面說明安裝沒有問題,剩下的就是配置問題了!
編輯配置文件/etc/httpd/conf/httpd.conf
vim /etc/httpd/conf/httpd.conf
ServerTokens OS # 服務器相應主機頭信息時,顯示apache版本和操作系統名稱
ServerRoot "/etc/httpd" #指定服務器主配置文件和日志文件的位置
Timeout 60 #在指定時間內沒有收到或發出任何數據則斷開連接,單位為秒
KeepAlive On #是否啟用長連接
MaxKeepAliveRequests 100 #當啟用長連接時,一次連接最多能相應的請求數量
KeepAliveTimeout 15 #啟用長連接時,指定一次連接中相鄰兩個請求的最大時間間隔,超過這個時間則會斷開連接
<IfModule prefork.c> #使用prefork工作模型
StartServers 8 #剛開啟時啟動的守護進程數量
MinSpareServers 5 #設置最少空閑進程,當空閑進程少於規定時會創建新的進程
MaxSpareServers 20 #設置最多空閑進程,當空閑進程多於規定時會刪除一些
ServerLimit 256 #設置服務器允許最大的同時連接數
MaxClients 256 #設置同一時間允許的最大客戶端連接數
MaxRequestsPerChild 4000 #設置每個子進程能處理的最大連接數量
</IfModule>
DirectoryIndex index.html index.html.var #設置網站默認文檔
Include conf.d/*.conf #將指定文件包含進來
User apache #設置運行apache服務的用戶
Group apache #設置運行apache服務的組
ServerAdmin root@localhost #設置管理員的郵箱,當apache服務有問題時會發郵件通知管理員
DocumentRoot "/var/www/html" #設置存放網頁的根目錄位置
#設置特定目錄的屬性
<Directory "/var/www/html">
Options FollowSymLinks #FllowSymLinks:允許訪問符號鏈接的文件,即能訪問不在本目錄內的文件
indexes: 在目錄中找不到DirectoryIndex中指定的文件時會生成當前目錄的文件列表
MultiViews: 如果客戶端請求的路徑可能對應多種類型的文件,那么服務器將根據客戶端請求的具體情況自動選擇一個最匹配客戶端要求的文件。例如,在服務器站點的file文件夾下中存在名為hello.jpg和hello.html的兩個文件,此時用戶輸入tttp://localhost/file/hello,如果在file文件夾下並沒有hello子目錄,那么服務器將會嘗試在file文件夾下查找形如hello.*的文件,然后根據用戶請求的具體情況返回最匹配要求的hello.jpg或者hello.html。
AllowOverride None #不去讀取.htaccess配置文件的內容
Order allow,deny #先執行allow訪問控制規則,再執行deny
Allow from all #放行所有
</Directory>
HostnameLookups Off #設置服務器記錄客戶端的IP地址還是主機名,當off時記錄IP,為On時記錄主機名
ErrorLog logs/error_log #設置錯誤日志保存位置
我的配置是改變了默認網站目錄,每天生成日志,便於定期刪除
<VirtualHost *:80>
ServerAdmin webmaster@dummy-host.example.com
DocumentRoot /home/webuser/webroot/maisui
ServerName 47.93.228.65
#ErrorLog logs/maisuijf.com-error_log
#CustomLog logs/maisuijf.com-access_log common
ErrorLog "| /usr/sbin/rotatelogs /home/webuser/webroot/log/maisuijf.com_error_log.%Y_%m_%d_error_log 86400 480"
CustomLog "| /usr/sbin/rotatelogs /home/webuser/webroot/log/maisuijf.com_access_log.%Y_%m_%d.log 86400 480" combined
LogLevel info
Options All -Indexes
DirectoryIndex index.php index.html
<Directory "/home/webuser/webroot/maisui">
Options Indexes FollowSymLinks
AllowOverride ALL
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
發現設置后,首頁可以訪問,但是其他子頁面打開錯誤,應該是url沒有正確啟用:
修改網站根目錄相關的:AllowOverride all 啟用 重寫即可
3、小結
其他網絡上說的都僅作參考!
例如:
Apache服務器出現Forbidden 403錯誤提示的解決方法總結 這個不錯,里面的設置權限就很好。
Apache 在更改DocumentRoot,或新增虛擬目錄之后出現403錯誤的解決方法匯總詳解(Linux) 這個更好,要學會看錯誤日志,非常重要,我就是看錯誤日志修改的。
