原本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出來)
4.需要啟用模組proxy_fcgi
(因為原本就使用php-fpm架構,所以此處不需要設定)
/etc/httpd/conf.modules.d/00-proxy.conf
LoadModule proxy_fcgi_module modules/mod_proxy_fcgi.so
5.設定apache virtualhost來使用php7.4-fpm
centos的路徑在/etc/httpd/conf.d/
virtualhost設定檔內容如下:
<VirtualHost *:80> DocumentRoot "/var/www/php7-test" ServerName shop.yslifes.com #<FilesMatch \.php$> #SetHandler application/x-httpd-php #SetHandler proxy:fcgi://127.0.0.1:9001/var/www/php7-test/ #SetHandler "proxy:unix:/var/run/php5-fpm.sock" #</FilesMatch> ProxyPassMatch ^/(.*\.php(/.*)?)$ fcgi://127.0.0.1:9001/var/www/php7-test/$1 <Directory "/var/www/php7-test"> #Options -Indexes +FollowSymLinks +MultiViews AllowOverride All #Require all granted </Directory> #ServerAlias shoptest.the-creations.com.tw #RLimitMEM 16 </VirtualHost>
6.撰寫程式測試
建立目錄
sudo mkdir /var/www/php7-test sudo nano /var/www/php7-test/index.php
index.php內容
<?php phpinfo();?>
7.連線測試一下(舊圖,應該為PHP Version 7.4 才對)
參考資料: