Git Product home page Git Product logo

docker-apache-php-fpm's Introduction

Running PHP via an apache + php-fpm container

in the spirit of fooling around and finding out.

Here, we'll build a container image that will run PHP via Apache and PHP-FPM running inside the same container.

Because we're running 2x processes in the container (apache2 and php-fpm), we need something to run as PID 1 (first process) which will manage those processes and respond to POSIX SIGNALs (see: https://dsa.cs.tsinghua.edu.cn/oj/static/unix_signal.html). The simplest way to do this is have supervisor run as PID 1 and let it manage the starting, stopping and restarting of the apache and php-fpm processes.

See: http://supervisord.org for more info.

For this use case, we won't restart either php-fpm or apache upon failure. Instead, we will rely on a container orchestrator to restart the container based on a health-check call to /xx-fpm.ping which will fail if either apache or php-fpm fail.

View the Dockerfile / config files for more details. We'll be using an official PHP container image (php:php8.2-fpm-bullseye at the time of writing) as our base image.

To build

Example using the version at time of writing:

docker build -t customphp:php8.2-apache-fpm-bullseye .

To run

docker run --rm --name php -p 8080:80 customphp:php8.2-apache-fpm-bullseye

You can override any of the environment variables in the Dockerfile. e.g. to enable the php-fpm slow log and set it to 1 second:

docker run --rm --name php -e PHP_fpm_request_slowlog_timeout=1 -p 8080:80 customphp:php8.2-apache-fpm-bullseye

Test

docker-apache-php-fpm's People

Contributors

drpauldixon avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    ๐Ÿ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. ๐Ÿ“Š๐Ÿ“ˆ๐ŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google โค๏ธ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.