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

資訊專欄INFORMATION COLUMN

Docker下部署自己的LNMP工作環境

tomlingtm / 2410人閱讀

摘要:構建配置其它代碼啟動啟動后,用數據連接工具測試,鏈接地址樹莓派端口用戶名密碼到此為止,屬于你自己的工作環境已經做好了。

普通PC環境也可以用以下配置,只是MYSQL那里換回mysql官方版本就可以。

Docker 安裝
$ curl -sSL get.docker.com | sudo sh 
工作目錄

/lnmp/conf 存放虛擬主機配置
/lnmp/data/mysql 存放mysql數據庫數據
/lnmp/log 存放nginx、mysql日志
/lnmp/workspace 存放各種項目文件

/lnmp/.env 啟動docker時的環境變量配置
/lnmp/docker-compose.yml 構建時的配置文件
/lnmp/php/Dockerfile 編譯PHP配置文件

構建Nginx 創建項目

先創建一個靜態文件index.html
/lnmp/workspace/default/index.html




    
    
    
    Document


    Hello, Docker!

添加構建時的環境變量

編輯.env文件

SOURCE_DIR=./workspace
HTTP_HOST=80

NGINX_VERSION=alpine
NGINX_CONFD_DIR=./conf/conf.d
NGINX_CONF_FILE=./conf/nginx.conf
NGINX_LOG_DIR=./log

SOURCE_DIR=./workspace workspace文件夾掛載到nginx下的 /var/www/html
HTTP_HOST=80 宿主機的80端口映射到nginx下的80端口
NGINX_VERSION=alpine nginx鏡像使用alpine版本

NGINX_CONFD_DIR=./conf/conf.d conf.d文件夾掛載到nginx下的/etc/nginx/conf.d
NGINX_CONF_FILE=./conf/nginx.conf nginx.conf掛載nginx的 /etc/nginx/nginx.conf
NGINX_LOG_DIR=./log

Nginx.conf
創建/lnmp/conf/nginx.conf文件
user  nginx;
worker_processes  1;

pid        /var/run/nginx.pid;
error_log  /var/log/nginx/nginx.error.log warn;

events {
    worker_connections  1024;
}


http {
    include       /etc/nginx/mime.types;
    default_type  application/octet-stream;

    log_format  main  "$remote_addr - $remote_user [$time_local] "$request" "
                      "$status $body_bytes_sent "$http_referer" "
                      ""$http_user_agent" "$http_x_forwarded_for"";

    access_log  /var/log/nginx/nginx.access.log  main;

    sendfile        on;
    #tcp_nopush     on;

    keepalive_timeout  65;

    #gzip  on;

    include /etc/nginx/conf.d/*.conf;
}

配置虛擬主機

創建/lnmp/conf/conf.d/default.conf文件
注意: root下的路徑必須是以/var/www/html開頭,default是我們本地workspace下的一個文件夾

server {
    listen       80;
    server_name  localhost default-server;
    root   /var/www/html/default;
    index  index.php index.html index.htm;

    access_log  /var/log/nginx/nginx.localhost.access.log  main;
    error_log  /var/log/nginx/nginx.localhost.error.log  warn;

    #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;
    }
}
構建Nginx配置

編輯 docker-composer.yml
以下的${}都是上面.env文件里配置的變量

version: "3"
services:
  nginx:
    image: nginx:${NGINX_VERSION}
    ports:
      - ${HTTP_HOST}:80
    volumes:
      - ${SOURCE_DIR}:/var/www/html/:rw
      - ${NGINX_CONFD_DIR}:/etc/nginx/conf.d/:rw
      - ${NGINX_CONF_FILE}:/etc/nginx/nginx.conf:ro
      - ${NGINX_LOG_DIR}:/var/log/nginx/:rw
    restart: always
啟動Nginx

運行命令之后,訪問樹莓派的IP,正常的話會顯示 Hello, Docker!

$ docker-compose up
構建PHP

編輯/lnmp/.env添加PHP構建變量

PHP_CONFIG_FILE=./conf/php.ini
PHP_FPM_CONFIG_FILE=./conf/php-fpm.conf

因php.ini配置有點長,可以在下面地址復制
php.ini
php-fpm.conf

添加Dockerfile

/lnmp/php/Dockerfile

ARG PHP_VERSION
FROM php:${PHP_VERSION}-fpm
RUN apt update
RUN apt-get install -y 
        libfreetype6-dev 
        libjpeg62-turbo-dev 
        libmcrypt-dev 
        libpng-dev 
        unixodbc-dev 
        gcc g++ make autoconf libc-dev pkg-config
添加構建PHP

編輯 /lnmp/docker-compose.yml文件

version: "3"
services:
  nginx:
    image: nginx:${NGINX_VERSION}
    ports:
      - ${HTTP_HOST}:80
    volumes:
      - ${SOURCE_DIR}:/var/www/html/:rw
      - ${NGINX_CONFD_DIR}:/etc/nginx/conf.d/:rw
      - ${NGINX_CONF_FILE}:/etc/nginx/nginx.conf:ro
      - ${NGINX_LOG_DIR}:/var/log/nginx/:rw
    restart: always
  php:
    build: 
      context: ./php
      args:
        PHP_VERSION: 7.2
    volumes:
      - ${SOURCE_DIR}:/var/www/html/:rw
      - ${PHP_CONFIG_FILE}:/usr/local/etc/php/php.ini:ro
      - ${PHP_FPM_CONFIG_FILE}:/usr/local/etc/php-fpm.d/www.conf:rw
    cap_add:
      - SYS_PTRACE
    restart: always
    networks:
      - default
虛擬主機支持PHP解析

/lnmp/conf/conf.d/default.conf
下面fastcgi_pass php:9000的php,是指上面docker-compose.yml的一個service名稱,可以用來針對某個項目指定PHP版本

#...其它代碼

location ~ .php$ {
    fastcgi_pass   php:9000;
    fastcgi_index  index.php;
    include        fastcgi_params;
    fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
}
添加文件

/lnmp/workspace/default/index.php


啟動預覽

如果之前沒有終止進程的, 可以ctrl + c終止之后再運行下面的命令。
如無意外,訪問樹莓派的IP會顯示 Hello, PHP!.

$ docker-compose up
添加PHP擴展

/lnmp/.env 添加變量,下面以swoole擴展演示,其它的擴展參考下面的操作就可以

PHP_SWOOLE_VERSION=4.2.10

/lnmp/docker-compose.yml 添加變量

php:
    build: 
      context: ./php
      args:
        PHP_VERSION: 7.2
        PHP_SWOOLE: ${PHP_SWOOLE_VERSION}

/lnmp/php/Dockerfile 下載并編譯swoole

# ...其它代碼
ARG PHP_SWOOLE=false
RUN if [ ${PHP_SWOOLE} != false ]; then 
    curl -O http://pecl.php.net/get/swoole-${PHP_SWOOLE}.tgz -L 
    && pecl install swoole-${PHP_SWOOLE}.tgz 
    && docker-php-ext-enable swoole 
;fi
重新編譯

注意:Dockerfile有改動的話,必須加--build重新編譯一次, 不然docker-compose up的時候不會生效

$ docker-compose up --build
預覽

編輯/lnmp/workspace/default/index.php保存,訪問樹莓派的IP,不出意外你可以找到swoole的擴展


構建MYSQL
MYSQL持久化

Docker容器服務刪除了,保證數據不會丟失
創建/lnmp/data/mysql文件夾

構建時變量

編輯/lnmp/.env文件,添加mysql服務端口、登錄密碼與數據持久化文件夾。

MYSQL_HOST_PORT=3306
MYSQL_PASSWORD=1234
MYSQL_DATA_DIR=./data/mysql
構建配置
version: "3"
services:
    #... 其它代碼
    mysql:
      image: tobi312/rpi-mysql
      ports:
        - ${MYSQL_HOST_PORT}:3306
      volumes:
        - ${MYSQL_DATA_DIR}:/var/lib/mysql:rw
      environment:
        MYSQL_ROOT_PASSWORD: "${MYSQL_PASSWORD}"
啟動

啟動后,用數據連接工具測試,鏈接地址:樹莓派IP 端口:3306 用戶名:root 密碼:1234

$ docker-compose up

到此為止,屬于你自己的LNMP工作環境已經做好了。

文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。

轉載請注明本文地址:http://specialneedsforspecialkids.com/yun/30043.html

相關文章

  • Docker部署自己LNMP工作環境

    摘要:構建配置其它代碼啟動啟動后,用數據連接工具測試,鏈接地址樹莓派端口用戶名密碼到此為止,屬于你自己的工作環境已經做好了。 普通PC環境也可以用以下配置,只是MYSQL那里換回mysql官方版本就可以。 Docker 安裝 $ curl -sSL get.docker.com | sudo sh 工作目錄 /lnmp/conf 存放虛擬主機配置/lnmp/data/mysql 存放mys...

    zengdongbao 評論0 收藏0
  • 使用Docker 一鍵部署 LNMP+Redis 環境

    摘要:使用部署環境簡介是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的機器上,也可以實現虛擬化。命令是編寫之后使用的。后者會自動繼承中的服務及相關的環境變量設置網絡模式。 使用Docker 部署 LNMP+Redis 環境 Docker 簡介 Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器...

    _Zhao 評論0 收藏0
  • 使用Docker 一鍵部署 LNMP+Redis 環境

    摘要:使用部署環境簡介是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的機器上,也可以實現虛擬化。命令是編寫之后使用的。后者會自動繼承中的服務及相關的環境變量設置網絡模式。 使用Docker 部署 LNMP+Redis 環境 Docker 簡介 Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器...

    wangshijun 評論0 收藏0
  • 使用Docker 一鍵部署 LNMP+Redis 環境

    摘要:使用部署環境簡介是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器中,然后發布到任何流行的機器上,也可以實現虛擬化。命令是編寫之后使用的。后者會自動繼承中的服務及相關的環境變量設置網絡模式。 使用Docker 部署 LNMP+Redis 環境 Docker 簡介 Docker 是一個開源的應用容器引擎,讓開發者可以打包他們的應用以及依賴包到一個可移植的容器...

    suxier 評論0 收藏0

發表評論

0條評論

tomlingtm

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<