溫馨提示×

溫馨提示×

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

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

Docker分離環(huán)境搭建LNMP并部署Discuz

發(fā)布時間:2020-07-15 23:07:01 來源:網(wǎng)絡(luò) 閱讀:815 作者:居思涵 欄目:云計算

一、安裝Docker環(huán)境

1、配置YUM源
vi /etc/yum.repos.d/CentOS-Base.repo
末行添加
[docker-repo]
name=Docker Repository
baseurl=https://yum.dockerproject.org/repo/main/centos/7/
enabled=1
gpgcheck=1
gpgkey=https://yum.dockerproject.org/gpg
2、安裝docker引擎

yum install -y docker-engine
mkdir /etc/docker/

vi /etc/docker/daemon.json //配置阿里鏡像加速器
{
"registry-mirrors": ["https://qtid6917.mirror.aliyuncs.com"]
}

systemctl daemon-reload //重新加載配置
systemctl enable docker     //開機(jī)自啟
systemctl start docker  //啟動服務(wù)

二、Docker部署LNMP-nginx

1、新建nginx的工作目錄

mkdir nginx
cd nginx

上傳nginx源碼包到工作目錄下
2、編輯dockerfile文件
vi dockerfile //編輯dockerfile
#基礎(chǔ)鏡像
FROM centos
MAINTAINER this is nginx <jsh>
#準(zhǔn)備運行環(huán)境
RUN yum -y install \
gcc \
make \
pcre-devel \
zlib-devel \
openssl-devel
#新建賬戶
RUN useradd -M -s /sbin/nologin nginx
#添加源碼包
ADD nginx-1.13.9 /nginx-1.13.9
#編譯安裝
RUN cd /nginx-1.13.9 && ./configure \
--prefix=/usr/local/nginx \
--user=nginx \
--group=nginx \
--with-http_stub_status_module && make && make install
#重新添加本地修改后的配置文件
ADD nginx.conf /usr/local/nginx/conf/nginx.conf
#指定工作端口
EXPOSE 80
#關(guān)閉守護(hù)進(jìn)程
RUN echo "daemon off;">>/usr/local/nginx/conf/nginx.conf
#開啟服務(wù)
CMD ["/usr/local/nginx/sbin/nginx"]
3、本地修改nginx配置文件

cp nginx-1.13.9/conf/nginx.conf /root/nginx/        //將源碼包中的配置文件加入ngingx目錄下
vi nginx.conf   //編輯nginx配置文件

.....默認(rèn)配置......
......
server {
listen 80;
server_name localhost;
#charset koi8-r;

#access_log logs/host.access.log main;

location / {
root /web; #指定網(wǎng)站工作目錄
index index.php index.html index.htm; #添加index.php格式
}
error_page 500 502 503 504 /50x.html;
location = /50x.html {
root /web;
}
location ~ .php$ {
root /web; #同上修改
fastcgi_pass php:9000; #其中php對應(yīng)運行容器名php作用與容器互聯(lián)
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME /web$fastcgi_script_name; #對應(yīng)改為工作目錄
include fastcgi_params;
}
4、最后檢查鏡像制作的文件
ls nginx //檢查nginx工作目錄文件
---nginx-1.13.9
---nginx.conf
---dockerfile
5、制作nginx鏡像文件
docker build -t lnmp/nginx . 生成nginx鏡像

三、Docker部署LNMP-mysql

1、新建mysql工作目錄

mkdir mysql
cd mysql

2、編輯dockerfile文件
vi dockerfile
#基礎(chǔ)鏡像
FROM guyton/centos6
MAINTAINER this is msyql images <chen>
#安裝mysql
RUN yum -y install mysql mysql-server
#開啟mysql并且授權(quán)
RUN /etc/init.d/mysqld start &&\
mysql -e "create database bbs;" &&\
mysql -e "grant all privileges on . to 'root'@'%' identified by 'abc123';" &&\
mysql -e "grant all privileges on . to 'root'@'localhost' identified by 'abc123';"
#指定容器內(nèi)工作端口
EXPOSE 3306
#開啟多線程服務(wù)
CMD ["mysqld_safe"]
3、制作mysql鏡像文件
docker build -t lnmp/mysql . 生成mysql鏡像

四、Docker部署LNMP-php

1、新建php工作目錄

mkdir php
cd php

上傳php-7.1.10源碼包到工作目錄下
2、編輯php.ini

cp php-7.1.10/php.ini-production /root/nginx/php.ini
vi php.ini

[PHP]下加入指定數(shù)據(jù)庫對接文件
mysqli.default_socket = /var/lib/mysql/mysql.sock
date.timezone = Asia/Shanghai
3、編輯dockerfile文件
vi dockerfile
#基礎(chǔ)鏡像
FROM centos
MAINTAINER this is php <jsh>
#安裝運行環(huán)境
RUN yum -y install \
gcc make \
libjpeg \
libjpeg-devel \
libpng libpng-devel \
freetype freetype-devel \
libxml2 \
libxml2-devel \
zlib zlib-devel \
curl curl-devel \
openssl openssl-devel
#添加源碼包
ADD php-7.1.10 /php-7.1.10
#編譯安裝
RUN cd php-7.1.10 && ./configure \
--prefix=/usr/local/php \
--with-mysql-sock=/var/lib/mysql/mysql.sock \
--with-mysqli \
--with-zlib \
--with-curl \
--with-gd \
--with-jpeg-dir \
--with-png-dir \
--with-freetype-dir \
--with-openssl \
--enable-mbstring \
--enable-xml \
--enable-session \
--enable-ftp \
--enable-pdo \
--enable-tokenizer \
--enable-zip \
--enable-fpm && make && make install
#添加配置文件
ADD php.ini /usr/local/php/lib/php.ini
#修改fpm對應(yīng)的配置文件
RUN cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf &&\
sed -i 's\;pid = run/php-fpm.pid\pid = run/php-fpm.pid\g' /usr/local/php/etc/php-fpm.conf &&\
sed -i 's\;daemonize = yes\daemonize = no\g' /usr/local/php/etc/php-fpm.conf
#修改監(jiān)聽端口,否則nginx即使做了容器互聯(lián)也無法解析.php文件
RUN cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf &&\
sed -i 's\127.0.0.1\0.0.0.0\g' /usr/local/php/etc/php-fpm.d/www.conf
#新建用戶
RUN useradd -M -s /sbin/nologin php
#指定端口
EXPOSE 9000
開啟服務(wù)
CMD ["/usr/local/php/sbin/php-fpm"]
4、最后檢查鏡像制作的文件
ls php //查看目錄
---php-7.1.10
---php.ini
---dockerfile
5、制作php鏡像文件
docker build -t lnmp/php . 生成php鏡像

五、按順序啟動對應(yīng)的鏡像

docker images //查看制作的鏡像
Docker分離環(huán)境搭建LNMP并部署Discuz

docker run -d --name mysql -v /var/lib/mysql -p 3306:3306 lnmp/mysql    //啟動mysql
docker run -d --name php --volumes-from mysql -v /web:/web lnmp/php     //啟動php
docker run -d --name nginx --link php:php -p 80:80 -v /web/:/web lnmp/nginx //啟動nginx
docker ps       //查看容器是否啟動

Docker分離環(huán)境搭建LNMP并部署Discuz
注意:以上由于做了數(shù)據(jù)卷和容器互聯(lián),因此一定要按照順序啟動,否則會報錯。

六、上傳DISCUZ項目到/web目錄下

cp -r dir_SC_UTF8/upload/ /web/bbs  //將對應(yīng)的項目復(fù)制到/web下
cd /web/bbs //進(jìn)入項目目錄下更改權(quán)限
chmod -R 777 ./config/
chmod -R 777 ./data/
chmod -R 777 ./uc_client/
chmod -R 777 ./uc_server/

Web瀏覽器訪問192.168.80.100/bbs
Docker分離環(huán)境搭建LNMP并部署Discuz
Docker分離環(huán)境搭建LNMP并部署Discuz
Docker分離環(huán)境搭建LNMP并部署Discuz
Docker分離環(huán)境搭建LNMP并部署Discuz

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI