[!Tip]
Docker
部署php
服务
Docker部署php服务
[!NOTE]
镜像使用的是阿里的私人镜像
安装目录为/docker/nginx-web
1.创建docker网络
[!NOTE]
因为要使用到redis
以及php
,所以网络
我这边使用的自定义的bridge
网络
docker network create web-net
2.登录阿里镜像
docker login --username=yjy86868@163.com registry.cn-shenzhen.aliyuncs.com
3.部署php
3.1 创建目录
[!NOTE]
创建php
的配置地址以及项目存放地址
mkdir -P /docker/php-v8.1.10 && mkdir /php_projects
3.2 部署服务
[!NOTE]
有时候存在多版本的php
。这里指定的端口为9001
docker run --name php81-fpm \
-p 9001:9000 \
-v /php_projects/:/php_projects \
-v /docker/php-v8.1.10/conf/:/etc/php/conf \
-v /docker/php-v8.1.10/logs/:/etc/php/logs \
--network web-net \
-d registry.cn-shenzhen.aliyuncs.com/yjy_k8s/php:v8.1.10
3.3 添加扩展
[!NOTE]
需要添加国内阿里的apt-get源。不然很慢
sed -i "s@http://deb.debian.org@http://mirrors.aliyun.com@g" /etc/apt/sources.list
3.3.1 安装已有扩展
查看容器
docker ps -a
显示
9a2d2a63fd4d registry.cn-shenzhen.aliyuncs.com/yjy_k8s/nginx:v1.23.1 "/docker-entrypoint.…" 6 hours ago Up 32 minutes 0.0.0.0:801->80/tcp, :::801->80/tcp nginx-php8.1.10
5bac7581539b registry.cn-shenzhen.aliyuncs.com/yjy_k8s/php:v8.1.10 "docker-php-entrypoi…" 6 hours ago Up 33 minutes 0.0.0.0:9001->9000/tcp, :::9001->9000/tcp php81-fpm
a2eb66d84546 registry.cn-shenzhen.aliyuncs.com/yjy_k8s/nginx:v1.23.1 "/docker-entrypoint.…" 6 hours ago Up 33 minutes 0.0.0.0:80->80/tcp, :::80->80/tcp nginx-web
进入容器
docker exec -it php81-fpm /bin/bash
进入存放扩展的文件夹
cd /usr/src/ && ls
解压
tar xvf php.tar.xz
进入扩展文件夹
cd php-8.1.10/ext
更新apt-get
apt-get update
安装依赖
apt-get install libcurl4-openssl-dev libffi-dev libfreetype-dev
安装扩展
docker-php-ext-install calendar curl exif ffi gd mysqli opcache openssl pcntl pdo pdo_mysql
3.3.2 安装额外扩展
安装vim
apt-get update && apt-get install vim -y
安装 mongodb 扩展
安装
pecl install mongodb
添加
cd /usr/local/etc/php/conf.d &&
vim docker-php-ext-mongodb.ini
添加扩展
extension=mongodb.so
安装igbinary扩展
安装
pecl install igbinary
添加
cd /usr/local/etc/php/conf.d &&
vim docker-php-ext-igbinary.ini
添加扩展
extension=igbinary.so
安装redis扩展
安装
pecl install redis
[!NOTE]
安装过程中会询问是否使用igbinary
,输入yes
其他的则直接默认不使用
添加扩展
cd /usr/local/etc/php/conf.d &&
vim docker-php-ext-redis.ini
添加扩展
extension=redis.so
重启容器
安装扩展后重启容器使扩展生效
查看已安装的所有扩展
查看
php -m
显示
[PHP Modules]
bcmath
calendar
Core
ctype
curl
date
dom
exif
FFI
fileinfo
filter
ftp
gd
hash
iconv
igbinary
json
libxml
mbstring
mysqli
mysqlnd
openssl
pcntl
pcre
PDO
pdo_sqlite
Phar
posix
readline
redis
Reflection
session
SimpleXML
sodium
SPL
sqlite3
standard
tokenizer
xml
xmlreader
xmlwriter
Zend OPcache
zlib
[Zend Modules]
Zend OPcach
4.修改php.ini
所有的配置文件放在/usr/local/etc/php/conf.d
如果需要添加配置,则在该目录下添加一个ini
文件即可。配置项跟原来的方式一样
修改后重启以下容器确保已经加载即可。
发表回复