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