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

Docker PHP+Apache环境中Composer运行容器选择及服务异常排查

PHP容器未运行排查与Composer执行容器选择

一、解决"service 'php' is not running"问题

  1. 检查容器状态
    执行docker-compose ps查看所有服务状态,确认php容器是否处于Up状态。如果是Exit或Restarting,说明容器启动失败。

  2. 排查启动失败原因
    执行docker-compose logs php查看php容器的启动日志,常见问题包括:

    • Dockerfile构建时扩展安装失败(如mongodb扩展编译错误)
    • 本地挂载目录权限不足,容器内用户无法访问
    • 9000端口被宿主机其他进程占用
  3. 重新构建启动php服务
    执行docker-compose up -d --build php,强制重新构建镜像并启动容器,观察控制台输出的错误信息定位问题。

  4. 修正配置路径冲突
    你修改后的docker-compose.yml中,apache容器挂载./src:/usr/local/apache2/htdocs,但php容器挂载./:/usr/local/apache2/htdocs,两者路径不一致会导致Apache代理php时找不到文件。建议统一挂载路径:
    将php容器的volumes改为:

    volumes:
      - ./src:/usr/local/apache2/htdocs
      - ./src:/var/www
    

    保持working_dir与容器内项目目录一致,确保Apache代理路径和php容器内文件路径匹配。

二、运行Composer的正确容器选择

不需要单独创建Composer容器,直接使用已配置的php容器即可,理由如下:

  • 你的PHP Dockerfile已经通过COPY --from=composer /usr/bin/composer /usr/bin/composer安装了Composer
  • Composer依赖PHP环境,php容器包含项目所需的PHP版本、扩展(pdo、mongodb等),能避免环境不一致导致的依赖安装问题

执行Composer命令的方式

  1. 宿主机直接执行:
    docker-compose exec php composer install
    
  2. 进入php容器后执行:
    docker-compose exec php bash
    # 进入容器后默认在/var/www目录(对应本地./src),直接执行
    composer install
    

内容的提问来源于stack exchange,提问作者Néo

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.09 16:07:54