Apache使用多個docker php-fpm

原本centos linux安裝Apache及php5.4(php-fpm),最近一些framework只支援php7以上,想到要昇級或共存就覺得會有一場災難,想說是否可以使用docker php7.4-fpm來直接使用,減少系統的昇級或更換過程的一些問題。

可以直接略過1,2二步奏直接pull build好的images

docker pull catyku/php-fpm7.4

https://hub.docker.com/r/catyku/php-fpm7.2/

1.首先建立自己需要的php-fpm Dockerfile

FROM php:7.4-fpm
MAINTAINER yku "[email protected]"
#  設定時區
ENV TZ=Asia/Tapiei
RUN ln -snf /usr/share/zoneinfo/$TZ /etc/localtime && echo $TZ > /etc/timezone
#  更新系統及增加php外掛mysqli pdo_mysql等
RUN apt-get update && apt-get install -y \
        git apt-utils libzip-dev \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libpng-dev \
    && docker-php-ext-configure gd --with-jpeg=/usr/include/ --with-freetype=/usr/include/ \
    && docker-php-ext-install -j$(nproc) gd \
        && docker-php-ext-install zip \
        && docker-php-ext-install pdo_mysql \
        && docker-php-ext-install opcache \
        && docker-php-ext-install mysqli \
        && rm -r /var/lib/apt/lists

2.編譯Dockerfile

docker build -t catyku:php-fpm7.4 .

3.然後啟動docker

docker run -d --name php-fpm7.4 -p 127.0.0.1:9001:9000 -v /var/www/:/var/www catyku:php-fpm7.4

因為9000 port已經給原本系統的php5.4-fpm使用了,只好把它調開,並指定www工作資料夾給php7.4-fpm

(建議可以細調php-fpm的設定檔,或是把設定檔也-v出來)

Read More

docker安裝apache、mariadb、php

在docker安裝Apache php及Mariadb服務,可以快速部署安裝於多種OS,不管是在開發或是正式上線環境都可以一樣。

images使用是官方的apache php 7.2版本;mariadb:latest,其中apache-php部份還需要另外安裝mysqli擴展套件。

《Docker —— 從入門到實踐-》正體中文版

指令如下

資料庫部份

sudo docker search mariadb
sudo docker pull mariadb
sudo docker run -d --name mariadb -e MYSQL_ROOT_PASSWORD=youpass --restart unless-stopped mariadb

參數–restart unless-stopped可以讓os在重開機時自動啟動docker container,不過自已下指令停止時不會自動再啟動

Read More

Centos 7安裝php-fpm及使用mpm event

mpm要修改成event模式時,在預設狀況下修改apache的config 重啟apache會有錯誤

#LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
#LoadModule mpm_worker_module modules/mod_mpm_worker.so
LoadModule mpm_event_module modules/mod_mpm_event.so
Syntax error on line 31 of /etc/httpd/conf.d/php.conf: event

參考資料Apache的三种MPM模式比较:prefork,worker,event

ps.怎麼知道目前apache是什麼模式呢?可以輸入

httpd -V

Server MPM:event

httpd-V
Read More