Discuz压缩包:
内存 | ip | 软件 | |
---|---|---|---|
docker01 | 2G | 10.0.0.11 | docker |
docker02 | 2G | 10.0.0.12 |
1. docker01安装
??yum源优化
#centos 7镜像源 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-7.repo curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-7.repo #centos 6镜像源 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
??安装
#安装docker-ce wget -O /etc/yum.repos.d/docker-ce.repo https://download.docker.com/linux/centos/docker-ce.repo #将国外地址改成国内地址 sed -i ‘s+download.docker.com+mirrors.tuna.tsinghua.edu.cn/docker-ce+‘ /etc/yum.repos.d/docker-ce.repo yum install docker-ce -y systemctl enable docker systemctl start docker #验证 [root@docker01 yum.repos.d]# docker version Client: Docker Engine - Community Version: 19.03.5 API version: 1.40 Go version: go1.12.12 Git commit: 633a0ea Built: Wed Nov 13 07:25:41 2019 OS/Arch: linux/amd64 Experimental: false
??方式二离线安装
链接:https://pan.baidu.com/s/1RFd5GSzFDjtjMM6uhC3l8Q
提取码:5yes
tar xf docker_rpm.tar.gz yum localinstall docker_rpm/*.rpm -y #验证 docker version
2.创建Discuz论坛目录用于挂载
[root@docker01 /]# mkdir /bbs [root@docker01 bbs]# mv readme/* /bbs/ && mv upload/* /bbs/ && mv utility/* /bbs/ [root@docker01 bbs]# rm -rf Discuz_X3.3_SC_GBK.zip
1.
#将镜像上传到本地,查看镜像 [root@docker01 ~]# docker ps #创建镜像安装软件 [root@docker01 ~]# docker run -d -it -p 80:80 -v /bbs/:/usr/share/nginx/html centos:6.9 [root@docker01 ~]# docker ps -a --查看id号 [root@docker01 ~]# docker exec -it 052a6c61b293 /bin/bash - #更新yum源 curl -o /etc/yum.repos.d/CentOS-Base.repo http://mirrors.aliyun.com/repo/Centos-6.repo curl -o /etc/yum.repos.d/epel.repo http://mirrors.aliyun.com/repo/epel-6.repo
报错解决:
#问题:虚拟机无法连接外网 #解决:重启docker systemctl restart docker [root@docker01 ~]# docker run -d -it -p 80:80 -v /bbs/:/usr/share/nginx/html centos:6.9
[root@cb5ec42c3dec /]# yum install nginx php-fpm php-mbstring php-mysql -y [root@cb5ec42c3dec /]# service nginx start # mbstring:扩展 是针对php部分函数(比如 mb_strlen() 函数)该函数就需要改扩展 # php-fpm是个中间件,在需要php解释器来处理.php文本时会用到php-fpm # php-mysql 连接到一个 MySQL 数据库
2. 确认程序用户信息
??备注:确认PHP程序用户信息和nginx程序保持一致
# 检查nginx程序所使用的用户信息 [root@oldboyedu ~]# ps -ef|grep nginx nginx 5384 5380 0 04:16 ? 00:00:00 nginx: worker process # 修改php程序所使用的用户信息 vim /etc/php-fpm.d/www.conf user = nginx group = nginx
3. 启动软件程序服务
service php-fpm start # 启动PHP服务程序 chkconfig --add php-fpm --开机自启 ps -ef|grep php # 检查启动进程信息 # 检查启动端口信息 netstat -lntup|grep php
4. 网站结构服务配置过程
??nginx + php 建立关系:
[root@cb5ec42c3dec blog]# cat /etc/nginx/conf.d/default.conf # # The default server # server { listen 80 default_server; listen [::]:80 default_server; server_name _; location / { root /usr/share/nginx/html; index index.php index.html; } location ~ \.php$ { root /blog; fastcgi_pass 127.0.0.1:9000; fastcgi_index index.php; fastcgi_param SCRIPT_FILENAME /usr/share/nginx/html$fastcgi_script_name; include fastcgi_params; } # Load configuration files for the default server block. include /etc/nginx/default.d/*.conf; error_page 404 /404.html; location = /40x.html { } error_page 500 502 503 504 /50x.html; location = /50x.html { } }
5. 编写测试php文件
# cat /blog/test_index.php <?php phpinfo(); ?>
6. 谷歌输入地址验证
http://10.0.0.11/test_index.php #显示php安装完整
测试网页:
7. 授权站点目录
[root@cb5ec42c3dec ~]# nginx -t [root@cb5ec42c3dec /]# chown -R nginx.nginx /usr/share/nginx/html/ [root@cb5ec42c3dec blog]# service nginx restart
8. 创建启动脚本
[root@cb5ec42c3dec /]# vi /init.sh #!/bin/bash service php-fpm start nginx -g ‘daemon off;‘
在前期如果没有安装 php-mysql 模块会出现没有函数的错误,下面时模拟报错
php-mysql:
yum install php-mysql -y service php-fpm restart
1. 下载安装软件程序
yum install mariadb-server mariadb -y
2. 启动软件服务程序
systemctl start mariadb.service # 启动数据库程序服务进程
systemctl enable mariadb.service
3. 数据库创建密码登录
mysqladmin -uroot password "123456" mysql -uroot -p123456
4. 设置连接数据库,进入数据库创建
#创建以wordpress命名的数据库 create database discuz; #创建并授权用户信息 grant all on discuz.* to ‘discuz‘@‘10.0.0.%‘ identified by ‘123456‘; exit #关闭数据库反向解析操作(跳过反向解析过程) # delete from mysql.user where user=‘discuz‘ and host=‘discuz‘; --删除表信息 #删除时操作 # flush privileges;
1. 把制作好服务的容器,提交为镜像
docker commit 052a6c61b293 bbs:v1 -- id唯一提前查好
??注:模拟端口被占用的错误
32405be2ec68a8e35ef60f753946a2c4af431be53e97885068b9004f39b239af docker: Error response from daemon: driver failed programming external connectivity on endpoint trusting_hypatia (145e1d6c48bcc7e07f996476969d6c7bdf84657319429ae0e3ef2f92549ff3c9): Bind for 0.0.0.0:80 failed: port is already allocated. #翻译:绑定0.0.0.0:80失败:端口已经分配。
2. 测试镜像功能
#直接进入虚拟机 docker run -it -p 83:80 -v /bbs/:/usr/share/nginx/html bbs:v1
3. 测试网页,连接数据库直接可以使用
原文:https://www.cnblogs.com/Mercury-linux/p/12198854.html