访问 /var/www 下的应用程序时出现问题

访问 /var/www 下的应用程序时出现问题

我已经安装了 Ubuntu 14.04。

DocumentRoot 是/var/www/html

当我输入我的 URL 地址时,它工作正常:我的测试文件显示出来。当我尝试在和下安装的应用程序时/app1/app2它们都工作正常。(/var/www/app1,和/var/www/app2)。具体来说,在我的浏览器中,我可以转到我的<ip address>/app1,并且应用程序可以运行,与 一样<ip address>/app2

现在,我在/app3( ) 下安装了另一个应用程序,当我尝试在浏览器中访问它时,它一直说:找不到/var/www/app3请求的 url 。/app3

我将权限和所有权与我的其他应用程序进行了比较,甚至删除了 app3 文件并只放入我自己的 index.html 文件,但仍然说无法找到。

但是,当我将 更改为 时DocumentRoot/var/www/app3应用程序运行正常。/app3顺便说一下,是 DokuWiki。我在那里发过帖子,但没有人回复。我不希望它成为我的文档根目录。

这是为什么?为什么我的其他应用程序(app1 和 app2)可以正常工作,而 app3 却找不到?

该结构如下所示/var/www

drwxr-x--x 10 root     www-data 4096 May 23 07:40 app1  
drwxrwxr-x  7 root     root     4096 Mar 19 15:29 app3  
drwxrwx--x  2 root     www-data 4096 May 21 16:45 html  
drwxr-x--- 13 root     www-data 4096 May 17 10:00 app2  
drwxr-xr-x  2 root     www-data 4096 May 23 07:47 test  

因此,它可以再次在我的浏览器中/app1运行/app2/app3/test说无法找到它。

其内部/test结构如下:

-rw-r--r-- 1 www-data root    108 May 23 07:47 index.html  

$ ls -l app3
drwxrwxr-x  2 root root  4096 Mar 19 15:29 bin
drwxrwxr-x  2 root root  4096 Mar 19 15:29 conf
-rw-rw-r--  1 root root 18092 Mar 19 15:29 COPYING
drwxrwxr-x 12 root root  4096 Mar 19 15:29 data
-rw-rw-r--  1 root root   182 Mar 19 15:29 index.php
...

我之前也尝试过将 www-data 全部分组。在有效的目录中

$ ls -l app1
drwx------ 22 root www-data   4096 May 20 17:11 addons
-rw-r--r--  1 root root     639533 May 23 07:40 app.html
drwx------  6 root www-data   4096 May 20 17:11 css
drwx------  4 root www-data   4096 May 20 17:12 images
...

如果我直接app.html在浏览器中访问,则此方法有效。

$ ls -l app2
drwxr-x--- 21 root     www-data  4096 May 17 09:59 3rdparty  
drwxr-x--- 21 www-data www-data  4096 May 17 09:59 apps  
drwxr-x---  2 root     www-data  4096 May  6 14:34 assets  
-rw-r-----  1 root     www-data   477 Apr 23 15:57 AUTHORS  
drwxr-x---  2 www-data www-data  4096 May 17 10:12 config  
-rw-r-----  1 root     www-data  1941 Apr 23 15:57 console.php  
-rw-r-----  1 root     www-data 34520 Apr 23 15:57 COPYING-AGPL  
drwxr-x--- 19 root     www-data  4096 May 17 10:00 core  
-rw-r-----  1 root     www-data  4170 Apr 23 15:57 cron.php  
drwxr-x---  4 www-data www-data  4096 May 17 21:21 data  
-rw-r-----  1 root     www-data 23751 Apr 23 15:57 db_structure.xml  
-rw-r-----  1 root     www-data   179 Apr 23 15:57 index.html  
-rw-r-----  1 root     www-data  1792 Apr 23 15:57 index.php  
...  

index.html只是重定向到index.php

$ ls -l html
-rw-rw---- 1 root www-data   119 May 21 13:00 index.html  

这是该命令的结果grep -R app /etc/apache2/{sites,conf}-enabled

/etc/apache2/sites-enabled/000-default.conf:    # specifies what hostname must appear in the request's Host: header to
/etc/apache2/sites-enabled/default-ssl.conf:        #   when the CA certificates are directly appended to the server
/etc/apache2/sites-enabled/default-ssl.conf:        #   approach is that mod_ssl sends the close notify alert but doesn't wait for
/etc/apache2/sites-enabled/default-ssl.conf:        #   approach you can use one of the following variables:
/etc/apache2/sites-enabled/default-ssl.conf:        #    this when you receive I/O errors because of the standard approach where
/etc/apache2/conf-enabled/localized-error-pages.conf:# includes to substitute the appropriate text.
/etc/apache2/conf-enabled/localized-error-pages.conf:# You can modify the messages' appearance without changing any of the
/etc/apache2/conf-enabled/security.conf:# This currently breaks the configurations that come with some web application
/etc/apache2/conf-enabled/phpmyadmin.conf:      AddType application/x-httpd-php .php

答案1

我的所有应用程序都必须放在 DocumentRoot 中,然后它们才能运行。

令我感到困惑的是,有 2 个不在 DocumentRoot 中的应用程序仍然能运行,而且可以通过我的浏览器访问。

答案2

看起来你的权限可能被填满了。我建议这样做

chown -R root:www-data app3 test

这会将 app3 和 test 中所有文件和文件夹的所有者和组更改为所有者 = root 和组 = www-data。

希望这能为您解决问题。

相关内容