摘要:安裝官網命令行安裝用命令安裝的童鞋注意,長城寬帶會讓你非常失望安裝包安裝如果需要手動下載,請點擊以下鏈接下載或版本的。這里配置不好的化,文件運行不起來的。
這里教大家用docker安裝nginx、php、mysql,搭建一套完整的本地開發環境,這里以mac為列,windons安裝大同小異,可以嘗試一下。1. 安裝docker
官網:https://www.docker.com/
1.1 命令行安裝用命令安裝的童鞋注意,長城寬帶會讓你非常失望!
brew cask install docker1.2 安裝包安裝
如果需要手動下載,請點擊以下鏈接下載 Stable 或 Edge 版本的 Docker for Mac。
1.3 設置鏡像至于為什么要設置鏡像嘛,我只能說呵呵
我這里設置了http://f1361db2.m.daocloud.io
具體方法如下:
docker pull nginx2.2 準備好本地配置文件
在本地準備好nginx的配置文件,這里一定要記好,運行nginx的時候要用
/Users/sole/docker/nginx2.3 準備好本地網站存放的目錄
在本地準備好的網站存放目錄以及網站,記好,后續有用
2.4 運行nginxdocker run --name nginx_server -p 80:80 -v ~/Sites:/etc/www -v ~/docker/nginx/conf.d:/etc/nginx/conf.d --link php_server:php -d nginx
各個參數的解釋:
各個參數配置遵循這個規則: 本地目錄:容器地址
--name 是tag名字
-p 端口映射
-v 配置文件夾
-d 后臺運行
--link 這個還不怎么明白,大概意思就是把php_server并入nginx_server, 然后在nginx的配置文件里面配置的時候,直接用php,請看nginx配置代碼;當然這個也不是必須這么做,知識這么做很方便;如果不用這個方法,可以運行docker inspect php_server | grep ""IPAddress""獲取容器IP,把IP放在這里也可以。這里配置不好的化,php文件運行不起來的。
location ~ .php$ { fastcgi_pass php:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; }2.5 確保nginx已經啟動
運行 docker ps -a 來看查nginx是否啟動成功
看到這里,只能說明nginx已經實例化了,但是并不確定是否啟動,這個時候可以用工具來檢查
如果你用的是VSCode,那么可以安裝docker插件,來管理運行的容器實例
如果不行用這個可以用docker的圖形管理工具 keitematic
kitematic長這個樣子: 在這里可以看是否啟動,還可以配置相關參數
2.6 nginx配置注意事項 2.6.1 關于程序目錄 /etc/www/php注意root參數的值,這個目錄是容器里面的目錄,不是本地的, /etc/www/php 是指容器的目錄,如果你本地和容器目錄一致的話,可以不用理會
server { listen 80; server_name www.php.cc; root /etc/www/php; location / { index index.html index.php index.htm; } }2.6.2 關于nginx配置文件目錄的映射 /Users/sole/docker/nginx/conf.d:/etc/nginx/conf.d
這里建議把conf.d的目錄映射配置好就可以了,如果設置為-v /Users/sole/docker/nginx:/etc/nginx ,本地的文件會把覆蓋容器里面的配置文件覆蓋掉,導致nginx啟動不起來,或者運行不起來php文件,會出現的錯誤:https://segmentfault.com/q/10...
這里安裝最新版本的php
docker pull php:fpm3.2 準備好本地程序文件夾
我本地的目錄在 /Users/sole/Sites,這里就不截圖了,上面應該能看到的
/Users/sole/Site 可以簡寫為 ~/Sites,因為 ~ 代表當前用戶的home目錄
3.3 跑起來docker run --name php_server -p 9000:9000 -v ~/Sites:/etc/www --link mysql_server:mysql -d php:fpm3.4 安裝擴展
先得進入容器:docker exec -it php_server /bin/bash
然后運行 docker- , 按兩下tab鍵會有提示
語法:docker-php-ext-install 擴展名,比如:docker-php-ext-install mysqli
3.5 PHP連接數據庫連接數據庫的時候最好查看一下mysql的ip,我這里是 172.17.0.2,所以這里這樣寫了:
$db = [ "hostname" => "172.17.0.2", "username" => "root", "password" => "root", "database" => "learing", "port" => 3306, "charset" => "utf8" ];
注意一下 3.3小姐里面的代碼:link這里,如果不連接mysql,在php連接數據庫的時候,需要獲取到mysql_server的容器IP,如果這里link了,那么在host這里可以直接寫link的值,請看代碼:
$db = [ "hostname" => "mysql", // mysql就是php link mysql 的值 "username" => "root", "password" => "root", "database" => "learing", "port" => 3306, "charset" => "utf8" ];
docker pull mysql4.2 運行起來
docker run --name mysql_server -p 3306:3306 -e MYSQL_ROOT_PASSWORD=root -d mysql4.3 查看mysql_server IP
docker inspect mysql_server | grep ""IPAddress""4.3 進入mysql
docker run -it --link mysql_server:mysql --rm mysql sh -c "exec mysql -h"$MYSQL_PORT_3306_TCP_ADDR" -P"$MYSQL_PORT_3306_TCP_PORT" -uroot -p"$MYSQL_ENV_MYSQL_ROOT_PASSWORD""5. 其他細節
這里列舉幾個問題,如果又其他問題,請留言,我會修正啊
5.1 關于容器啟動順序因為nginx_server link 了php,php_server又link了mysql_server,所以,容器啟動順序為:mysql_server > php_server > nginx_server
5.2 如何進入容器$ docker exec -it nginx_server /bin/bash $ docker exec -it php_server /bin/bash $ docker exec -it mysql_server /bin/bash5.3 mysqli報錯
應該是沒有安裝mysqli擴展,進入php容器安裝擴展就可以了
docker-php-ext-install mysqli5.4 php安裝gd庫
進入php容器后,請 依次 執行以下命令:
apt-get update apt-get install libpng-dev libjpeg-dev libfreetype6-dev docker-php-ext-install gd
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/40130.html
摘要:做了一次分享,主題使用搭建開發環境,簡單介紹了一下的概念,演示了使用構建全套環境。應場景通常于如下場景應的動化打包和發布動化測試和持續集成發布在服務型環境中部署和調整數據庫或其他的后臺應從頭編譯或者擴展現有的或平臺來搭建的環境。 做了一次分享,主題《使用 Docker 搭建開發環境》,簡單介紹了一下 Docker 的概念,演示了使用 Docker-compose 構建全套 PHP 環境...
摘要:做了一次分享,主題使用搭建開發環境,簡單介紹了一下的概念,演示了使用構建全套環境。應場景通常于如下場景應的動化打包和發布動化測試和持續集成發布在服務型環境中部署和調整數據庫或其他的后臺應從頭編譯或者擴展現有的或平臺來搭建的環境。 做了一次分享,主題《使用 Docker 搭建開發環境》,簡單介紹了一下 Docker 的概念,演示了使用 Docker-compose 構建全套 PHP 環境...
摘要:本文就介紹如何使用搭建本地環境。講座介紹是現在火熱的一個容器技術,作為開發人員有必要掌握它的使用,無論你是用來搭建本地環境,還是部署應用。 (原文地址:https://blog.tanteng.me/2017/...) Laravel 官方提供 Homestead 和 Valet 作為本地開發環境,Homestead 是一個官方預封裝的 Vagrant Box,也就是一個虛擬機,但是跟...
摘要:本文就介紹如何使用搭建本地環境。講座介紹是現在火熱的一個容器技術,作為開發人員有必要掌握它的使用,無論你是用來搭建本地環境,還是部署應用。 (原文地址:https://blog.tanteng.me/2017/...) Laravel 官方提供 Homestead 和 Valet 作為本地開發環境,Homestead 是一個官方預封裝的 Vagrant Box,也就是一個虛擬機,但是跟...
摘要:國內的鏡像倉庫由于地理位置的原因,國內訪問的官方倉庫是比較慢的,所以在這里介紹一個國內的倉庫靈雀云。靈雀云鏡像倉庫中匯集了大量來自社區的優質作品,讓用戶組合復用容器化微服務,輕松搭建新一代云端應用。 本文目的 做過開發的人對開發環境的安裝、配置應該都不會太陌生,不管你做什么開發,對開發環境都會具有一定的依賴性的。對于 PHP 的 Web 開發來說,開發環境至少要有一個 Web 服務器(...
閱讀 3690·2021-11-22 15:24
閱讀 1593·2021-09-26 09:46
閱讀 1904·2021-09-14 18:01
閱讀 2601·2019-08-30 15:45
閱讀 3526·2019-08-30 14:23
閱讀 1866·2019-08-30 12:43
閱讀 2915·2019-08-30 10:56
閱讀 800·2019-08-29 12:20