dongling5411 2019-05-01 15:58
浏览 82
已采纳

在apache docker容器中运行虚拟主机

I have two php applications in the same apache container and I'm trying to run one of them on a port since it needs to be accessible via a root domain and not a subfolder.

I want to run the application on port 8060 which I've tried doing using apache virtual hosts but it won't load the page (http://192.168.99.100:8060/) it just says connection refused. However the normal root ip - http://192.168.99.100 works fine. My docker file is as follows

version: '3.2'
  services:
    php-apache:
      build:
        context: ./apache-php
      ports:
        - 80:80
        - 8060:8060

      expose:
        - '8060'
      volumes:
        - ./DocumentRoot:/var/www/html:z

My apache configuration

<VirtualHost *:60>
    DocumentRoot /var/www/html/api
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

<VirtualHost *:80>
    ServerAdmin webmaster@localhost
    DocumentRoot /var/www/html
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Any help would be greatly appreciated.

  • 写回答

1条回答 默认 最新

  • dtzjvj3915 2019-05-02 08:15
    关注

    Thanks to @David Maze I found the problem I added the listen directives to the top of my apache configuration and changed the port numbers.

    docker-compose.yml

    version: '3.2'
    services:
      php-apache:
        build:
          context: ./apache-php
        ports:
          - 80:80
          - 8060:8060
    
        volumes:
          - ./DocumentRoot:/var/www/html:z
    

    Apache config

    Listen 80
    Listen 8060
    
    <VirtualHost *:8060>
        DocumentRoot /var/www/html/api
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
    
    <VirtualHost *:80>
        ServerAdmin webmaster@localhost
        DocumentRoot /var/www/html
        ErrorLog ${APACHE_LOG_DIR}/error.log
        CustomLog ${APACHE_LOG_DIR}/access.log combined
    </VirtualHost>
    

    Directory structure

    apache-php
       ¬ sqlite3_ext
       ¬ 000-default.conf (Apache config)
       ¬ Dockerfile
       ¬ php.ini
    docker-compose.yml
    

    Dockerfile

    FROM php:7.2.1-apache
    RUN docker-php-ext-install pdo pdo_mysql mysqli
    
    # Enable apache rewrite
    COPY 000-default.conf /etc/apache2/sites-available/000-default.conf
    
    #Install spatialite and create symlink for libproj.so.0
    COPY sqlite3_ext /etc/sqlite3_ext
    RUN apt-get update && apt-get -y install gdal-bin
    RUN ln -s /usr/lib/x86_64-linux-gnu/libproj.so.12 /usr/lib/x86_64-linux-gnu/libproj.so.0
    
    #Install gd library for images
    RUN apt-get install libpng-dev libfreetype6-dev libjpeg62-turbo-dev -qy \
        && apt-get clean \
        && rm -rf /var/lib/apt/lists/* /tmp/* /var/tmp/*
    RUN docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
        && docker-php-ext-install gd
    
    #Copy php ini
    COPY php.ini /usr/local/etc/php/php.ini
    RUN a2enmod rewrite
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 soildworks装配体的尺寸问题
  • ¥100 有偿寻云闪付SDK转URL技术
  • ¥30 基于信创PC发布的QT应用如何跨用户启动后输入中文
  • ¥20 非root手机,如何精准控制手机流量消耗的大小,如20M
  • ¥15 远程安装一下vasp
  • ¥15 自己做的代码上传图片时,报错
  • ¥15 Lingo线性规划模型怎么搭建
  • ¥15 关于#python#的问题,请各位专家解答!区间型正向化
  • ¥15 unity从3D升级到urp管线,打包ab包后,材质全部变紫色
  • ¥50 comsol温度场仿真无法模拟微米级激光光斑