Linux 发行版本信息:
cat /proc/version
Linux version 6.1.0-9-amd64 ([email protected]) (gcc-12 (Debian 12.2.0-14) 12.2.0, GNU ld (GNU Binutils for Debian) 2.40) #1 SMP PREEMPT_DYNAMIC Debian 6.1.27-1 (2023-05-08)
apache2
版本信息:
sudo dpkg -l apache2
Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name Version Architecture Description
+++-==============-============-============-=================================
ii apache2 2.4.57-2 amd64 Apache HTTP Server
文件default.conf
如下:
cat /etc/apache2/sites-enabled/000-default.conf
<VirtualHost *:80>
ServerName localhost
DocumentRoot /var/www/html
<Directory /var/www/html>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
将文件模式设置为 755 并设置所有权www-data
:
sudo chmod -R 755 mydoc/mydoc/build/html/*
sudo chown -R www-data:www-data mydoc/mydoc/build/html
并将它们全部复制到/var/www/html
sudo cp -R mydoc/mydoc/build/html/* /var/www/html
现在我可以访问 中的所有内容127.0.0.1
,直接更改设置default.conf
:
cat /etc/apache2/sites-enabled/000-default.conf
<VirtualHost *:80>
ServerName localhost
DocumentRoot /home/debian/mydoc/mydoc/build/html
<Directory /home/debian/mydoc/mydoc/build/html>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
</VirtualHost>
重新启动apache2:
sudo systemctl restart apache2
那为什么没有权限访问该资源呢?
Forbidden
You don't have permission to access this resource.
Apache/2.4.57 (Debian) Server at 127.0.0.1 Port 80
我的debian11+apache2没有出现这样的情况!
禁用 apparmor 可以解决该问题:
sudo systemctl disable apparmor
sudo reboot
除了禁用 apparmor 之外,是否有更好的方法来解决该问题?
答案1
禁用 apparmor 可以解决该问题:
sudo systemctl disable apparmor
sudo reboot
除了禁用 apparmor 之外,是否有更好的方法来解决该问题?
答案2
为什么不将 DocumentRoot 设置为/mydoc/mydoc/build/html
而不是/home/debian/mydoc/mydoc/build/html
.
或者你可以尝试一下chmod -R 777 /home/debian/mydoc/mydoc/
。