Mac M1芯片 docker搭建php环境


1 下载nginx

  docker pull nginx

2 查看是否下载成功

  docker images(此命令 是查看当前docker所有已经下载完成的镜像)

3 下载php

docker pull php:5.6-fpm (下载自己需要的版本 注意一定要下载fpm版本 否则无法和nginx建立联系 下载成功后 使用docker images 显示如上图)

4 启动nginx

docker run \
--name nginx \
-p 80:80 \
-v ~/code/udc/dev:/var/www/html \
-v ~/docker/nginx/conf/:/etc/nginx/conf.d \
--privileged=true \
-it \
-d \
nginx

参数解释:

  -- name: 启动的ngixn的别名

  -p: 本地端口:容器端口

  -v: 本地代码位置:服务器中代码根目录

  -v: 本地nginx配置文件(自定义):容器中ngxin配置的位置

  --privileged=true:是否有root权限

5 启动php

docker run \
--name udc-php -d \
-p 9000:9000 \
-v ~/code/udc/dev:/var/www/html \
-v ~/docker/php/php56/etc:/usr/local/etc/php/conf.d \
--privileged=true \
-it \
-d \
php:5.6-fpm

参数解释:

  -- name: 启动的php的别名

  -p: 本地端口:容器端口

  -v: 本地代码位置:服务器中代码根目录

  -v: 本地php配置文件(自定义):容器中php配置的位置

  --privileged=true:是否有root权限

 

6 查看容器php的ip
  docker inspect --format='{{.NetworkSettings.IPAddress}}' udc-php
举例:172.17.0.2

7 nginx 配置

server {
  listen  80;
  server_name www.test.com;
  root   /var/www/html; // 上述启动nginx中 设置的代码根目录

  location / {
   index index.html index.htm index.php;
  }

  location ~ \.php(.*)$ {
   fastcgi_pass 172.17.0.2:9000; //这个就是docker inspect --format='{{.NetworkSettings.IPAddress}}' udc-php 输出的ip地址
   fastcgi_index index.php;
   fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
   include  fastcgi_params;
  }
}

8 安装PHP 扩展

> 8.1 查看刚才启动的php 容器ID

> 8.2 进入容器

  docker exec -it 0f060bbdc735 /bin/bash

  执行:

    apt-get update 更新apt

    apt-get install wget 安装wget功能

> 8.3 找一个自己想要保存下载的目录 我用的是 /mnt

cd /mnt

> 8.4 安装yaf框架

1 下载安装包 wget http://pecl.php.net/get/yaf-2.3.5.tgz

2 解压安装包 tar -zxvf yaf-2.3.5.tgz

3 cd yaf-2.3.5

4 找到 phpize的位置 并执行 我的在:/usr/local/php5.4/bin/phpize

5 执行:./configure --with-php-config=/usr/local/php5.4/bin/php-config

6 编译:make && make install

7 找到php.ini的位置 

  添加:extension=yaf.so

8 重启一下php