docker pull nginx
docker pull docker.io/centos/mysql-57-centos7
docker pull docker.io/php:7.1.0-fpm
创建存储路径
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
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
docker run --name bbs_php7 --privileged=true -v /data/xiunobbs4/xiunobbs:/www -d docker.io/php:7.1.0-fpm
配置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
http://192.168.50.155:8084/install
以上IP地址具体参考主机的IP地址。
在数据库配置页面会出现“当前PHP环境不支持mysql和pdo_mysql,无法继续安装”如下问题:
这是因为php镜像中没有mysql相关链接库,因此需要在php容器中安装pdo和pdo_mysql。
首先进入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
安装成功pdo和pdo_mysql后,数据库设置页面如下:
点击下一步可能出现如下图所示错误信息:
如出现如上图情况,请将主机的防火墙关闭再试,另外Docker不同容器间不能用127.0.0.1,可以直接用IP代替,如下图所示:
点击下一步,出现如下图所示即为安装成功:
论坛安装后初始界面如下:
注:安装MySQL8会由于密码验证方式变化会出现类似“SQLSTATE[HY000] [2054] The server requested authentication method unknown to”等问题,参考以下方案进行解决,但是建议还是采用MySQL57:
https://blog.csdn.net/it_users/article/details/84933225
https://blog.csdn.net/gogogo_sky/article/details/81177441?depth_1-utm_source=distribute.pc_relevant.none-task&utm_source=distribute.pc_relevant.none-task