在 Ubuntu 上修改 Apache2 的根目录(DocumentRoot),一般按下面步骤来即可。
Ubuntu 中 Apache2 默认根目录是:
/var/www/html
对应配置文件通常是:
/etc/apache2/sites-enabled/000-default.conf
sudo mkdir -p /home/www/myweb
sudo chown -R www-data:www-data /home/www/myweb
sudo chmod -R 755 /home/www/myweb
⚠️ 注意:Apache 运行用户是
www-data,目录权限必须可读
编辑默认站点配置文件:
sudo nano /etc/apache2/sites-enabled/000-default.conf
修改或添加:
<VirtualHost *:80>
ServerAdmin webmaster@localhost
DocumentRoot /home/www/myweb
<Directory /home/www/myweb>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
有些系统还会受 /etc/apache2/apache2.conf 限制:
sudo nano /etc/apache2/apache2.conf
找到:
<Directory /var/www/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>
在下面新增:
<Directory /home/www/myweb>
Options Indexes FollowSymLinks
AllowOverride All
Require all granted
</Directory>
sudo apache2ctl configtest
sudo systemctl restart apache2
Ubuntu 默认使用 AppArmor,如果目录不在 /var/www,可能需要:
sudo aa-disable /etc/apparmor.d/usr.sbin.apache2
(或改为正确权限策略,不建议直接禁用)
在浏览器访问:
http://localhost
或服务器 IP
Require all granted 没加如果你是用 多站点(vhost)、HTTPS、或者 Docker / LNMP 环境,可以告诉我,我可以给你更精确的配置。