欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

docker?中搭建php環(huán)境經(jīng)驗(yàn)分享

 更新時(shí)間:2023年09月04日 08:39:57   作者:碼農(nóng)小良  
這篇文章主要介紹了docker?中搭建php環(huán)境經(jīng)驗(yàn)分享的相關(guān)資料,需要的朋友可以參考下

本次安裝的推薦配置:

  • CentOS 7 (迅雷種子 http://ftp.nara.wide.ad.jp/pub/Linux/centos/7.9.2009/isos/x86_64/CentOS-7-x86_64-DVD-2009.torrent)
  • nginx 1.24.0
  • mysql 5.7.43
  • php 7.4.3-fpm
  • redis 7.2.0 

一、虛擬機(jī)安裝centos7

vm虛擬機(jī)需要4g內(nèi)存,網(wǎng)絡(luò)使用nat模式設(shè)置靜態(tài)ip、50G硬盤(pán)、1cpu、2核(踩坑經(jīng)驗(yàn):太低配置重啟后會(huì)開(kāi)不了機(jī))

開(kāi)機(jī)后

uname -r 查看版本要在3.10以上

更新系統(tǒng)組件 yum -y update

二、安裝docker

刪除舊docker

yum remove docker docker-common docker-selinux docker-engine

安裝工具

yum install -y yum-utils device-mapper-persistent-data Ivm2

配置docker的yum源

yum-config-manager --add-repo https://download.docker.com/linux/centos/docker-ce.repo

安裝docker

sudo yum install -y docker-ce

啟動(dòng)docker

systemctl start docker

設(shè)置開(kāi)機(jī)啟動(dòng)

systemctl enable docker

設(shè)置鏡像國(guó)內(nèi)加速(踩坑經(jīng)驗(yàn):設(shè)置多個(gè)源頭,不然會(huì)很慢)

創(chuàng)建文件

sudo mkdir -p /etc/docker

輸入源頭url

tee /etc/docker/daemon.json <<-'EOF'
{
"registry-mirrors": [
"https://mirror.ccs.tencentyun.com",
"https://docker.mirrors.ustc.edu.cn/",
"https://hub-mirror.c.163.com/",
"https://reg-mirror.qiniu.com/"
]
}
EOF

重啟配置

sudo systemctl daemon-reload

重啟docker

sudo systemctl restart docker

設(shè)置容器局域網(wǎng),容器間相互訪問(wèn) (心得:容器互相訪問(wèn),不用通過(guò)宿主機(jī),更快)

docker network create my_network

查看局域網(wǎng)是否創(chuàng)建成功

docker network ls

三、安裝php

下載php鏡像

docker pull php:7.4.3-fpm  (踩坑經(jīng)驗(yàn):后面要帶fpm)

使用鏡像生成臨時(shí)容器 ,名為:test_php7.4.3,用來(lái)拷貝配置文件(踩坑經(jīng)驗(yàn):空文件夾做共享,會(huì)將容器的配置文件清空)

docker run -it --name test_php7.4.3-fpm -d php:7.4.3-fpm 

使用 docker ps 命令查看是否創(chuàng)建成功

創(chuàng)建需要被共享的文件夾

mkdir -p /data/php7.4.3 && cd /data/php7.4.3

將鏡像內(nèi)文件拷貝出來(lái)

(左邊是容器,會(huì)連同文件夾一起復(fù)制過(guò)去,右邊是放進(jìn)哪個(gè)文件夾里)

docker cp [臨時(shí)容器id]:/usr/local/etc /data/php7.4.3

啟動(dòng)正式容器

docker run ?\
--network my_network ?\
--name prod_7.4.3-fpm ?\
--restart=always ?\
-v /data/php7.4.3/etc:/usr/local/etc \
-v /data/nginx1.24.0/html:/var/www/html \
-d php:7.4.3-fpm

備注:--restart=always 重啟自動(dòng)啟動(dòng)容器

沒(méi)問(wèn)題后,停止臨時(shí)鏡像,并刪除臨時(shí)鏡像

docker stop [臨時(shí)容器id]

docker rm [臨時(shí)容器id]

php開(kāi)通 mysql pdo 擴(kuò)展,php連接mysql會(huì)用到

進(jìn)入php容器后

查看php擴(kuò)展模塊

php -m

安裝擴(kuò)展

docker-php-ext-install pdo pdo_mysql 

四、安裝nginx

下載鏡像

docker pull nginx:1.24.0

鏡像生成臨時(shí)容器(用來(lái)拷貝配置文件)

docker run -it --name test_nginx1.24.0 -d nginx:1.24.0

使用docker ps  查詢是否啟動(dòng)成功

創(chuàng)建需要被共享的文件夾

mkdir -p /data/nginx1.24.0/conf/cert
mkdir -p /data/nginx1.24.0/conf/conf.d
mkdir -p /data/nginx1.24.0/html
mkdir -p /data/nginx1.24.0/log
mkdir -p /data/nginx1.24.0/ssl

將鏡像內(nèi)文件拷貝出來(lái)

(左邊是容器,會(huì)連同文件夾一起復(fù)制過(guò)去,右邊是放進(jìn)哪個(gè)文件夾里)

docker cp [臨時(shí)容器id]:/etc/nginx/conf.d ?/data/nginx1.24.0/conf
docker cp [臨時(shí)容器id]:/etc/nginx/nginx.conf /data/nginx1.24.0/conf/nginx.conf
docker cp [臨時(shí)容器id]:/usr/share/nginx/html /data/nginx1.24.0

啟動(dòng)正式容器

docker run ?\
--network my_network ?\
-p 80:80 ?\
-p443:443 ?\
--name prod_nginx1.24.0 ?\
--restart=always ?\
-v /data/nginx1.24.0/conf/nginx.conf:/etc/nginx/nginx.conf \
-v /data/nginx1.24.0/conf/cert:/etc/nginx/cert \
-v /data/nginx1.24.0/ssl:/etc/nginx/ssl/ ?\
-v /data/nginx1.24.0/conf/conf.d:/etc/nginx/conf.d \
-v /data/nginx1.24.0/log:/var/log/nginx \
-v /data/nginx1.24.0/html:/usr/share/nginx/html \
-d nginx:1.24.0

備注:--restart=always 重啟自動(dòng)啟動(dòng)容器

沒(méi)問(wèn)題后,停止臨時(shí)鏡像,并刪除臨時(shí)鏡像

docker stop [臨時(shí)容器id]

docker rm [臨時(shí)容器id]

五、安裝mysql 

下載鏡像 

docker pull mysql:5.7.43

開(kāi)啟臨時(shí)鏡像(用來(lái)拷貝配置文件)

docker run -it --name test_mysql5.7.43 -e MYSQL_ROOT_PASSWORD=root -v /etc/localtime:/etc/localtime:ro -d mysql:5.7.43

創(chuàng)建需要被共享的文件夾

mkdir -p /data/mysql5.7.43  

將鏡像內(nèi)文件拷貝出來(lái)

(左邊是容器,會(huì)連同文件夾一起復(fù)制過(guò)去,右邊是放進(jìn)哪個(gè)文件夾里)

docker cp [臨時(shí)容器id]:/var/log /data/mysql5.7.43
docker cp [臨時(shí)容器id]:/var/lib /data/mysql5.7.43
docker cp [臨時(shí)容器id]:/etc/mysql/conf.d /data/mysql5.7.43
docker cp [臨時(shí)容器id]:/etc/mysql/mysql.conf.d /data/mysql5.7.43

啟動(dòng)正式容器

docker run ?\
--network my_network ?\
--name prod_mysql5.7.43 ?\
--restart=always ?\
-p 3306:3306 ?\
-v /data/mysql5.7.43/log:/var/log \
-v /data/mysql5.7.43/lib:/var/lib \
-v /data/mysql5.7.43/conf.d:/etc/mysql/conf.d \
-v /data/mysql5.7.43/mysql.conf.d:/etc/mysql/mysql.conf.d \
-v /etc/localtime:/etc/localtime:ro \
-e MYSQL_ROOT_PASSWORD=root123456 \
-d mysql:5.7.43

備注:--restart=always 重啟自動(dòng)啟動(dòng)容器

沒(méi)問(wèn)題后,停止臨時(shí)鏡像,并刪除臨時(shí)鏡像

docker stop [臨時(shí)容器id]

docker rm [臨時(shí)容器id]

# 進(jìn)入容器

docker exec -it [容器id] bash

# 創(chuàng)建用戶并開(kāi)啟遠(yuǎn)程登錄

CREATE USER 'user_tp'@'%' IDENTIFIED BY 'user_tp_123456';

# 創(chuàng)建數(shù)據(jù)庫(kù)并設(shè)置字符集

CREATE DATABASE `tp_test` CHARACTER SET 'utf8mb4';

# 給賬號(hào)授權(quán)數(shù)據(jù)庫(kù)

GRANT ALL PRIVILEGES ON `tp_test`.* TO 'user_tp'@'%';

# 刷新權(quán)限

FLUSH PRIVILEGES;

使用遠(yuǎn)程工具連接mysql,并建立一個(gè)user用戶表,后面用來(lái)測(cè)試

六、運(yùn)行php項(xiàng)目

將php項(xiàng)目通過(guò)ftp上傳到  /data/nginx1.24.0/html (上面配置了這個(gè)地址會(huì)共享到容器內(nèi)對(duì)應(yīng)的文件夾)

 新增一個(gè)網(wǎng)站配置

hosts新增一行 (你的windows電腦)

重啟docker

systemctl restart docker

在php項(xiàng)目中,新增一個(gè)訪問(wèn)數(shù)據(jù)庫(kù)的代碼

 項(xiàng)目連接mysql 

打開(kāi)瀏覽器測(cè)試

 都是踩坑經(jīng)驗(yàn),無(wú)私分享,有問(wèn)題歡迎留言,共同進(jìn)步!

到此這篇關(guān)于docker 中搭建php環(huán)境經(jīng)驗(yàn)分享的文章就介紹到這了,更多相關(guān)docker 搭建php環(huán)境內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

最新評(píng)論