docker 安装 thinkphp+nginx

#安装docker 默认已安装docker,安装地址:https://www.docker.com/php

1.下载php 和nginx镜像html

docker pull php

docker pull nginx

2.建立dockerfile, dockerfile 是由一系列命令和参数构成的脚本,这些命令应用于基础镜像并最终建立一个新的镜像。 #touch Dockerfilemysql

建立phpdockerfile文件夹,建立Dockerfile文件。nginx

FROM php:5.6-fpm

RUN apt-get update && apt-get install -y \
        libfreetype6-dev \
        libjpeg62-turbo-dev \
        libmcrypt-dev \
        libpng12-dev \
    && docker-php-ext-install -j$(nproc) iconv mcrypt \
    && docker-php-ext-configure gd --with-freetype-dir=/usr/include/ --with-jpeg-dir=/usr/include/ \
    && docker-php-ext-install -j$(nproc) gd

RUN docker-php-ext-install mbstring

RUN docker-php-ext-install mysqli

RUN docker-php-ext-install pdo && docker-php-ext-install pdo_mysql

运行build 建立镜像web

docker build -t pdophp .  //(pdophp)表明新镜像名非固定,(.) 表明当前目录 docker自动去找Dockerfile文件

3.根据新建立的pdophp镜像,创建容器互连php与nginx。并创建文件映射sql

//myphp 容器名(非固定),workend 网络组名称(非固定),/Users/xxx/Works/web/工做目录(非固定)
docker run --name myphp --net workend -v /Users/xxx/Works/web/:/var/www/html/ --privileged=true -d pdophp
//mynginx容器名(非固定),workend网络组名称(同名互连),/Users/xxx/Works/web 工做目录(非固定),/Users/xxx/Works/docker/nginx/conf.d/ nginx配置文件(非固定)
docker run --name mynginx  -p 80:80 --net workend  -v /Users/xxx/Works/web:/usr/share/nginx/html -v /Users/xxx/Works/docker/nginx/conf.d/:/etc/nginx/conf.d --privileged=true -d nginx

4.创建nginx配置文件docker

运行 docker ps 查看myphp容器端口(ports),个人为9000thinkphp

在/Users/xxx/Works/docker/nginx/conf.d/下建立default.conf浏览器

server {
        listen       80 default_server;
        server_name  _;
        root         /usr/share/nginx/html;

        location / {
            index  index.html index.htm index.php;
            autoindex  off;
        }
        location ~ \.php(.*)$ {
            root           /var/www/html/;
            fastcgi_pass   myphp:9000;
            fastcgi_index  index.php;
            fastcgi_split_path_info  ^((?U).+\.php)(/?.+)$;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            fastcgi_param  PATH_INFO  $fastcgi_path_info;
            fastcgi_param  PATH_TRANSLATED  $document_root$fastcgi_path_info;
            include        fastcgi_params;
        }
}

重启mynginx网络

docker restart mynginx

在/Users/xxx/Works/web/ 下建立info.php

<?php phpinfo();

打开浏览器访问,http://localhost/info.php

成功继续往下,不成功找缘由...

以后把thinkphp项目放到/Users/xxx/Works/web/下,如phpshop 访问http://localhost/phpshop 在/Users/xxx/Works/docker/nginx/conf.d/下建立每一个项目的专属nginx配置。配置以后要重启mynginx

偶尔容器关闭了,使用docker start myphp 启动,先启动myphp再启动mynginx

参考:

http://blog.csdn.net/qq_28602957/article/details/53727865

http://www.tuicool.com/articles/AVZFZ3m

http://www.open-open.com/lib/view/open1435818241325.html

...等等等等

相关文章
相关标签/搜索