Docker 安装mediawiki

来自linux中国网wiki
Evan讨论 | 贡献2019年10月17日 (四) 07:11的版本 →‎** nginx
跳到导航 跳到搜索

pre

debian docker

apt update #on vps 
apt install docker.io docker-compose -y
sudo usermod -aG docker $USER 


** nginx

apt install nginx 
#
    upstream dockerwiki {
        server  10.138.132.61:8080 weight=5;
        keepalive       64;
    }

server{
listen  80;
server_name  wiki.linuxchina.net;

location / {
        proxy_pass        http://dockerwiki; #或者直接写ip啦 
        proxy_http_version   1.1;
        proxy_set_header   Host             $host:80;
        proxy_set_header   X-Real-IP        $remote_addr;
        proxy_set_header   X-Forwarded-For  $proxy_add_x_forwarded_for;
}

access_log  /var/log/nginx/wiki.linuxaccess.log;
}

有时 80不通 重启机器后好了 应该 是firewalld 导致



https://blog.csdn.net/yinlongfei_love/article/details/81085761 解决 413 Request Entity Too Large

install and config

201910

db

密码太简单改了一下  在dockercomps 文件里面改是没用的 

 要登录root mysql 再用上面 的授权  然后 改 wiki的配置文件  不然 
Original exception: [c1fa6e2877bda66dceebe4ab] 2019-10-16 02:25:03: Fatal exception of type "Wikimedia\Rdbms\DBConnectionError"

old

db

pre

#在运行docker容器时可以加如下参数来保证每次docker服务重启后容器也自动重启:
$docker run --restart=always
#如果已经启动了则可以使用如下命令:
$docker update --restart=always <CONTAINER ID>

mysql什么的也可以rpm 但是尽量docker

mariadb

#在sra pi上好象是没有的
docker pull mariadb:latest
docker run -p 3307:3306 --restart 策略名称 -v 宿主机数据目录:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=mysql密码 -d 镜像ID
docker run --name mymariadb  -p 3306:3306 --restart always -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=2240881 -d 54514d54a4a5
docker run --name mymariadb  -p 3307:3306 --restart always -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=2240881 -d  mariadb #同上

开启远程访问用户和密码

echo 'mymariadb  192.168.10.105' >>/etc/hosts
 mysql -uroot -p2240881 -h 192.168.10.105 -P3307  #连接 

mysql

docker pull mysql:5.7
#config and run 
docker run -p 3307:3306 --restart 策略名称 -v 宿主机数据目录:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=mysql密码 -d 镜像ID
docker run --name mymysql  -p 3306:3306 --restart always -v /data/mysql:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=2240881 -d 54514d54a4a5



mysql8 

 docker run --name mymysql8 -e MYSQL_ROOT_PASSWORD=evan2240881  -p3306:3306 -d mysql:8
#开启远程访问
create user 'evan'@'%' identified by 'evan2240881';



Installing and using MariaDB via Docker

Docker使用MariaDB

wiki

#前提 得开启mysql远程访问 直接登录到mysql 容器里面进去 用一开始运行mysql容器的那个用户和密码,再添加远程用户和密码
docker pull mediawiki
docker run --name mymediawiki  -p 88:80  --link mymariadb:mysql -d  mediawiki #is good 
docker  cp LocalSettings.php  3c0002c21a6a:/var/www/html/LocalSettings.php
--net=host 

#如果是使用mysql 
docker run --name mymediawiki  -p 88:80  --link mymysql:mysql -d  mediawiki

mediawiki   这个不会自启动 


docker run --name mymediawiki --link mymariadb:mysql -d   wikimedia/mediawiki  #起来 这个感觉不对 
#is old
docker pull mediawiki

#还是指定目录比较好  但是现在 官方的好像不支持 -v了 
docker run  --restart=always --name mediawiki -p 8080:80 -v  /data/mediawiki -d 8d721d068c81 #2018  但是没办法直接数据交互 下面的用了有问题呢
#mysql 填写 192.168.0.10:3307

docker run --name mediawiki -p 8080:80  -v /data/mediawiki:/var/www/html/ -d id
#docker run --name mediawiki -p 8080:80  -v /data/mediawiki:/var/www/html/ -d mediawiki
docker cp /data/LocalSettings.php  mediawiki:/var/www/html/LocalSettings.php
默认上传目录 /var/www/html/images/


#解说 
使用docker镜像nginx:latest以后台模式启动一个容器,并将容器命名为mynginx。
docker run --name mynginx -d nginx:latest

#交互  
sudo docker exec -it facethink-mediawiki /bin/bash

#开机自启动
#在运行docker容器时可以加如下参数来保证每次docker服务重启后容器也自动重启:
$docker run --restart=always
#如果已经启动了则可以使用如下命令:
$docker update --restart=always <CONTAINER ID> #上次就是这样解决了重启后nginx问题

wiki configure


Database host:

192.168.88.52



多问我一些问题吧
 那里还在要求可以填写缓存什么的

编辑者
CodeEditor(需要WikiEditor)

其实皮肤可以只要一个

mysql

Docker mysql

nginx

on docker

Docker_nginx 域名配置

no docker

#这个在内网其实可以不用呢
server {
    listen       80;
    server_name  wiki.linuxsa.org;

    charset utf-8;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
        proxy_pass   http://192.168.50.206:8080;
        root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

docker  cp default.conf  nginx:/etc/nginx/conf.d/default.conf 


#手工的nginx 
[root@localhost conf.d]# cat   default.conf
server {
    listen       80;
    server_name   wiki.linuxsa.org;

    #charset koi8-r;
    #access_log  /var/log/nginx/host.access.log  main;

    location / {
                proxy_pass   http://192.168.88.52:88;
        #root   /usr/share/nginx/html;
        index  index.html index.htm;
    }

  #error_page  404              /404.html;

    # redirect server error pages to the static page /50x.html
    #
    error_page   500 502 503 504  /50x.html;
    location = /50x.html {
        root   /usr/share/nginx/html;
    }

    # proxy the PHP scripts to Apache listening on 127.0.0.1:80
    #
    #location ~ \.php$ {
    #    proxy_pass   http://127.0.0.1;
    #}
}


Docker nginx

Memcached

安装过程会提示缓存软件为memcached

Docker 安装 Memcached

trouble

mysql8 err


[df278b0f908ad5e5f2653f4e] /mw-config/index.php?page=Install Wikimedia\Rdbms\DBQueryError from line 1506 of /var/www/html/includes/libs/rdbms/database/Database.php: A database query error has occurred. Did you forget to run your application's database schema updater after upgrading? 
Query: CREATE DATABASE `my_wiki`CHARACTER SET utf8
Function: MysqlInstaller::setupDatabase
Error: 1044 Access denied for user 'evan'@'%' to database 'my_wiki' (192.168.88.21)
Backtrace:

#0 /var/www/html/includes/libs/rdbms/database/Database.php(1476): Wikimedia\Rdbms\Database->makeQueryException(string, integer, string, string)
#1 /var/www/html/includes/libs/rdbms/database/Database.php(1236): Wikimedia\Rdbms\Database->reportQueryError(string, integer, string, string, boolean)
#2 /var/www/html/includes/installer/MysqlInstaller.php(491): Wikimedia\Rdbms\Database->query(string, string)
#3 /var/www/html/includes/installer/Installer.php(1601): MysqlInstaller->setupDatabase(MysqlInstaller)
#4 /var/www/html/includes/installer/WebInstallerInstall.php(44): Installer->performInstallation(array, array)
#5 /var/www/html/includes/installer/WebInstaller.php(272): WebInstallerInstall->execute()
#6 /var/www/html/mw-config/index.php(79): WebInstaller->execute(array)
#7 /var/www/html/mw-config/index.php(38): wfInstallerMain()
#8 {main}

see also

https://www.mediawiki.org/wiki/Comparison_of_distribution_options

good使用Docker部署MediaWiki

docker搭建mediawiki



树莓派docker搭建lnmp环境


Docker for mediawiki

https://hub.docker.com/_/mediawiki/

使用 Docker 部署 MediaWiki

docker安装mediawiki教程

使用 Docker 部署 MediaWiki

Docker 安装 Memcached

Docker 实践 3:fig 搭建 mediawiki