国产xxxx99真实实拍_久久不雅视频_高清韩国a级特黄毛片_嗯老师别我我受不了了小说

資訊專(zhuān)欄INFORMATION COLUMN

mac上利用docker搭建lnmp開(kāi)發(fā)環(huán)境

Doyle / 3169人閱讀

摘要:因?yàn)檎军c(diǎn)的采用自簽名方式,所以瀏覽器有安全提示,繼續(xù)訪(fǎng)問(wèn)就可以了,自己的站點(diǎn)用第三方認(rèn)證證書(shū)替換即可。這是因?yàn)榇a是在容器中,容器啟動(dòng)時(shí)會(huì)自動(dòng)在中加上就是說(shuō),自動(dòng)指向了容器動(dòng)態(tài)生成的。則是跨容器訪(fǎng)問(wèn),參數(shù)用指定的名稱(chēng),端口用。

項(xiàng)目地址https://github.com/shmilylbel...

安裝docker

新版的docker for mac 下載地址docker-ce-desktop-mac,不需要安裝docker toolbox ,安裝好后大概是這樣的,可以在終端測(cè)試

$ docker -v
$ docker-compose -v
修改docker 鏡像倉(cāng)庫(kù)

首先是到阿里云獲取專(zhuān)屬加速地址,打開(kāi)docker->preferences->Daemon->Registry mirrors 點(diǎn)擊加號(hào),粘貼剛剛獲取到的加速地址,點(diǎn)擊Apply & Restart。

使用git快速獲取lnmp

進(jìn)入到當(dāng)前用戶(hù)mac終端,以次執(zhí)行

$ git clone https://github.com/shmilylbelva/dnmp.git
$ cd dnmp
$ docker-compose up

即開(kāi)始安裝資源,如下圖

,完成以后可以在瀏覽器中訪(fǎng)問(wèn)localhost,出現(xiàn)以下界面代表ok。

站點(diǎn)部署

本文有默認(rèn)加了兩個(gè)站點(diǎn):www.site1.com(同localhost)和www.site2.com。

要在本地訪(fǎng)問(wèn)這兩個(gè)域名,需要修改你的hosts文件,添加以下兩行:

127.0.0.1 www.site1.com
127.0.0.1 www.site2.com
其中,www.site2.com為支持SSL/https和HTTP/2的示例站點(diǎn)。

因?yàn)檎军c(diǎn)2的SSL采用自簽名方式,所以瀏覽器有安全提示,繼續(xù)訪(fǎng)問(wèn)就可以了,自己的站點(diǎn)用第三方SSL認(rèn)證證書(shū)替換即可。

如果只用到站點(diǎn)1,把站點(diǎn)2相關(guān)的目錄和配置文件刪除:

./conf/nginx/conf.d/certs/site2/
./conf/nginx/conf.d/site2.conf
./www/site2/
重啟容器內(nèi)的Nginx生效:

docker exec -it dlnmp_nginx nginx -s reload

dnmp目錄結(jié)構(gòu)
.
├── conf                        配置目錄
│   ├── conf.d              站點(diǎn)配置文件目錄
│   │   ├── certs           SSL認(rèn)證文件、密鑰和加密文件目錄
│   │   │   └── site2       站點(diǎn)2的認(rèn)證文件目錄
│   │   ├── site1.conf      站點(diǎn)1 Nginx配置文件
│   │   └── site2.conf      站點(diǎn)2 Nginx配置文件 
│   ├── my.cnf              MySQL配置文件           
│   ├── nginx.conf          Nginx通用配置文件
│   ├── php-fpm.d           PHP-FPM配置目錄
│   │   └── www.conf        PHP-FPM配置文件
│   ├── php.ini             PHP配置文件
├── docker-compose.yml        默認(rèn)容器啟動(dòng)配置文件
├── docker-compose54.yml      php5.4容器啟動(dòng)配置文件
├── docker-compose56.yml      php5.6容器啟動(dòng)配置文件
├── log                         日志目錄
│   ├── mysql.slow.log                   MySQL日志
│   ├── nginx.error.log                   Nginx日志
│   ├── nginx.site1.error.log          
│   ├── nginx.site2.error.log           
├── mysql                       MySQL數(shù)據(jù)文件目錄
├── php                          PHP版本目錄
└── www                         站點(diǎn)根目錄
    ├── site1                   站點(diǎn)1根目錄
    └── site2                   站點(diǎn)2根目錄
MYSQL說(shuō)明

在docker-compose.yml文件中,我們指定了MySQL數(shù)據(jù)庫(kù)root用戶(hù)的密碼為123456。
所以,我們就可以在主機(jī)中通過(guò):

$ mysql -h 127.0.0.1 -u root -p  #linux中
#在mac中需要先切換到mysql容器
$ docker container ls  #列出容器列表
$ docker exec -it 775c7c9ee1e1 /bin/bash  #其中的容器id不用輸入完整的mysql容器id,一般3位就能區(qū)分。
$ mysql -h 127.0.0.1 -uroot -p

輸入密碼,就可以進(jìn)入MySQL命令行。

說(shuō)明:這里MySQL的連接主機(jī)不能用localhost,因?yàn)镸ySQL客戶(hù)端默認(rèn)使用unix socket方式連接,應(yīng)該直接用本地IP。
在PHP代碼中的使用方式與在主機(jī)中使用稍有不同,如下:
$pdo = new PDO("mysql:host=mysql;dbname=site1", "root", "123456");
其中,host的值就是在docker-compose.yml里面指定的MySQL容器的名稱(chēng)。
這是因?yàn)镻HP代碼是在FPM容器中,F(xiàn)PM容器啟動(dòng)時(shí)會(huì)自動(dòng)在/etc/hosts中加上:
172.17.0.2 mysql 11e55f91c4c3 dnmp_mysql
就是說(shuō),mysql自動(dòng)指向了MySQL容器動(dòng)態(tài)生成的IP。
注意,這里用php進(jìn)行mysql連接測(cè)試會(huì)失敗(在docker-compose up的時(shí)候注意到存在mbind:Operation not permitted 這個(gè)提示)

,所以還需要處理上述問(wèn)題。
進(jìn)入剛剛的mysql終端,內(nèi)容大致如下。host為 % 表示不限制ip localhost表示本機(jī)使用 plugin非mysql_native_password 則需要修改密碼

mysql> select host,user,plugin,authentication_string from mysql.user;    
+-----------+------------------+-----------------------+------------------------------------------------------------------------+  
| host      | user             | plugin                | authentication_string                                                  |  
+-----------+------------------+-----------------------+------------------------------------------------------------------------+  
| %         | root             | caching_sha2_password | $A$005$^]RQB}j~t!      .#v)3.UogPRFu8VJA5/GKEbK5edEQlMT5sHw2n72zYJNlIbo3 |  
| localhost | mysql.infoschema | mysql_native_password | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE                              |  
| localhost | mysql.session    | mysql_native_password | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE                              |  
| localhost | mysql.sys        | mysql_native_password | *THISISNOTAVALIDPASSWORDTHATCANBEUSEDHERE                              |  
| localhost | root             | caching_sha2_password | $A$005$Y6&q!59^Fmh)@-6TG58J3F5+3I/HI9L|JCadNG+-+d6W+1D_UFW+7MRD7F3 |  
+-----------+------------------+-----------------------+------------------------------------------------------------------------+  

依次進(jìn)行如下操作

ALTER USER "root"@"%" IDENTIFIED WITH mysql_native_password BY "newpassword"; 
#更新一下用戶(hù)的密碼 root用戶(hù)密碼為newpassword  
mysql> ALTER USER "root"@"%" IDENTIFIED WITH mysql_native_password BY "123456";  
Query OK, 0 rows affected (0.06 sec) 

mysql連接問(wèn)題解決。

修改docker-compose.yml

如果容器已經(jīng)生成,回頭再編輯docker-compose.yml,用
docker-compose up
命令會(huì)直接啟動(dòng)原來(lái)的容器,修改的內(nèi)容不會(huì)體現(xiàn)在啟動(dòng)的容器里。
所以,要使修改的docker-compose.yml生效,需要以下4步:

$ docker stop dnmp_nginx                      # 第一步:停止容器
$ docker rm dnmp_nginx                        # 第二步:刪除容器
# !!第三步:重啟Docker服務(wù)!!
$ docker-compose up -d --no-deps --build mysql  # 第四步:重新啟動(dòng)容器

其中最后一條命令參數(shù)作用:/
-d:后臺(tái)執(zhí)行
--no-deps:不啟動(dòng)link的容器
--build:?jiǎn)?dòng)容器前先構(gòu)建鏡像

使用Redis

Redis使用和MySQL類(lèi)似。
不過(guò)需要注意的是在./php/php72中的Dockerfile末尾的

#源碼安裝方式
#php7 can install

ENV PHPREDIS_VERSION 4.0.0
RUN curl -L -o /tmp/redis.tar.gz https://github.com/phpredis/phpredis/archive/$PHPREDIS_VERSION.tar.gz 
    && tar xfz /tmp/redis.tar.gz 
    && rm -r /tmp/redis.tar.gz 
    && mkdir -p /usr/src/php/ext 
    && mv phpredis-$PHPREDIS_VERSION /usr/src/php/ext/redis 
    && docker-php-ext-install redis 
    && rm -rf /usr/src/php

如果是php5.X那么這里應(yīng)該是這樣的(需要自己添加到對(duì)應(yīng)的Dockerfile中,然后再docker-compose up)

#PECL安裝方式
#php5 can install

#添加擴(kuò)展 redis pecl方式
RUN apk add --no-cache --update libmemcached-libs zlib
RUN set -xe 
    && apk add --no-cache --update --virtual .phpize-deps $PHPIZE_DEPS 
    && pecl install -o -f redis  
    && echo "extension=redis.so" > /usr/local/etc/php/conf.d/redis.ini
    && rm -rf /usr/share/php 
    && rm -rf /tmp/* 
    && apk del  .phpize-deps

在主機(jī)和容器內(nèi)部都通過(guò)地址127.0.0.1,端口6379訪(fǎng)問(wèn)。

PHP則是跨容器訪(fǎng)問(wèn),host參數(shù)用redis(links指定的名稱(chēng)),端口用6379。
修改site2的index.php文件內(nèi)容如下

connect("192.168.1.11",6379);//修改成自己的ip
    $redis->set("name","青波");
    echo $redis->get("name");
        //檢測(cè)是否連接成功

瀏覽器訪(fǎng)問(wèn)www.site2.com,出現(xiàn)‘青波’即代表redis擴(kuò)展正常。

文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/39973.html

相關(guān)文章

  • mac利用docker搭建lnmp開(kāi)發(fā)環(huán)境

    摘要:因?yàn)檎军c(diǎn)的采用自簽名方式,所以瀏覽器有安全提示,繼續(xù)訪(fǎng)問(wèn)就可以了,自己的站點(diǎn)用第三方認(rèn)證證書(shū)替換即可。這是因?yàn)榇a是在容器中,容器啟動(dòng)時(shí)會(huì)自動(dòng)在中加上就是說(shuō),自動(dòng)指向了容器動(dòng)態(tài)生成的。則是跨容器訪(fǎng)問(wèn),參數(shù)用指定的名稱(chēng),端口用。 項(xiàng)目地址https://github.com/shmilylbel... 安裝docker 新版的docker for mac 下載地址docker-ce-de...

    vincent_xyb 評(píng)論0 收藏0
  • mac利用docker搭建lnmp開(kāi)發(fā)環(huán)境

    摘要:因?yàn)檎军c(diǎn)的采用自簽名方式,所以瀏覽器有安全提示,繼續(xù)訪(fǎng)問(wèn)就可以了,自己的站點(diǎn)用第三方認(rèn)證證書(shū)替換即可。這是因?yàn)榇a是在容器中,容器啟動(dòng)時(shí)會(huì)自動(dòng)在中加上就是說(shuō),自動(dòng)指向了容器動(dòng)態(tài)生成的。則是跨容器訪(fǎng)問(wèn),參數(shù)用指定的名稱(chēng),端口用。 項(xiàng)目地址https://github.com/shmilylbel... 安裝docker 新版的docker for mac 下載地址docker-ce-de...

    yintaolaowanzi 評(píng)論0 收藏0
  • 分解dockerlnmp環(huán)境搭建中的作用

    摘要:如果不用我們可能將上述講的命令每搭建一次就需要執(zhí)行一遍,有沒(méi)有能統(tǒng)一管理的有,就是在環(huán)境搭建中的作用快速創(chuàng)建鏡像,快速創(chuàng)建并運(yùn)行容器,實(shí)現(xiàn)統(tǒng)一管理。 前言 初學(xué)者在dcoker學(xué)習(xí)過(guò)程中,可能不太清楚docker中那么多的命令,參數(shù),工具在lnmp環(huán)境搭建中起了什么作用,下面跟著我來(lái)熟悉一下。(本文面向的是不怎么熟悉linux的:phper) 鏡像,容器,倉(cāng)庫(kù) 鏡像:Docker 鏡像...

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

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

0條評(píng)論

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