切换到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~