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 素材场景中光线烘焙后灯光失效
  • ¥15 请教一下各位,为什么我这个没有实现模拟点击
  • ¥15 执行 virtuoso 命令后,界面没有,cadence 启动不起来
  • ¥50 comfyui下连接animatediff节点生成视频质量非常差的原因
  • ¥20 有关区间dp的问题求解
  • ¥15 多电路系统共用电源的串扰问题
  • ¥15 slam rangenet++配置
  • ¥15 有没有研究水声通信方面的帮我改俩matlab代码
  • ¥15 ubuntu子系统密码忘记
  • ¥15 保护模式-系统加载-段寄存器