同前一篇設定
此次改用docker來做php-fpm然後利用apache proxy來執行php程式
Docker 環境
debian
PHP 7.4
參考此Dockerfile
https://github.com/yappabe/docker-php
同前一篇設定
debian
PHP 7.4
https://github.com/yappabe/docker-php
參考
http://mickey-tang.blogspot.com/2018/05/php72sybase.html
環境:
Ubuntu 18.04
PHP 7.2
Apache 2.4
安裝好Apache php 後,另需要安裝php-sybase,此時會自動安裝FreeTDS
sudo apt-get install -y php7.2-sybase
增加FreeTDS 設定值
sudo nano /etc/freetds/freetds.conf
[sybase_db] host = db.com.tw port = 5000 tds version = 5.0Read More
原本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 php及Mariadb服務,可以快速部署安裝於多種OS,不管是在開發或是正式上線環境都可以一樣。
images使用是官方的apache php 7.2版本;mariadb:latest,其中apache-php部份還需要另外安裝mysqli擴展套件。
指令如下
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 Morempm要修改成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