/var/www/ 中的循环符号链接

/var/www/ 中的循环符号链接

我正在运行apache2。我正尝试从我的项目位置到 apache 的 建立一个符号链接/var/www/,它将文件拉到主机。

在我的项目目录中myProject,我运行:

sudo ln -s . /var/www/myProject

当我转到 时0.0.0.0:90,它确实在索引中显示 myProject 文件夹。但是,每次我单击 myProject 时,服务器都会循环回到原始索引。如果我单击 myProject 3 次,URL 就会变成0.0.0.0:90/myProject/myProject/myProject,索引与刚才的相同0.0.0.0:90

这是我的/etc/apache2/sites-enabled/000-default

<VirtualHost *:90>
    ServerAdmin webmaster@localhost

    DocumentRoot /var/www
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        Order allow,deny
        allow from all
    </Directory>

    ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
    <Directory "/usr/lib/cgi-bin">
        AllowOverride None
        Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
        Order allow,deny
        Allow from all
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    # Possible values include: debug, info, notice, warn, error, crit,
    # alert, emerg.
    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

我尝试将 更改FollowSymLinks+FollowSymLinks,但没有效果。

有什么想法吗?谢谢

答案1

这与 Apache 无关。

这是您建立链接的方式。

ln -s不会.相对于当前目录进行评估。始终会创建指向结果链接文件的相对链接。

它将创建一个链接到.其中/var/www将评估为完整路径/var/www/.

您需要用完全限定的文件名替换点

sudo ln -s /home/me/myProject /var/www/myProject

笔记 只是暗示(因为我自己也有类似的设置):不要忘记确保 Apache 对您的项目文件具有读取权限。很容易忘记,但结果“403”可能会让您认为是配置错误而不是文件权限错误。

相关内容