具有不同文档根目录的 Apache2 目录

具有不同文档根目录的 Apache2 目录

我正在运行一个带有 icinga、一些个人静态内容和 nextcloud 的 apache 服务器。我希望它的工作方式如下;

domain/ (all my static stuff)
      /nextcloud
      /icingaweb2

目录结构是

/var/www/html (all my personal stuff)
/var/www/nextcloud

其配置如下

<VirtualHost *:80>
ServerAdmin <email>
DocumentRoot "/var/www/html"
ServerName <url>
Alias  "/nextcloud/" "../nextcloud"

Options MultiViews FollowSymlinks
<Directory "nextcloud/">  
AllowOverride All
Order allow,deny
Allow from all
</Directory>
TransferLog /var/log/apache2/nextcloud_access.log
ErrorLog /var/log/apache2/nextcloud_error.log
</VirtualHost>%     

我不太清楚 Icinga 是如何工作的,但它和静态部分都很好。Nextcloud 不行,我因此得到了 Forbidden 403。

这个配置可以工作,但是静态内容都不行;

<VirtualHost *:80>
ServerAdmin <email>
DocumentRoot "/var/www/nextcloud"
ServerName <url>
<Directory "/var/www/nextcloud/">
Options MultiViews FollowSymlinks

AllowOverride All
Order allow,deny
Allow from all
</Directory>
TransferLog /var/log/apache2/nextcloud_access.log
ErrorLog /var/log/apache2/nextcloud_error.log
</VirtualHost>% 

顺便说一下,我正在运行 Debian,谢谢

答案1

您是否已chown www-data:www-data -R /var/www/nextcloud 授予 apache2 文件所有权?

答案2

常见的方法是使用Alias具有绝对路径和<Directory/>具有相同路径的指令,如下所示:

<VirtualHost *:80>
    ServerName <url>
    ServerAdmin <email>
    DocumentRoot /var/www/html

    Alias /nextcloud/ /var/www/nextcloud
    <Directory /var/www/nextcloud>
        # --> enable stuff if needed, this should already be enabled in apache.conf
        #Options Indexes FollowSymLinks
        #AllowOverride None
        #Require all granted
    </Directory>

    # add logging etc.
</VirtualHost>

如果你需要访问控制并且有 Apache >=2.4,请替换弃用的语法

Order allow,deny
Allow from all

Require all granted

https://httpd.apache.org/docs/current/upgrading.html

相关内容