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

使用docker-compose部署LAMP时如何配置.htaccess启用mod_rewrite

你之前找到的配置是针对纯httpd:alpine镜像的,你当前使用的php:7.3-apache属于Debian衍生版本,配置路径、模块启用命令均有区别,不要直接照搬对应的sed指令。

临时生效方案(仅适合测试,容器重建后配置会丢失)

你提到的docker exec方式可以实现临时配置,操作步骤如下:

  • 进入运行中的php-apache容器:docker exec -it linuxconfig_php-httpd_1 bash
  • 执行官方自带的模块启用命令开启rewrite:a2enmod rewrite
  • 编辑Apache默认站点配置文件/etc/apache2/sites-available/000-default.conf,在<VirtualHost *:80>块内DocumentRoot /var/www/html语句下方添加以下配置,允许.htaccess生效:
    <Directory /var/www/html>
        AllowOverride All
    </Directory>
    
  • 重启Apache服务:service apache2 restart
  • 直接把你写好的.htaccess规则放到本地的./DocumentRoot目录下即可,你已经做了目录挂载,本地修改会直接同步到容器内。

持久化生效方案(容器重建不会丢失配置,推荐正式使用)

方案1:无需编写Dockerfile,直接挂载配置文件

  • 先从运行的容器里把默认站点配置复制到本地目录:
    mkdir ./apache-conf
    docker cp linuxconfig_php-httpd_1:/etc/apache2/sites-available/000-default.conf ./apache-conf/
    
  • 编辑本地的./apache-conf/000-default.conf,按照上述方法添加AllowOverride All配置
  • 修改你的docker-compose.yml中php-httpd服务的配置,新增挂载项和启动命令:
    php-httpd:
        image: php:7.3-apache
        ports:
            - 80:80
        volumes:
            - "./DocumentRoot:/var/www/html"
            # 挂载本地修改后的站点配置
            - "./apache-conf/000-default.conf:/etc/apache2/sites-available/000-default.conf"
        # 启动时自动启用rewrite模块再运行Apache
        command: bash -c "a2enmod rewrite && apache2-foreground"
    
  • 重启服务生效:sudo docker-compose down && sudo docker-compose up -d

方案2:编写自定义Dockerfile,适合长期维护的项目

  • 在docker-compose.yml同级目录新建Dockerfile,内容如下:
    FROM php:7.3-apache
    # 启用rewrite模块
    RUN a2enmod rewrite
    # 复制修改后的站点配置到容器内
    COPY ./apache-conf/000-default.conf /etc/apache2/sites-available/000-default.conf
    # 可选:如果不需要本地实时修改.htaccess,可直接复制到容器内
    # COPY ./.htaccess /var/www/html/.htaccess
    
  • 修改docker-compose.yml中php-httpd的配置,把image字段替换为build字段:
    php-httpd:
        build: . # 从当前目录的Dockerfile构建镜像
        ports:
            - 80:80
        volumes:
            - "./DocumentRoot:/var/www/html"
    
  • 启动时添加build参数自动构建镜像:sudo docker-compose up -d --build

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.10.17 17:45:03