docker实现lamp安装discuz论坛

docker实现lamp

  • 仅拉取官方centos7.9源码制作,安装discuz论坛

1、创建桥接设备lamp

子网为172.29.109.0/24,任务所有容器都连接此网络,任务完成后输出网络拓扑图。

# docker network create --driver bridge --subnet 172.29.109.0/24  --gateway 172.29.109.1 lamp

在这里插入图片描述
浏览器访问eth3就是访问Apache容器

2 、选择7.9的centos7镜像

# docker pull centos:7.9.2009

在这里插入图片描述

在这里插入图片描述

3、MySQL容器

1)选择mysql的版本

注:这里让docker主机的/data/docker/mysql/data文件夹绑定mysql容器的/opt的文件夹,在docker/data/docker/mysql/data给权限即可在docker的/data/docker/mysql/data里面放入安装包就可以在容器的/opt里面看到

# chmod 777 /data/docker/mysql/data
# docker run -it --name=mysql --net lamp -p 3306:3306 -v /data/docker/mysql/data:/opt -e MYSQL_ROOT_PASSWORD=123456 -d mysql:5.5.60 --character-set-server=utf8

在这里插入图片描述在这里插入图片描述

2)配置数据库

在mysql容器运行

更新源
# apt-get update
安装ifconfig
# apt-get install -y net-tools
创建discuz的表
# create database discuz charset=utf8;
授权
# grant all on discuz.* to 'root'@'localhost' identified by '123456';

在这里插入图片描述

4、Apache容器:方法一

# 暂时没写

5、Apache容器:方法二

1)创建Apache容器

# docker run -it --name=httpd-php --net lamp -p 80:80 -v /data/docker/httpd/data:/opt -d centos:7.9.2009 

在这里插入图片描述

更新源并安装vim,net-tools
# yum install -y vim
# yum install -y net-tools

2)安装Apache组件

apr-util-1.6.1.tar.gz
apr-1.7.0.tar.gz

httpd-2.4.46.tar.gz
pcre-8.44.tar.gz
现在先在docker主机上操作,把httpd-2.4.46.tar.gz, apr-util-1.6.1.tar.gz,apr-1.7.0.tar.gz,pcre-8.44.tar.gz四个文件放到/data/docker/httpd/data里面

#  cd /data/docker/httpd/data

返回Apache的容器操作

解压
# cd /opt
# tar -zxvf httpd-2.4.46.tar.gz
# tar -zxvf apr-util-1.6.1.tar.gz
# tar -zxvf apr-1.7.0.tar.gz
# tar -zxvf pcre-8.44.tar.gz
安装编译环境
# yum install -y gcc gcc-c++
# yum install -y make

4)安装apr依赖包

在Apache容器的/opt文件夹下操作

# cd /opt
# yum  install -y make
# cd apr-1.7.0/
# ./configure --prefix=/usr/local/apr
# make && make install

在这里插入图片描述

5)安装apr-util依赖包

在Apache容器的/opt文件夹下操作

# cd /opt
# yum install -y expat-devel
# cd apr-util-1.6.1/
# ./configure --prefix=/usr/local/apr-util --with-apr=/usr/local/apr
# make && make install

在这里插入图片描述

6)安装pcre依赖包

在Apache容器的/opt文件夹下操作
pcre-8.44

# cd /opt
#  cd pcre-8.44/
# ./configure --prefix=/usr/local/pcre
# make && make install

在这里插入图片描述

7)安装Apache服务

在Apache容器的/opt文件夹下操作
httpd-2.4.46

# cd /opt
# cd httpd-2.4.46/
#  ./configure --prefix=/usr/local/apache/ --enable-rewrite --enable-so --enable-mpms-shared=all --with-apr=/usr/local/apr --with-apr-util=/usr/local/apr-util --with-pcre=/usr/local/pcre
# make && make install
# vim /usr/local/apache/conf/httpd.conf
将httpd.conf的文件里修改ServerName localhost:80
# /usr/local/apache/bin/apachectl restart

在这里插入图片描述
在浏览器访问docker主机的IP
在这里插入图片描述

6、Apache+PHP

在Apache容器操作

1)PHP安装

PHP的安装包
在docker的主机里面的/data/docker/mysql文件夹添加PHP的安装包
然后在Apache容器操作以下命令
注意,PHP在安装的前需要安装本地mysql,可以直接yum安装
也可以根据一下源码安装mysql
mysql-5.5.60.tar.gz
把mysql的包丢到docker容器的/data/docker/httpd/data里

# cd /opt
# yum install -y gcc gcc-c++ git cmake ncurses-devel bison
# tar -zxvf mysql-5.5.60.tar.gz
# cmake . -DCMAKE_INSTALL_PREFIX=/usr/local/mysql/ \
-DMYSQL_UNIX_ADDR=/tmp/mysql.sock \
-DMYSQL_DATADIR=/data/mysql/ \
-DSYSCONFDIR=/etc \
-DMYSQL_TCP_PORT=3306 \
-DWITH_INNOBASE_STORAGE_ENGINE=1 \
-DWITH_PARTITION_STORAGE_ENGINE=1 \
-DWITH_BLACKHOLE_STORAGE_ENGINE=1 \
-DWITH_MYISAM_STORAGE_ENGINE=1 \
-DWITH_READLINE=1 \
-DENABLED_LOCAL_INFILE=1 \
-DWITH_EXTRA_CHARSETS=1 \
-DDEFAULT_CHARSET=utf8 \
-DDEFAULT_COLLATION=utf8_general_ci \
-DEXTRA_CHARSETS=all \
-DWITH_DEBUG=0
# make && make install

2)继续安装PHP

# cd /opt
# tar -zxvf php-5.4.39.tar.gz
# yum install -y libxml2 libxml2-devel
# ./configure --prefix=/usr/local/php5 \
--with-mysql=mysqlnd \
--with-mysqli=mysqlnd \
--with-pdo-mysql=mysqlnd \
--with-apxs2=/usr/local/apache/bin/apxs \
--with-config-file-path=/usr/local/php5/etc
# make && make install

在这里插入图片描述

3)整合Apache+PHP环境

# vim /usr/local/apache/conf/httpd.conf
//加入如下代码,不要直接复制粘贴,查找后少了的添加
AddType application/x-httpd-php .php
DirectoryIndex   index.php index.html index.htm
# cat >/usr/local/apache/htdocs/index.php<<EOF
<?php
phpinfo();
?>
EOF
# rm -rf /usr/local/apache/htdocs/index.html
# /usr/local/apache/bin/apachectl restart

在这里插入图片描述

7、Redis容器

有两个方法:

1)方法一:官方拉取

redis

# docker pull redis:6.2.6
# docker run -it --name=redis --net lamp -p 6379:6379 -v /data/docker/redis:/opt -d redis:6.2.6
# docker start redis
# docker exec -it redis /bin/bash

2)方法二:在centos7的容器源码安装

在docker的主机里面的/data/docker/redis文件夹添加Redis的安装包

# docker run -it --name=redis --net lamp -p 6379:6379 -v /data/docker/redis:/opt -d centos:7.9.2009
# docker exec -it redis /bin/bash

下面在redis容器操作

# yum update
# cd /opt 
# tar -zxvf redis-4.0.14.tar.gz
# cd redis-4.0.14
# yum install -y gcc
# make PREFIX=/usr/local/redis install
# cp redis.conf /usr/local/redis/
# vim /usr/local/redis/redis.conf
daemonize no 改成daemonize yes
# cd /usr/local/redis/bin
# ./redis-server ../redis.conf

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

3)修改redis的配置

在redis容器操作

# vim /usr/local/redis/redis.conf
protected-mode yes 改为 protected-mode no
bind 127.0.0.1注释
# cd /usr/local/redis/bin
# ./redis-cli shutdown
# ./redis-server ../redis.conf
尝试远程访问,h后面直接redis容器IP就得了
# ./redis-cli -h 172.29.109.4 -p 6379

在这里插入图片描述

8、PHP添加redis支持

在Apache容器运行
在docker的主机里面的/data/docker/httpd文件夹添加Redis的拓展安装包

# cd /opt
# yum install -y autoconf
# tar -zxvf phpredis-4.0.1.tar.gz
# cd phpredis-4.0.1
# /usr/local/php5/bin/phpize
# ./configure --with-php-config=/usr/local/php5/bin/php-config --enable-redis
# make && make install
# cp /opt/php-5.4.39/php.ini-development /usr/local/php5/etc/php.ini
# vim /usr/local/php5/etc/php.ini
# 添加:
extension=redis.so
extension_dir = "/usr/local/php5/lib/php/extensions/no-debug-zts-20100525"
# cd /usr/local/apache/htdocs/config/
# vim config_global.php
将redis server后改为Redis主库的IP
# /usr/local/apache/bin/apachectl restart

在这里插入图片描述
在这里插入图片描述

9、安装论坛

论坛
在Apache容器操作,先把论坛的安装包放到docker的/data/docker/httpd文件夹

# cd /opt
# yum install -y unzip
# unzip Discuz_X3.2_SC_UTF8.zip -d /usr/local/apache/htdocs/
# cd /usr/local/apache/htdocs/; mv upload/* ./
# chmod 757 -R data/ uc_server/ config/ uc_client/
# /usr/local/apache/bin/apachectl restart

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

数据库服务器是IP是MYSQL的容器IP,密码是mysql允许远程访问时候的密码,数据库名是mysql容器创建的时候创建的数据库,管理员密码是自定义

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值