Docker PHP: 5.3, 5.4, 5.6, 7.0
Современные сайты используют последнюю версию PHP и с их установкой, едва ли могут возникнуть проблемы. Но что делать, если нужно запустить на сервере старый код, который не работает в новых версиях PHP. Здесь на помощь приходит Docker, позволяющий запустить нужную PHP версию в отдельном контейнере.
В данном материале представлены различные сборки PHP, которые я использую в своих проектах.
PHP 5.3
https://hub.docker.com/repository/docker/brahman/php53am
Сборка включает:
- PHP 5.3
- GD
- APC
- Memcached
- sSMTP
Команда запуска:
docker run --name=php53am --restart=always -d -v /var/www:/var/www -v /var/docker/php53am/php.ini:/etc/php5/fpm/php.ini --add-host smtp-server:172.17.0.1 --add-host mysql-server:172.17.0.1 -p 9000:9000 brahman/php53am
В настройках запуска вы можете указать:
- -v /var/www:/var/www — путь к папке с файлами проекта;
- -v /var/docker/php53am/php.ini:/etc/php5/fpm/php.ini — путь к ini файлу;
- —add-host smtp-server:172.17.0.1 — адрес сервера рассылки почты;
- —add-host mysql-server:172.17.0.1 — адрес сервера базы данных. Обычно это локальный адрес самого сервера.
- -p 9000:9000 — порт, по которому можно подключиться к PHP.
PHP 5.4
https://hub.docker.com/repository/docker/brahman/php54
Сборка включает:
- PHP 5.4
- GD
- APC
- Memcached
- sSMTP
Команда запуска:
docker run --name=php54 --restart=always -d -v /var/www:/var/www --add-host smtp-server:172.17.0.1 --add-host mysql:172.17.0.1 -p 9000:9000 brahman/php54
PHP 5.6
https://hub.docker.com/repository/docker/brahman/php56
Сборка включает:
- PHP 5.6
- GD
- Opcache
- Memcached
- sSMTP
Команда запуска:
docker run --name=php56 --restart=always -d -v /var/www:/var/www --add-host smtp-server:172.17.0.1 --add-host mysql:172.17.0.1 -p 9000:9000 brahman/php56
PHP 7.0
https://hub.docker.com/repository/docker/brahman/php7
Сборка включает:
- PHP 7.0
- GD
- Opcache
- sSMTP
- Mysqli
Команда запуска:
docker run --name=php7 --restart=always -d -v /var/www:/var/www -v /var/log/mail.log:/var/log/mail.log -v /var/log/nginx:/var/log/nginx --add-host smtp-server:172.17.0.1 --add-host inet-site.ru:172.17.0.1 -p 9000:9000 brahman/php7
Все сборки включают исходный Dockerfile и ссылки на открытые репозитории, что позволяет настроить конкретный PHP контейнер с учётом вашей специфики использования.