我正在运行一个带有 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