2017-07-10 32 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 –