Docker部署php-apache版Moodle实例:本地无响应排查求助
Docker部署Moodle实例无响应排查请求
环境配置
- mariadb容器(镜像:
mariadb:latest) - php容器(镜像:
php:8.3-apache)
Docker容器均显示正常运行,使用nmap扫描localhost结果如下:
Nmap scan report for localhost (127.0.0.1) Host is up (0.000099s latency). Not shown: 997 closed tcp ports (conn-refused) PORT STATE SERVICE 80/tcp open http 443/tcp open https 3306/tcp open mysql Nmap done: 1 IP address (1 host up) scanned in 0.05 seconds
代码取自Moodle官方仓库的MOODLE_405_STABLE分支,已部署至容器内/var/www/html/moodle路径。
问题现象
浏览器访问localhost时,收到提示 127.0.0.1 didn’t send any data.(浏览器原生提示,非Apache错误日志),且Docker容器内无任何错误日志输出。已修改Apache的DocumentRoot与WORKDIR保持一致,但问题仍未解决,缺少错误反馈导致难以定位问题。
Docker配置详情
目录结构
- 根目录创建
moodle目录,存放克隆的仓库代码 - 创建空的
moodledata目录,已配置读写权限
docker-compose.yml
name: 'moodle_405' services: mariadb: image: mariadb:latest container_name: mariadb environment: - MYSQL_ROOT_PASSWORD=bitnami - MYSQL_DATABASE=moodle - MYSQL_USER=admin - MYSQL_PASSWORD=password volumes: - ./mariadb:/var/lib/mysql ports: - "3306:3306" moodle: image: php:8.3-apache container_name: moodle build: context: . dockerfile: Dockerfile environment: - MOODLE_DATABASE_HOST=mariadb - MOODLE_DATABASE_NAME=moodle - MOODLE_DATABASE_USER=admin - MOODLE_DATABASE_PASSWORD=password volumes: # ./moodle contains a simple fork from moodle's github repository - ./moodle:/var/www/html/moodle # ./moodledata is an empty folder that will be updated during moodle's setup - ./moodledata:/var/www/moodledata depends_on: - mariadb ports: - "80:8080" - "443:8443"
Dockerfile
FROM php:8.3-apache LABEL maintainer="John Whick <babayaga@continental.com>" LABEL description="John's Moodle setup for docker" LABEL version="1.2" # PHP extensions RUN apt-get update && apt-get install -y \ libpng-dev \ libjpeg-dev \ libfreetype6-dev \ libxml2-dev \ libzip-dev \ unzip \ git \ && docker-php-ext-install mysqli zip gd xml soap intl \ && a2enmod rewrite # Set Apache DocumentRoot RUN sed -ri -e 's!/var/www/html!/var/www/html/moodle!g' \ /etc/apache2/sites-available/*.conf \ /etc/apache2/apache2.conf \ /etc/apache2/conf-available/*.conf WORKDIR /var/www/html/moodle EXPOSE 80 EXPOSE 8080
内容的提问来源于stack exchange,提问作者Basile
相关产品推荐
相关产品推荐

