1. 程式人生 > >Apache 安裝後Error 403的故障排錯方法

Apache 安裝後Error 403的故障排錯方法

一、問題描述

在apache2的httpd配置中,很多情況都會出現403。

剛安裝好httpd服務,當然是不會有403的問題了。主要是修改了一些配置後出現,問題描述如下:

  • 修改了DocumentRoot目錄指向後,站點出現403錯誤。
  • 設定了虛擬主機目錄也可能導致403。
  • apache的httpd服務成功啟動,看起來都很正常,卻沒有許可權訪問
  • 日誌出現: access to / denied (filesystem path '/srv/lxyproject/wsgi/django.wsgi') because search permissions are missing on a component of the path
  • 設定虛擬目錄後,錯誤日誌出現:client denied by server configuration: /srv/lxyproject/wsgi/django.wsgi

二、分析問題及方案

下面一步步解決問題時注意錯誤日誌內容。ok,開始。

1、httpd.conf中目錄配置檔案

如果顯示更改了DocumentRoot,比如改為 "/usr/local/site/test" 。site目錄和test目錄是通過使用mkdir建立的,然後在test目錄下放一個index.html。這種情況應該檢視httpd.conf中配置。

你的<Directory "/usr/local/site/test">

一定要和DocumentRoot一致,因為這段Directory是apache對該目錄訪問許可權的設定,只有設定正確的目錄,DocumentRoot才會生效。

複製程式碼
<Directory "/usr/local/site/test">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
# # Note that "MultiViews" must be named *explicitly* --- "Options All" # doesn't give it to you. # # The Options directive is both complicated and important. Please see # http://httpd.apache.org/docs/2.4/mod/core.html#options # for more information. # Options Indexes FollowSymLinks # # AllowOverride controls what directives may be placed in .htaccess files. # It can be "All", "None", or any combination of the keywords: # Options FileInfo AuthConfig Limit # AllowOverride None # # Controls who can get stuff from this server. # Require all granted </Directory>
複製程式碼

2、目錄訪問許可權

第一步配置正確還是出現403,檢查目錄配置<Directory "/usr/local/site/test">中是否有Deny from all。有則所有訪問都會被拒絕,當然403了。

可以設定為Allow from all或者Require all granted來處理。

不要修改<Directory />根目錄中Deny from all。

3、目錄許可權

如果至此還是403,可能是網站目錄的許可權問題。

apache要求目錄具有執行許可權,也就是x,要注意的是,你的目錄樹都應該擁有這些許可權。

假如你的目錄是/usr/local/site/test,那麼要保證/usr,/usr/local,/usr/local/site,/usr/local/site/test這四個層級的目錄都是755許可權。

#chmod 755 /usr/local/site
#chmod 755 /usr/local/site/test

我犯過一個錯就是隻設定了最後一級目錄許可權,沒有設定上級目錄許可權,導致403。

4、 虛擬目錄

【這個問題我沒遇到過,因為我沒這樣寫過,網上資料這麼寫,可作為參考】

如果設定的是虛擬目錄,那麼你需要在httpd.conf中定義一個虛擬目錄,而且像極了如下的片段:

複製程式碼
Alias /folder "/usr/local/folder"                       

<Directory "/usr/local/folder">                         
    Options FollowSymLinks                            
    AllowOverride None                              
    Order deny,allow                               
    Deny from all                                 
    Allow from 127.0.0.1 192.168.1.1                       
</Directory>      
複製程式碼

如果是這一種情況,而且你寫得類似我上面的程式碼,三處folder都是一樣一樣的,那絕對會是403!怎麼解決呢,就是把跟在Alias後面斜槓後面的那串改了,改成什麼,不要和虛擬目錄的資料夾同名就好,然後我就可以用改過後的虛擬目錄訪問了,當然,改資料夾也行,只要你不怕麻煩,只要Alias後面的虛擬目錄定義字元(紅色)和實際資料夾名(黑色)不相同就OK。

5、selinux的問題

如果依然是403,那就是selinux在作怪了,於是,你可以把你的目錄進行一下selinux許可權設定。

今天我遇到的就是這個問題了。

#chcon -R -t httpd_sys_content_t /usr/local/site
#chcon -R -t httpd_sys_content_t /usr/local/site/test

網上資料說不過,這一步大多不會發生。但我的問題確實是,可能跟系統有關,具體原理還不是很懂。

6、wsgi的問題

我的虛擬主機配置為:

複製程式碼
<VirtualHost *:80>

WSGIScriptAlias / /srv/lxyproject/wsgi/django.wsgi
Alias /static/ /srv/lxyproject/collectedstatic/

ServerName 10.1.101.31
#ServerName example.com
#ServerAlias www.example.com

<Directory /srv/lxyproject/collectedstatic>
  Options Indexes  FollowSymLinks
    AllowOverride None
    Require all granted
</Directory>

<Directory /srv/lxyproject/wsgi/>
    Allow from all
</Directory>
ErrorLog   /etc/httpd/logs/lxyproject.error.log
LogLevel warn
</VirtualHost>
複製程式碼

我訪問

log報錯:

client denied by server configuration: /srv/lxyproject/wsgi/django.wsgi

解決辦法:

修改<Directory /srv/lxyproject/wsgi/>中Allow from all為:Require all granted

這個問題是因為版本的原因,

我的httpd版本為:

[[email protected] conf.d]# rpm -qa |grep httpd
httpd-devel-2.4.6-31.el7.centos.x86_64
httpd-tools-2.4.6-31.el7.centos.x86_64
httpd-2.4.6-31.el7.centos.x86_64

而2.3以下版本用Allow from all,2.3及以上版本為Require all granted。

複製程式碼
<Directory /home/aettool/aet/apache>
  <IfVersion < 2.3 >
   Order allow,deny
   Allow from all
  </IfVersion>
  <IfVersion >= 2.3>
   Require all granted
  </IfVersion>
</Directory>
複製程式碼

相關推薦

Apache 安裝Error 403故障方法

一、問題描述 在apache2的httpd配置中,很多情況都會出現403。 剛安裝好httpd服務,當然是不會有403的問題了。主要是修改了一些配置後出現,問題描述如下: 修改了DocumentRoot目錄指向後,站點出現403錯誤。設定了虛擬主機目錄也可能導致4

LINUX系統開啟故障及linux-4.16.8內核編譯安裝

grub1.5 grub2 linux4.16.8編譯安裝 系統引導排錯 自制linux系統 1、破解root口令,並為grub設置保護功能 1).進入單用戶模式 在 GRUB 啟動菜單裏使用 “e” 操作按鍵進入 CentOS 的啟動菜單向界面 ,移動光標至“kernel”配置項一行,

華為設備網絡故障實驗

8.4 分享 trunk 2.4 ado spf term acl cto 實驗名稱: 華為設備網絡故障錯誤排查拓撲圖如下: 圖為老師提供 我只能把每個設備的設置截圖展示出來原有設置如下:PC1PC2PC3PC4SW1SW2: SW3:SW4:R1:R2:排錯思路:

CentOS啟動故障

centos啟動錯誤一.MBR破壞 centos 6   通過dd破壞前512個字節,模擬mbr損壞。(事先要做好備份) dd if=/dev/zero of=/dev/sda bs=1 count=512   查看破壞情況 hexdu

windows server 2003 故障

term serve 排錯 ESS ntldr oss ali style vpd 1、破壞MBR,並修復mbr打開windows server 2003將winhex文件拖到 windows server 2003 中2、刪除ntldr,並修復windows server

華為交換機基本故障命令

華為交換機出現問題,一般都會手要你管display命令來排查故障,display命令是網路維護和故障處理的重要工具基本資訊查詢display diagnostic-information 或者簡寫 dis dia,此命令主要用於系統基本資訊的收集檢視裝置資訊 display device 簡寫 dis dev

Linux之核心管理及故障

一、Centos6啟動流程:     加電自檢PSOT     引導載入器BootLoader     MBR(GRUB第一階段)||(GRUB第1.5階段)(GRUB第2階段)     載入核心(vmlinuz、initramfs)     mount /,啟動第

apache安裝無法啟動,如下圖,有知道的大神麻煩能告知下嗎

systemctl start httpd.service Job for httpd.service failed because the control process exited with error code. See "systemctl status http

關於WAMP安裝出現403的解決方法

1.http://localhost/phpmyadmin/  訪問出現403或無許可權 在安裝目錄中修改配置檔案/wamp/alias/phpmyadmin.conf <Directory "c:/wamp/apps/phpmyadmin3.5.1/">   

Android Studio 安裝第一次執行報

機子新裝了 Android Studio,第一次執行,出現下面的報錯: 報錯原因重點在於畫紅框部分,是因為機器上沒有配置 classpath 環境變數。 Android Studio 是依賴於 JDK 和 JRE 的,所以安裝 Android Studio 之前需要

xampp Apache Access forbidden! Error 403 解決方法

今天下載了最新的xampp,配置了一個虛擬主機,一直在報錯,Access forbidden! Error 403  這很明顯是伺服器不允許訪問檔案,但是我的虛擬主機配置如下: DocumentRoot "D:/work/test" ServerName test Opt

052.Kubernetes叢集管理-故障指南

一 故障指南 1.1 常見問題排障 為了跟蹤和發現在Kubernetes叢集中執行的容器應用出現的問題,常用如下查錯方法: 檢視Kubernetes物件的當前執行時資訊,特別是與物件關聯的Event事件。這些事件記錄了相關主題、發生時間、最近發生時間、發生次數及事件原因等,對排查故障非常有價值。此外,通過

zabbix server is not running 的方法

zabbix server is not running前幾天添加註冊zabbix主機到數據庫的時候,突然就包zabbix server is not running 這個報錯:查找網上資料,說什麽數據庫問題都有,結果都不適合,人家是安裝的時候出問題的,我是用著用著就出問題。 tail -n 50 /tmp/

關於mindmanager 2012安裝報C++錯誤的解決方法

關於mindmanager 2012啟動無法執行,提示c++錯誤 ---------------------------Microsoft Visual C++ Runtime Library---------------------------Runtime Error! Prog

關於Windows10+Ubuntu18.04 雙系統安裝無法啟動Ubuntu的解決方法

小白用了一天的時間裝Ubuntu,安裝成功之後出現了不能識別Grub啟動Ubuntu,直接進入Windows系統的情況。由於網上大多數教程都是解決無法啟動Windows的問題,所以把不能啟動Ubuntu的解決方法彙總一下,希望可以幫到和我遇到同樣問題的小白OwO安裝過程就不詳

ubantu16.04TLS fcitx和搜狗拼音安裝無法正常啟動的解決方法

在網上有很多關於fcitx和搜狗的安裝的帖子和處理無法啟動的方法。不過很可惜,可能是本人運氣不好,嘗試了能找到的方法均已失敗告終。經過自己的多次嘗試和對網上找到的方法的總結找到了一種可行的解決方法。(本方法不需要用到終端,也不需要敲程式碼,屬於通俗易懂新手教程) 首先在Ub

apache服務出現Forbidden 403問題的解決方法總結

在配置Linux的 Apache服務時,經常會遇到http403錯誤,我今天配置測試時也出現了,最後解決了,總結了一下。http 403錯誤是拒絕訪問的意思,有很多原因的。還有,這些問題在win平臺的Apache裡一樣會發生!我按照經驗總結的主要有以下4種原因! 本人測試的

方法

不要猜,看錯誤提示用自己的基本知識分析錯誤的原因 2,分開前天,後臺排錯,後臺走過去了,沒錯,徹底走完斷點有錯,說明是前臺問題,為證明可以在前臺jsp最前面打一個斷點,應該是調到了前臺,走過這個斷點之後才報錯,前臺報錯1指令碼斷點,2頁面一段一段刪除。 後臺排錯在錯誤的地方一

Ubuntu Server 18.04安裝vi命令解決鍵盤錯亂方法和wifi連接之後不能上網

8.0 遠程 bubuko key res ssh服務 鍵盤 置配 penssh 一、編輯/etc/vim/vimrc.tiny 使用root權限操作 將“compatible”改成“nocompatible” 新增一

解決python安裝cmd報Fatal Python error: Py_Initialize: unable to load the file system codec

因為我的電腦中以前裝有python,這次重新從網上安裝python3後與之前殘留的設定產生了衝突,開啟cmd輸入python出現錯誤: Fatal Python error: Py_Initialize: unable to load the file system codec Mo