Windows XP Windows 7 Windows 2003 Windows Vista Windows教程綜合 Linux 系統教程
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟件教程
 Windows教程網 >> 電腦軟件教程 >> 服務器技術 >> 關於服務器 >> apache問題you dont have permission to access / on this server的解決

apache問題you dont have permission to access / on this server的解決

日期:2017/2/8 10:15:29      編輯:關於服務器

項目部署到Apache Http Server上面,通過apachectl -t 檢測配置文件也沒有問題。可是通過浏覽器訪問,卻出現了“you don't have permission to access / on this server”.

 1、首先,查看conf.d/python.conf文件

<Directory "項目路徑">

        Options Indexes FollowSymLinks +Includes

        AllowOverride None

        Order allow,deny

        Allow from all

</Directory>

上面標紅部分,表示允許任何人訪問目錄

2、其次,既然配置文件沒有問題,那就需要考慮http.conf文件中指定的用戶和組的訪問權限。在Apache的wiki上有關於PermissionDenied的解決方法,鏈接是http://wiki.apache.org/httpd/13PermissionDenied,譯文如下:

Error 13 指的是文件系統的訪問權限錯誤。也就是由於錯誤的權限,apache被拒絕訪問。一般的來說,這並不意味著是Apache配置文件存在錯誤。

為了給文件提供服務,Apache必須有適當的權限去訪問那些文件,這些權限是由操作系統授予的。特別是在httpd.conf文件中指定User或者Group必須能夠讀取所有被服務的文件,以及查找包含那些文件的目錄和所有的父目錄直至文件系統的根。

一個類unix操作系統上不屬於httpd.conf文件中指定的User或Group的資源的典型訪問權限,對於普通的文件是644 -rw-r--r--,對於文件夾或者CGI腳本是755 drwxr-x-r-x。你也可能需要去查看操作系統所支持的擴展的訪問權限(例如SELinux訪問權限).

例子

當訪問類unix操作系統上的/usr/local/apache2/htdocs/foo/bar.htm文件時,你收到了Permission Denied的錯誤。

 首先,查看文件的訪問權限:

$ cd /usr/local/apache2/htdocs/foo
$ ls -l bar.htm

 如果須要的話,就修復它們:

$ chmod 644 bar.html

對文件夾以及每個父文件夾做相同的操作(/usr/local/apache2/htdocs/foo,/usr/local/apache2/htdocs,/usr/local/apache2,/usr/local/,/usr):

$ ls -la
$ chmod +x
$ cd ..
$ #repeat up to the root

 在一些系統上,可使用工具namei來列出各個路徑上的不同組件的訪問權限,然後去發現是否有權限問題:

$ namei -m /usr/local/apache2/htdocs/foo/bar.html

 3、最後,如果還是沒有解決問題,那麼需要查看擴展的訪問權限。

使用setenforce 0關閉SELinux,看是否解決問題。

 我遇到的問題是http.conf文件中所指定的用戶沒有訪問項目所在目錄的權限。

Copyright © Windows教程網 All Rights Reserved