win10 docker-toolsbox 搭建php開發環境

下載鏡像

docker pull mysql:5.7 
docker pull php:7.2-fpm
docker pull nginx
docker pull redis:3.2

設置共享文件

宿主機創建目錄
E:\wnmp\mysql57\conf
E:\wnmp\mysql57\log
E:\wnmp\php72\conf
E:\wnmp\php72\conf
E:\wnmp\nginx\conf
E:\wnmp\nginx\conf
E:\wnmp\www
vmware設置文件共享

如圖
QQ截圖20191019135232.png
設置完成在Docker Quickstart Termina 執行docker-machine restart default

安裝Mysql

docker run -d -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root --name mysql57 mysql:5.7
複製配置文件
PS C:\Windows\system32> docker cp mysql57:/var/log/mysql E:\wnmp\mysql57\log
PS C:\Windows\system32> docker cp mysql57:/etc/mysql E:\wnmp\mysql57\conf
重新安裝mysql並指定配置文件
PS C:\WINDOWS\system32> docker stop mysql57
mysql57
PS C:\WINDOWS\system32> docker rm mysql57
mysql57
PS C:\WINDOWS\system32> docker run -d -v /wnmp/mysql57/log:/var/log/mysql/ -v /wnmp/mysql57/conf:/etc/mysql/ -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root --name mysql57 mysql:5.7
初始化數據庫
docker exec -ti mysql57 /bin/bash
mysql_secure_installation 
#查看Mysql狀態
root@d7bd0712bcf8:/# mysql -uroot -proot
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 6
Server version: 5.7.28 MySQL Community Server (GPL)

Copyright (c) 2000, 2019, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

安裝PHP

PS C:\WINDOWS\system32> docker run -d -v /wnmp/www:/var/www/html -p 9000:9000 --link mysql57:mysql --name php72 php:7.2-fpm
複製配置文件
PS C:\Windows\system32> docker cp php72:/usr/local/etc E:\wnmp\php72\conf
PS C:\Windows\system32> docker cp php72:/usr/local/var/log E:\wnmp\php72\log
PS C:\Windows\system32> docker cp php72:/var/www/html E:\wnmp\www
重新安裝PHP並指定配置文件
PS C:\WINDOWS\system32> docker stop php72
php72
PS C:\WINDOWS\system32> docker rm php72
php72
docker run -d -v /wnmp/php72/conf/etc:/usr/local/etc -v /wnmp/php72/log:/usr/local/var/log -v /wnmp/www:/var/www/html -p 9000:9000 --link mysql57:mysql --name php72 php:7.2-fpm
# 查看PHP版本
PS C:\Windows\system32> docker exec -ti php72  /bin/bash
root@742150f14d8a:/var/www/html# php -v
PHP 7.2.23 (cli) (built: Oct  5 2019 00:31:47) ( NTS )
Copyright (c) 1997-2018 The PHP Group
Zend Engine v3.2.0, Copyright (c) 1998-2018 Zend Technologies

Ngixn

安裝
PS C:\WINDOWS\system32> docker run -d -p 80:80 --link php72:phpfpm --name nginx nginx:latest
複製配置文件
PS C:\Windows\system32>  docker cp nginx:/etc/nginx/ E:\wnmp\nginx\conf
PS C:\Windows\system32>  docker cp nginx:/var/log/nginx/ E:\wnmp\nginx\log
重新安裝並指定配置文件
PS C:\WINDOWS\system32> docker stop nginx
nginx
PS C:\WINDOWS\system32> docker rm nginx
nginx
PS C:\WINDOWS\system32> docker run -d -p 80:80 -v /wnmp/www:/var/www/html -v /wnmp/nginx/conf/nginx:/etc/nginx/ -v /wnmp/nginx/log:/var/log/nginx/ --link php72:phpfpm --name nginx nginx
#瀏覽器訪問 http://192.168.99.100/ 驗證成功

Redis

docker run -p 6379:6379 -d redis:3.2 redis-server

PHP擴展安裝

redis
PS C:\Windows\system32> docker exec -ti php72 /bin/bash
root@742150f14d8a:/var/www/html# pecl install -o -f redis
#安裝完成,加入Ini配置 此時docker下的redis配置 在
E:\wnmp\php72\conf\etc\php\conf.d\docker-php-ext-sodium.ini
# 重啓php

配置測試域名

#E:\wnmp\nginx\conf\nginx\conf.d目錄下新建test.conf
#E:\wnmp\www目錄新建test目錄。目錄下新建index.php 輸出phpinfo;
server {
    listen       80;
    server_name  test.com;

    #charset koi8-r;
    access_log  /var/log/nginx/host.access.log  main;

    location / {
        root   /var/www/html/test;
        index  index.php index.html index.htm;
    }

    #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}

    # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000
    #
    location ~ \.php$ {
          root   /var/www/html/test;
        fastcgi_pass   192.168.99.100:9000;
        fastcgi_index  index.php;
        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
        include        fastcgi_params;
    }

    # deny access to .htaccess files, if Apache's document root
    # concurs with nginx's one
    #
    location ~ /\.ht {
        deny  all;
    }
}

#nginx重新加載配置 或者重啓。

#本地host解析域名test.com 訪問 顯示phpinfo正常

以上爲所有安裝配置以及測試。當然最後我們需要將這些docker容器加入到自動啓動中

docker container update --restart=always php72
docker container update --restart=always mysql57
docker container update --restart=always nginx
docker container update --restart=always redis

qrcode_for_gh_60813539dc23_258.jpg

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章