成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

docker搭建php開(kāi)發(fā)環(huán)境

yibinnn / 2206人閱讀

摘要:安裝官網(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 docker
1.2 安裝包安裝

如果需要手動(dòng)下載,請(qǐng)點(diǎn)擊以下鏈接下載 Stable 或 Edge 版本的 Docker for Mac。

1.3 設(shè)置鏡像

至于為什么要設(shè)置鏡像嘛,我只能說(shuō)呵呵

我這里設(shè)置了http://f1361db2.m.daocloud.io

具體方法如下:


2. 安裝nginx 2.1 安裝
docker pull nginx
2.2 準(zhǔn)備好本地配置文件

在本地準(zhǔn)備好nginx的配置文件,這里一定要記好,運(yùn)行nginx的時(shí)候要用

/Users/sole/docker/nginx

2.3 準(zhǔn)備好本地網(wǎng)站存放的目錄

在本地準(zhǔn)備好的網(wǎng)站存放目錄以及網(wǎng)站,記好,后續(xù)有用

2.4 運(yùn)行nginx
docker 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...


3.安裝php 3.1 安裝

這里安裝最新版本的php

docker pull php:fpm
3.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:fpm
3.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"
];

4. 安裝mysql 4.1 安裝
docker pull mysql
4.2 運(yùn)行起來(lái)
docker run --name mysql_server 
-p 3306:3306 
-e MYSQL_ROOT_PASSWORD=root 
-d mysql
4.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/bash
5.3 mysqli報(bào)錯(cuò)

應(yīng)該是沒(méi)有安裝mysqli擴(kuò)展,進(jìn)入php容器安裝擴(kuò)展就可以了

docker-php-ext-install mysqli
5.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

相關(guān)文章

  • 使用 Docker 搭建開(kāi)發(fā)環(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)境...

    zxhaaa 評(píng)論0 收藏0
  • 使用 Docker 搭建開(kāi)發(fā)環(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)境...

    kycool 評(píng)論0 收藏0
  • 使用 Docker 搭建 Laravel 本地環(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ī),但是跟...

    StonePanda 評(píng)論0 收藏0
  • 使用 Docker 搭建 Laravel 本地環(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ī),但是跟...

    lscho 評(píng)論0 收藏0
  • 使用 docker 搭建 web 服務(wù)環(huán)境

    摘要:國(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ù)器(...

    Jeffrrey 評(píng)論0 收藏0

發(fā)表評(píng)論

0條評(píng)論

最新活動(dòng)
閱讀需要支付1元查看
<