组成:php7+mysql5.7+xiunobbs4.04+nginx
1 Pull镜像
docker pull nginx
docker pull docker.io/centos/mysql-57-centos7
docker pull docker.io/php:7.1.0-fpm
2 运行mysql容器
创建存储路径
mkdir /data/mysql57_bbs
chcon -Rt svirt_sandbox_file_t /data/mysql57_bbs
创建:
docker run -d --name bbs_mysql57 -v /data/mysql57_bbs:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=123456 -p 3306:3306 docker.io/centos/mysql-57-centos7
3 下载xiubobbs到文件夹/data/xiunobbs4
git clone https://gitee.com/xiuno/xiunobbs
设置权限
chcon -Rt svirt_sandbox_file_t /data/xiunobbs4/xiunobbs
chmod -R 0777 /data/xiunobbs4/xiunobbs/upload
chmod -R 0777 /data/xiunobbs4/xiunobbs/plugin
chmod -R 0777 /data/xiunobbs4/xiunobbs/tmp
chmod -R 0777 /data/xiunobbs4/xiunobbs/log
chmod -R 0777 /data/xiunobbs4/xiunobbs/conf
4 运行php容器
docker run --name bbs_php7 --privileged=true -v /data/xiunobbs4/xiunobbs:/www -d docker.io/php:7.1.0-fpm
5 运行Nginx容器
配置nginx配置文件同时挂载php:
mkdir /data/nginx/bbs_php_conf.d
vim /data/nginx/bbs_php_conf.d/nginx.conf
server {listen 80;server_name localhost;location / {root /usr/share/nginx/html;index index.html index.htm index.php;}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 /www/$fastcgi_script_name;include fastcgi_params;}}
创建Nginx容器:
docker run --name bbs_nginx -p 8084:80 --privileged=true -d \
-v /data/xiunobbs4/xiunobbs:/usr/share/nginx/html:ro \
-v /data/nginx/bbs_php_conf.d:/etc/nginx/conf.d:ro \
--link bbs_php7:php \
nginx
6 访问:
http://192.168.50.155:8084/install
以上IP地址具体参考主机的IP地址。
在数据库配置页面会出现“当前PHP环境不支持mysql和pdo_mysql,无法继续安装”如下问题:
这是因为php镜像中没有mysql相关链接库,因此需要在php容器中安装pdo和pdo_mysql。
7 进入php容器进行设置
首先进入php容器:
docker exec -it bbs_php7 /bin/bash
然后安装pdo和pdo_mysql:
docker-php-ext-install pdo pdo_mysql
exit
然后重启容器(注意是重启,docker新手千万别搞错了,不是删除php容器或重新创建一个容器,是重启,否则刚才的安装就无效):
docker restart bbs_php7
8 进入继续配置数据库:
安装成功pdo和pdo_mysql后,数据库设置页面如下:
点击下一步可能出现如下图所示错误信息:
如出现如上图情况,请将主机的防火墙关闭再试,另外Docker不同容器间不能用127.0.0.1,可以直接用IP代替,如下图所示:
点击下一步,出现如下图所示即为安装成功:
论坛安装后初始界面如下:
注:安装MySQL8会由于密码验证方式变化会出现类似“SQLSTATE[HY000] [2054] The server requested authentication method unknown to”等问题,参考以下方案进行解决,但是建议还是采用MySQL57: