如何在 /var/www/ 中使用符号链接配置 apache2?

use*_*279 15 permissions virtualhost apache2 symbolic-link

我想在我的 Ubuntu (14.04) 上设置一个本地 Web 服务器。所以我安装了所有软件以获得 LAMP 服务器。

问题是我在创建虚拟主机时做错了。我想在我的本地主机上创建不同的子域。例如,site1.localhost 和 site2.localhost。

在我的/var/www/目录中,我创建了一个符号链接“site1”,指向/home/user/Workspaces/site1.

在我的 Apache error.log 文件中,我收到以下错误。

[core:error] [pid 12679] [client 127.0.0.1:59006] AH00037: Symbolic link not allowed or link target not accessible: /var/www/site1
Run Code Online (Sandbox Code Playgroud)

在我的 apache 配置中,我有:

<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
Run Code Online (Sandbox Code Playgroud)

所以我认为文件夹的权限有问题。我在谷歌上搜索,发现有几个人有同样的问题,但那里提供的所有答案都没有解决。我在 www-data 组中添加了自己的用户名等等。

所以ls -la /var/www返回:

total 12
drwxrwsr-x  3 user www-data 4096 okt 13 19:08 .
drwxr-xr-x 14 root root     4096 okt  1 22:50 ..
drwxr-xr-x  2 root www-data 4096 okt  1 22:50 html
lrwxrwxrwx  1 root www-data   29 okt 13 19:08 site1 -> /home/user/Workspaces/site1/
Run Code Online (Sandbox Code Playgroud)

ls -la /home/juul/Workspaces/site1返回:

total 24
drwxrwxr-x 4 user www-data 4096 okt 13 18:21 .
drwxrwx--- 3 user user     4096 okt 13 17:31 ..
-rw-rw-r-- 1 user user        0 okt 13 18:21 index.html
drwxrwxr-x 4 user www-data 4096 okt 13 16:12 .metadata
drwxrwxr-x 5 user www-data 4096 okt 13 16:53 Project
Run Code Online (Sandbox Code Playgroud)

希望有人能帮我解决这个问题:-)

mur*_*uru 5

这些权限阻止apache您访问

drwxrwx--- 3 user user     4096 okt 13 17:31 ..
Run Code Online (Sandbox Code Playgroud)

您需要为其他人授予执行权限:

chmod o+x /home/juul/Workspaces/
Run Code Online (Sandbox Code Playgroud)

(也许/home/juul/还有)。


Mar*_*ied 3

我在 14.04 上安装了标准的 apache。没有指定“www-data”的文件或目录。这些都是你自己改的吗?关于如何设置 Web 服务器,有很多过时或根本不正确的信息,因此请小心您关注的人,并撤消无效的信息。

也就是说,“site1”应该位于该html目录中,并且归您所有。它实际上不需要是符号链接;您可以在配置文件中指定不同的目录。像这样的东西:

# Add this to the end of the existing 000-default.conf file (after "</VirtualHost>")
<VirtualHost *:80>
    <Directory  /home/user/Workspaces/site1>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride All
        Order allow,deny
        allow from all
    </Directory>
    DocumentRoot /home/user/Workspaces/site1
    ServerName site1
</VirtualHost>
Run Code Online (Sandbox Code Playgroud)