php环境搭建docker版

本例使用的是电脑是MacBook Pro,搭建架构是:宿主机(mac)Nginx,Docker里部署PHP7.2-FPM

宿主机安装Nginx¶

可自行编译或者下载安装包,我这里选择了brew安装

宿主机安装Docker¶

我这里选择【Mac with Apple Chip】下载版本,安装,然后选择国内源

"registry-mirrors": [
    "http://registry.docker-cn.com",
    "http://hub-mirror.c.163.com"
],

docker 安装 php7.2.34¶

0、搜索php源:
https://hub.docker.com/_/php?tab=tags&page=1&name=7.2-fpm

php:7.2-fpm.png

1、安装PHP
docker pull php:7.2-fpm
docker run -d --name php72-fpm -p 9527:9000 -v /Users/liyuchao/xxx:/var/www/html php:7.2-fpm
「说明」
9527 端口是给php72-fpm用的,后续nginx配置项里,需要注意这个
/var/www/html 是php-fpm默认web目录

2、docker 中安装PHP扩展
大部分都可以使用 docker-php-ext-install安装,例如:
docker-php-ext-install pdo_mysql gd
redis使用pecl安装
pecl install redis
docker-php-ext-enable redis

比较特殊的几个标记了一下对应的版本号,需要自行编译安装
安装apcu:
https://pecl.php.net/get/apcu-5.1.21.tgz
phpize
make
make install

安装imagick: 参考 https://blog.csdn.net/weixin_34094559/article/details/116174201

安装gd:
apt-get install --allow-downgrades -y zlib1g=1:1.2.8.dfsg-5 zlib1g-dev libz-dev libfreetype6-dev libjpeg62-turbo-dev libpng-dev
&& docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/
&& docker-php-ext-install -j$(nproc) gd

docker安装ps [ps: command not found]

apt-get update
apt install procps

宿主机(mac)配置nginx¶

在/opt/homebrew/etc/nginx/servers下新增一个文件:

server {
    listen 80;
    server_name 127.0.0.1;
    root /Users/liyuchao/xxx;

    access_log  /usr/local/var/log/nginx/php-access.log;
    error_log   /usr/local/var/log/nginx/php-error.log;

    location / {
        autoindex on;
        index  index.html index.htm index.php;
        try_files $uri $uri/ /index.php?$query_string;
    }
    
    location ~ \.php$ {
        fastcgi_pass   127.0.0.1:9527;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www/html$fastcgi_script_name;
        include        fastcgi_params;
    }
}

nginx -s reload
不出意外访问http://127.0.0.1/,可以看到 hello world!

docker命令科普¶

docker ps -a 显示所有的容器,包括未运行的
docker images 查看镜像
docker commit -m="描述信息" -a="作者" 容器id 目标镜像名:[TAG] 将容器打包成镜像
docker commit -m"banban php72-fpm" -a"liyuchao" 3a3d106f102c php-banban:7.2-fpm
docker save 51303b7c2668 >lyc.tar 导出镜像
docker load < lyc.tar 导入镜像
docker images
docker tag xxxxxx php:7.2-fpm

你可能感兴趣的:(php环境搭建docker版)