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