温馨提示×

ubuntu apache2怎么设置目录权限

小樊
46
2026-09-20 11:41:13
栏目: 智能运维

在 Ubuntu 下使用 Apache2 时,“目录权限”通常分为 文件系统权限 和 Apache 配置权限 两部分。下面按常见场景说明。


一、文件系统权限(Linux 权限)

Apache 通常以用户 www-data 运行。

1. 设置目录归属

sudo chown -R www-data:www-data /var/www/html

2. 设置目录和文件权限

# 目录 755
sudo find /var/www/html -type d -exec chmod 755 {} \;

# 文件 644
sudo find /var/www/html -type f -exec chmod 644 {} \;

如果网站需要写文件(如上传目录):

sudo chown -R www-data:www-data /var/www/html/uploads
sudo chmod -R 775 /var/www/html/uploads

二、Apache 配置权限(Directory 指令)

编辑站点配置:

sudo nano /etc/apache2/sites-available/000-default.conf

示例:

<VirtualHost *:80>
    DocumentRoot /var/www/html

    <Directory /var/www/html>
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

关键参数说明

  • Require all granted:允许所有人访问
  • AllowOverride All:允许 .htaccess 覆盖配置
  • Options -Indexes:禁止目录列表(更安全)
  • Options Indexes:允许目录浏览

三、常见需求示例

1. 禁止目录浏览

<Directory /var/www/html>
    Options -Indexes
    Require all granted
</Directory>

2. 限制 IP 访问

<Directory /var/www/html/admin>
    Require ip 192.168.1.100
</Directory>

3. 需要 rewrite(如 WordPress)

AllowOverride All

并启用模块:

sudo a2enmod rewrite
sudo systemctl restart apache2

四、修改后重启 Apache

sudo systemctl restart apache2

五、排错建议

  • 403 错误:检查 Require 和文件权限
  • 500 错误:检查 .htaccess
  • 查看日志:
sudo tail -f /var/log/apache2/error.log

如果你能具体说明是 哪个目录 / 什么用途(如上传、API、后台),我可以给你更精确的配置。

0 踩