-
-
Save Ljz7/ef90d280a30462be31d9ae5f7bcfd864 to your computer and use it in GitHub Desktop.
Dockerized example for article at Pehapkari.cz about running multiple PHP versions: https://pehapkari.cz/blog/2017/03/27/multiple-php-versions-the-easy-way/
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
FROM debian:stretch | |
ENV DEBIAN_FRONTEND noninteractive | |
# install NGINX | |
RUN apt-get update && \ | |
apt-get install -y nginx --no-install-recommends && \ | |
rm -rf /var/lib/apt/lists/* | |
# install PHP 7.0 | |
RUN apt-get update && \ | |
apt-get install -y php7.0-cli php7.0-fpm --no-install-recommends && \ | |
rm -rf /var/lib/apt/lists/* | |
# install PHP 5.6 | |
RUN apt-get update && \ | |
apt-get install -y apt-transport-https ca-certificates curl gnupg --no-install-recommends && \ | |
rm -rf /var/lib/apt/* | |
RUN curl https://packages.sury.org/php/apt.gpg | apt-key add - | |
RUN echo 'deb https://packages.sury.org/php/ stretch main' > /etc/apt/sources.list.d/deb.sury.org.list | |
RUN apt-get update && \ | |
apt-get install -y php5.6-cli php5.6-fpm --no-install-recommends && \ | |
rm -rf /var/lib/apt/lists/* | |
# verify versions | |
RUN php7.0 -v | |
RUN php5.6 -v | |
RUN php -v | |
# clear active virtual hosts | |
RUN rm -f /etc/nginx/sites-enabled/* | |
# prepare PHP 7.0 virtual host | |
RUN mkdir /var/www/site-with-php7.0 | |
COPY index.php /var/www/site-with-php7.0/index.php | |
COPY site-with-php7.0.vhost /etc/nginx/sites-available/site-with-php7.0 | |
# prepare PHP 5.6 virtual host | |
RUN mkdir /var/www/site-with-php5.6 | |
COPY index.php /var/www/site-with-php5.6/index.php | |
COPY site-with-php5.6.vhost /etc/nginx/sites-available/site-with-php5.6 | |
# enable the virtual hosts | |
RUN ln -s ../sites-available/site-with-php5.6 /etc/nginx/sites-enabled | |
RUN ln -s ../sites-available/site-with-php7.0 /etc/nginx/sites-enabled | |
# (Docker-specific) install supervisor so we can run everything together | |
RUN apt-get update && \ | |
apt-get install -y supervisor --no-install-recommends && \ | |
rm -rf /var/lib/apt/lists/* | |
COPY supervisor.conf /etc/supervisor/supervisord.conf | |
RUN mkdir /run/php | |
EXPOSE 8870 8856 | |
CMD ["supervisord", "-c", "/etc/supervisor/supervisord.conf"] |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
<?php | |
phpinfo(); |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
server { | |
listen 8856 default_server; | |
listen [::]:8856 default_server; | |
server_name _; | |
root /var/www/site-with-php5.6; | |
index index.php; | |
location / { | |
include snippets/fastcgi-php.conf; | |
fastcgi_pass unix:/run/php/php5.6-fpm.sock; # adjust for the listen setting discussed above | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
server { | |
listen 8870 default_server; | |
listen [::]:8870 default_server; | |
server_name _; | |
root /var/www/site-with-php7.0; | |
index index.php; | |
location / { | |
include snippets/fastcgi-php.conf; | |
fastcgi_pass unix:/run/php/php7.0-fpm.sock; # adjust for the listen setting discussed above | |
} | |
} |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
[supervisord] | |
nodaemon = true | |
[program:php70] | |
command = php-fpm7.0 -F -y /etc/php/7.0/fpm/php-fpm.conf | |
user = root | |
autostart = true | |
[program:php56] | |
command = php-fpm5.6 -F -y /etc/php/5.6/fpm/php-fpm.conf | |
user = root | |
autostart = true | |
[program:nginx] | |
command = /usr/sbin/nginx -g 'daemon off;' | |
user = root | |
autostart = true |
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#!/bin/bash | |
docker build -t multiphp . | |
docker run --rm -P multiphp |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment