中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

docker搭建 LNMP 環境

發布時間:2020-07-13 19:17:25 來源:網絡 閱讀:1082 作者:九月朦朧 欄目:建站服務器

一、準備鏡像
安裝完docker后,更換完鏡像源(docker的安裝十分簡單自行百度即可)
打開/etc/docker目錄下的daemon.json
添加以下內容

{
"registry-mirrors": ["https://自己的地址.mirror.aliyuncs.com"]
}

docker工作的基礎即是鏡像,可以認為鏡像是一個獨立的由應用組成的虛擬機
重啟docker服務

service docker restart

docker pull nginx:alpine
docker pull php:7-fpm-alpine
docker pull postgres:alpine

可以用docker image ls 隨時查看已下載的鏡像

二、啟動nginx
啟動容器

sudo docker run --rm -d -p 80:80 --name nginx nginx:alpine
此時在瀏覽器地址欄中輸入你虛擬機的ip就可以看到nginx的默認歡迎界面了

docker stop 后面跟上容器的名字或者id就可以停止容器
例如我的這個容器名字叫做nginx
那么輸入命令

docker stop nginx

就可以停止它

三、啟動 LNMP

由于 LNMP 共由3個容器組成,單個啟動過于麻煩,推薦使用 docker-compose 管理并啟動它們。

安裝 docker-compose
docker-compose 是 docker 的多個服務部署工具,以方便地同時啟動多個容器。
可以使用以下命令方便地安裝它

sudo apt-get install -y python-pip && sudo pip install docker-compose

編輯 docker-compose 的配置文件
對于每一個你希望使用 docker-compose 來啟動的項目,都應該在該項目的目錄下配置 docker-compose.yml 。
編輯 docker-compose.yml,

version: "3"
services:
Nginx:
image: nginx:alpine
ports:

  • 80:80
    volumes:
  • ./web:/usr/share/nginx/html:ro
  • ./nginx.conf:/etc/nginx/conf.d/default.conf:ro
    PHP:
    image: undefined01/php:7-fpm-alpine
    volumes:
  • ./web:/var/www/html:rw
    Database:
    image: postgres:alpine
    environment:
    POSTGRES_USER: "postgres"
    POSTGRES_PASSWORD: "rootroot"
    volumes:
  • ./data:/var/lib/postgresql/data:rw

編輯 nginx 的配置文件
為了讓 nginx 能夠將請求順利的轉交給 php 處理,我們需要更改 nginx 的配置文件
編輯 nginx.conf

server {
listen 80;
server_name localhost;
location / {
root /usr/share/nginx/html;
index index.php index.html index.htm;
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /usr/share/nginx/html;
}
location ~ .php$ {
fastcgi_pass PHP:9000;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /var/www/html/$fastcgi_script_name;
include fastcgi_params;
}
}

使用 docker-compose 啟動服務

sudo docker-compose up -d

測試 LNMP 環境
對了,以上命令都使用了root權限,因此如果想要修改其中的內容可能不太方便。可以使用以下命令來獲取編輯權限。

sudo chmod -R 777 ./data ./web

測試 php
編輯 web/index.php

<?php
phpinfo();
?>

如果一切順利的話,就可以在http://193.112.46.97/index.php看到php的相關信息了。
測試 PostgreSQL
還記得密碼嗎?我提到過,就在 docker-compose 中配置了。因此在實際環境中一定要注意該文件的訪問權限。
至于 PostgreSQL 數據庫的地址嘛,我也提到過,就是這個容器的名稱(此處是 Database )。可以把它想象為一個域名就好了。
編輯 web/test.php

?php
$dbconn = pg_connect('host=Database user=postgres password=rootroot')
or die('Could not connect: ' . pg_last_error());
pg_query('CREATE TABLE IF NOT EXISTS test ( tester INT )');
pg_query('INSERT INTO test VALUES (0)');
$res = pg_query('SELECT * FROM test') or die('Query failed: ' . pg_last_error());
$num = pg_num_rows($res);
echo "You have visited this site $num times";
pg_free_result($res);
pg_close($dbconn);
?>

如果一切順利的話,就可以在http://193.112.46.97/test.php看到一個網頁計數器。不斷刷新它試試看。
利用docker搭建 LNMP 環境是不是so easy呢!!

用 docker-compose 停止服務
可以使用以下命令來停止服務,它會自動銷毀相應的容器:

sudo docker-compose down

什么?銷毀?別擔心,你的數據庫已經保存在當前目錄下的data文件夾中了,遷移到任何一臺新的主機,只需要將該目錄打包帶走就行了!
不信?可以重新啟動上面的示例,看看數據庫是否被保存了下來。
……
我不是天生強大,我只是天生要強!!!

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

南澳县| 枝江市| 石柱| 阿拉善左旗| 永善县| 任丘市| 句容市| 莲花县| 喀喇沁旗| 蓝山县| 讷河市| 肥城市| 绩溪县| 军事| 雷波县| 泰顺县| 大理市| 沭阳县| 宾阳县| 吴忠市| 常山县| 合山市| 武清区| 灵宝市| 万源市| 宣武区| 芜湖市| 莱州市| 庆元县| 兴安盟| 新河县| 南郑县| 大化| 南川市| 大方县| 宜宾市| 凤凰县| 德安县| 葵青区| 綦江县| 开封县|