mac下使用docker来构建不同版本的php环境并安装扩展

薄洪涛4年前Linux1258

切换到mac后,我目前php环境是php7.3 ,但是一些老项目需要7.1 甚至5.6 的环境,特别是服务器上也有这种问题,所以我决定使用docker来部署不同的项目

首先安装docker

brew cask install docker

安装php7.1

php:7.1.30-fpm

运行容器,指定项目的名字,路径,端口等

docker run --name php7 -p 9071:9000 -v /Users/boht/chocwell/docker:/www  -d php:7.1.30-fpm

这里说下,是将9000端口映射到物理机的9071上,将物理机上/users/boht/chocwell/docker挂在到docker容器的/www上

然后我的nginx是没有用docker的,直接安装在物理机上的,可以通过监听不同的端口来实现交给不同的php来处理,示例配置如下

server {
    charset utf-8;
    client_max_body_size 128M;
    server_name www.docker.com
    listen 80; ## listen for ipv4
    root        /www;
    index       index.php;

    access_log      /Users/boht/chocwell/logs/docker-access.log;
    error_log       /Users/boht/chocwell/logs/docker-error.log;


    location / {
        # Redirect everything that isn't a real file to index.php
        try_files $uri $uri/ /index.php?$args;
    }


    location ~ \.php$ {
        include fastcgi_params;
        fastcgi_pass 127.0.0.1:9071;
        fastcgi_index index.php;
        fastcgi_param SCRIPT_FILENAME $document_root/$fastcgi_script_name;
        include fastcgi_params;
    }
    location ~ /\.(ht|svn|git) {
        deny all;
    }
}

到此为止,我们已经切换到php7.1环境了


现在我们已经搭建好了基本的php环境,还需要安装一些扩展,先查看下容器的id

boht@mac dnmp-master % docker ps
CONTAINER ID        IMAGE               COMMAND                  CREATED             STATUS              PORTS                    NAMES
f7631c430d23        php:7.1.30-fpm      "docker-php-entrypoi…"   6 hours ago         Up 6 hours          0.0.0.0:9071->9000/tcp   php7

我们首先进入到容器里面

 docker exec -it f7631c430d23 bash

进入到 /usr/local/bin/ 目录下

cd /usr/local/bin/

以安装mysql扩展为例

./docker-php-ext-install pdo_mysql

然后重启容器

docker restart f7631c430d23

bingo~

标签: docker

相关文章

git忽略上传配置文件

在使用git上传代码到github的时候,通常我们使用的编辑器(比如phpstorm等)会产生一些配置文件(.idea等),或者一些项目的配置信息,比如数据库信息;我们是不希望提交这些文件的;所以要用...

secure造成的循环登录

secure造成的循环登录

在安装nextcloud和ZenTao时,出现循环登录现象,就是输入用户名和密码之后会再次跳转到登录页,开始怀疑是session权限问题,将session的保存路径权限设置为777后,问题依旧,而且,...

编辑器之神Vim的使用

在这个蔚蓝色的星球上,流传着两大神器的传说: 据说Emacs是神的编辑器,而Vim是编辑器之神。今天我们来学习下编辑器之神Vim的使用;想当年我开始学习Vim的时候,最抓狂的事情莫过于怎么退出vim;...

chmod引出的问题

chmod引出的问题

上传代码后,尝试访问出现如下错误先尝试对文件修改权限[root@host wechat.bohongtao.online]# chmod -R 755 ...

Linux如何删除乱码文件

Linux如何删除乱码文件

之前使用rz命令上传文件的时候,由于上传不成功,出现了乱码文件,如图这时候,我想删除这个乱码文件,通过rm命令是不可以的,因为我无法打出这个文件的名字这时候我们可以通过inode来删除此文件1. 先查...

安装完宝塔后shadowsocks不能使用

安装完宝塔后shadowsocks不能使用

问题描述:近期买了个搬瓦工的服务器,配置了shadowsocks,可是FQ访问Google,速度还不错(看1080p视频还是可以的),然后想着安装宝塔来管理服务器,便于以后部署网站什么的,当安装完宝塔...

发表评论    

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。