You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PHP Docker环境下.htaccess无法访问,请求排查解决

解决Docker Apache无法读取.htaccess文件的问题

出现Server unable to read htaccess file, denying access to be safe错误,核心原因是Apache运行的www-data用户对挂载到容器内/var/www/html的本地目录及.htaccess文件没有读取权限,或者Apache配置未允许解析.htaccess。

解决步骤:

  1. 调整本地项目目录权限
    在本地项目根目录执行以下命令,确保文件和目录权限符合Apache要求:

    chown -R www-data:www-data ./
    chmod -R 755 ./
    chmod 644 ./.htaccess
    
    • 755权限让目录所有者可读写执行,其他用户可读可执行;
    • 644权限让.htaccess文件所有者可读写,其他用户可读,满足Apache的读取要求。
  2. 修改Dockerfile,配置容器内权限与Apache规则
    更新后的Dockerfile需添加权限配置和Apache AllowOverride设置:

    FROM php:7.4.30-apache
    
    RUN docker-php-ext-install pdo pdo_mysql
    RUN docker-php-ext-install mysqli && docker-php-ext-enable mysqli
    RUN a2enmod rewrite
    
    # 确保www-data拥有目录权限
    RUN chown -R www-data:www-data /var/www/html
    RUN chmod -R 755 /var/www/html
    
    # 修改Apache配置,允许解析.htaccess
    RUN sed -i '/<Directory \/var\/www\/html\/>/,/<\/Directory>/ s/AllowOverride None/AllowOverride All/' /etc/apache2/sites-available/000-default.conf
    
  3. 重新构建并启动容器
    执行以下命令重启服务:

    docker-compose down
    docker-compose build
    docker-compose up -d
    

内容的提问来源于stack exchange,提问作者Maxime2i

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.24 21:46:16