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
JavaScript
x
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
JavaScript
<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.
Advertisement
Answer
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
JavaScript
version: '3.2'
services:
php-apache:
build:
context: ./apache-php
ports:
- 80:80
- 8060:8060
volumes:
- ./DocumentRoot:/var/www/html:z
Apache config
JavaScript
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
JavaScript
apache-php
¬ sqlite3_ext
¬ 000-default.conf (Apache config)
¬ Dockerfile
¬ php.ini
docker-compose.yml
Dockerfile
JavaScript
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