2017-07-10 67 views
0

非常奇怪的問題傳入。Apache vhost無法正常工作,除非用戶通過SSH登錄

我有一個虛擬主機定義爲:

<VirtualHost *:80> 
    ServerName life.xxx.info 
    DocumentRoot /home/xxx/life/app/ 
    ServerAdmin [email protected] 

    ErrorLog /var/log/apache2/life-error_log 
    CustomLog /var/log/apache2/life-access_log common 
    <Directory /home/ivanatora/life/app/> 
     Allow from all 
     AllowOverride All 
    </Directory> 
</VirtualHost> 

如果我嘗試訪問它,我得到

Forbidden 

You don't have permission to access/on this server. 

這個錯誤在生命的error_log:

[星期一7月10 13:09:45 2017] [暴擊] [客戶端abcd](13)權限被拒絕:/home/xxx/.htaccess pcfg_openfile:無法檢查htaccess文件,確保它是可讀的,referer :http://life.xxx.info/

文件/home/xxx/.htaccess存在並具有-rw-rw-r--權限。

如果我在該服務器上有SSH登錄用戶,此虛擬主機工作得很好。我註銷的那一刻,它開始發生同樣的錯誤。

也許這是非常愚蠢的,但我現在很困惑。有任何想法嗎?

+0

我不明白SSH可能與它有什麼關係。你在哪裏請求頁面? – l0b0

+0

我也不明白。請求由其他機器生成。 –

回答

0

這可能是一個SELinux問題 - 您的配置文件位於非標準位置,出於安全原因您確實不希望您的Web服務器能夠讀取任意路徑。您可以通過在審計日誌中查找denied的提及來檢查此問題,通常位於/var/log/audit/audit.log。

最好修復此問題的方法是使用標準路徑,/ etc/httpd進行配置,/ var/www進行內容。


另一種可能是您的設置在你的shell或sshd的配置(我不知道如果是後者甚至有可能),一些奇怪的網絡服務器設置的東西。看看〜/ .bashrc和〜/ .bash_profile。

+0

我不確定SELinux是否正在運行,甚至是否已安裝。系統中不存在「sestatus」和「getenforce」。這是相當舊的Ubuntu 12.04 –