[TOC]
## ServerName配置未填寫錯誤
~~~
[root@luo.centos6.5 /usr/local/apache/conf/extra]
# apachectl -t # 使用改命令檢查apache配置文件
httpd: Could not reliably determine the server's fully qualified domain name, using luo.centos6.5 for ServerName
~~~
**解決辦法:**
在apache主配置文件httpd.conf的98行左右`#ServerName www.example.com:80`前面的`#`去掉,換成自己的域名或者ip地址。
例如:修改為:`ServerName localhost:80`或者`ServerName 127.0.0.1:80`
## 403 Forbidden錯誤原因詳解
~~~
403 - Forbidden(禁止訪問),服務器拒絕請求
- forbidden request (matches a deny filter) => HTTP 403
- The request was a legal request, but the server is refusing to respond to it.
~~~
### 原因1 apache的配置文件沒有對站點目錄許可
apache配置文件中沒有對站點目錄的權限許可配置,這通常是在初始化安裝apahce后,更改了默認的apache站點目錄導致。
**解決辦法**可能是:通過給主配置文件增加`<Directory "/application/apache2.2.31/htdocs"></Directory>`標簽實現對指定目錄的權限控制
典型如下(對/var/www目錄下的文件允許訪問):
~~~
<Directory "/var/www">
Options -Indexes FollowSymLinks # 為了服務器的安全 Indexes參數一般要取消
AllowOverride None
Order allow,deny # 允許未被明確拒絕的
Allow from all
</Directory>
~~~
### 原因2 站點目錄下沒有首頁文件,而apache 的配置又禁止了目錄的瀏覽
站點目錄下沒有首頁文件(index.php、index.html等默認文件),而apache的配置又禁止了目錄瀏覽(#Indexes參數:訪問目錄時,如果不存在默認首頁則展示站點列表,該行建議改成 `Options None`),也會提示403錯誤。
**解決辦法**:在站點目錄添加默認首頁文件或者將配置文件中`Options Index`增加上。
* * * * *
### 原因3 deny from all 禁用了所有來訪者訪問
~~~
<Directory "/var/www">
Options -Indexes FollowSymLinks # 為了服務器的安全 Indexes參數一般要取消
AllowOverride None
Order allow,deny # 允許未被明確拒絕的
Deny from all
# Deny from
</Directory>
~~~
**解決辦法:**參考原因2解決方法配置`<Directory ></Directory>` 參數。
### 站點目錄權限問題
站點目錄需要apache的用戶有訪問權限,否則就會報403錯誤(一般web站點目錄權限給755,站點文件權限給644,上傳程序通過另外的上傳服務器提供文件上傳)