Docker 安装mediawiki
目录
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
Docker 安装 Memcached
install and config
201910
mariadb 要注意的
密码太简单改了一下 在dockercomps 文件里面改是没用的 要登录root mysql 再用上面 的授权 然后 改 wiki的配置文件 不然 Original exception: [c1fa6e2877bda66dceebe4ab] 2019-10-16 02:25:03: Fatal exception of type "Wikimedia\Rdbms\DBConnectionError"
mariadb for wordpress
用宿主机的内网IP就行了 登录到wordpress 容器 /** MySQL database username */ define( 'DB_USER', 'evan'); /** MySQL database password */ define( 'DB_PASSWORD', 'evan'); /** MySQL hostname */ define( 'DB_HOST', '172.18.0.2:3306'); /** Database Charset to use in creating database tables. */ define( 'DB_CHARSET', 'utf8'); mysql -uevan -pevan -h127.0.0.1 用物理机的 内网IP mysql -uevan -pevan -h 10.138.132.61 apt install mariadb-client
docker-compose 安装mediawiki
# MediaWiki with MariaDB 这里不用再另外安装db了 # # Access via "http://localhost:8080" # (or "http://$(docker-machine ip):8080" if using docker-machine) version: '3' services: mediawiki: image: mediawiki restart: always ports: - 8080:80 links: - database volumes: - /var/www/html/images # After initial setup, download LocalSettings.php to the same directory as # this yaml and uncomment the following line and use compose to restart # the mediawiki service # - ./LocalSettings.php:/var/www/html/LocalSettings.php database: image: mariadb restart: always ports: - 3306:3306 environment: # @see https://phabricator.wikimedia.org/source/mediawiki/browse/master/includes/DefaultSettings.php MYSQL_DATABASE: wiki MYSQL_USER: evan MYSQL_PASSWORD: eva555 这要尽量难一点 MYSQL_RANDOM_ROOT_PASSWORD: 'yes'
https://www.mediawiki.org/wiki/MediaWiki-Docker/zh
wiki configure
web安装过程 Database host: 192.168.88.52 #反正是内网IP dbip也可以登录容器 mariadb进去ip add 多问我一些问题吧 那里还在要求可以填写缓存什么的 编辑者 CodeEditor(需要WikiEditor) 其实皮肤可以只要一个 ** 添加定时备份 html目录 没有-v ** 备份目录 备份容器 手工导出为4个 ** 安装时是要密码的 然后改为 可以看 # The following permissions were set based on your choice in the installer $wgGroupPermissions['*']['createaccount'] = false; $wgGroupPermissions['*']['edit'] = false; $wgGroupPermissions['*']['read'] = true;
备份还原
* crontab 知识点 man 5 crontab field allowed values ----- -------------- minute 0-59 hour 0-23 day of month 1-31 month 1-12 (or names, see below) day of week 0-7 (0 or 7 is Sun, or use names) * on xps #!/bin/bash #01 13 * * 1-5 /home/evan/wikitran rm -f /home/evan/wiki/wiki.sql rsync -avz --progress linuxsa.org:/tmp/wiki.sql /home/evan/wiki/wiki.sql * on vps cat /data/mon/mybak.sh #!/bin/bash #01 13 * * 1-5 /home/evan/wikitran rm -f /tmp/wiki.sql mysqldump -uevan -pidfdf44reeBsdrT9J36UHNgyt -h127.0.0.1 wiki >/tmp/wiki.sql 还原 新搞一下mediawiki 导入 sql文件就行了 不要再用下面的这个页面的导出了 太low
mediawiki页面的导出和导入
特殊:所有页面 复制页面列表内容,整理成一行一个页面名称的文本列表 出来就是一行一个的啦 现在看起来 只有 800个文章呢 到 导出页面 把所有文件 复制进去 老是报文件太大 最终把所有文章分为三次,300左右一个, 成功 以后可能要分成4次吧 前缀随便写就行了 php 上传大小 容器里面 apt update ; apt install vim nginx 出现413 Request Entity Too Large问题的解决方法 在http{}段中加入 client_max_body_size 20m; 20m为允许最大上传的大小 打开php.ini,把 upload_max_filesize 和 post_max_size 修改为20M,然后重启。 /usr/local/etc/php/php.ini-development /usr/local/etc/php/php.ini-production post_max_size = 8M upload_max_filesize = 8M 第二步,要对mediawiki的includes目录中的DefaultSettings.php中的$wgMaxUploadSize、$wgUploadSizeWarning两个参数设置成我们想要的值。$wgUploadSizeWarning的设置不是必须的,而是去除系统的警告 $wgMaxUploadSize = 1024 * 1024 * 1000; # 1000M 导入失败:没有提供跨wiki前缀 我随便写一个就行 ?
wiki学习
Mediawiki LocalSettings.php 参数指南中文版
k8s install mediawiki
see also
如何在Kubernetes集群中創建Mediawiki的多個實例
mediawiki 更新
https://www.mediawiki.org/wiki/Manual:Upgrading
https://gerrit.wikimedia.org/g/mediawiki/core/%2B/REL1_37/UPGRADE
mediawiki skins皮肤
https://www.mediawiki.org/wiki/Category:All_skins
https://www.mediawiki.org/wiki/Skin:Tweeki
https://www.mediawiki.org/wiki/Skin:Vector/zh
https://www.jianshu.com/p/050920914109
https://tweeki.kollabor.at/wiki/Welcome
扩展
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
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问题
mysql
nginx
on docker
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; #} }
Memcached
安装过程会提示缓存软件为memcached
除去上面这个原因 以前是我使用mc的原因
情况三:由于网络模型的差异,redis可能会因为CPU计算影响IO调度memcache使用非阻塞IO复用模型,redis也是使用非阻塞IO复用模型。但由于redis还提供一些非KV存储之外的排序,聚合功能,在执行这些功能时,复杂的CPU计算,会阻塞整个IO调度。从这一点上,由于redis提供的功能较多,mc会更快一些。 情况四:由于线程模型的差异,redis难 以利用多核特效提升性能memcache使用多线程,主线程监听,worker子线程接受请求,执行读写,这个过程中,可能存在锁冲突。redis使用单线程,虽无锁冲突,但难以利用多核的特性提升整体吞吐量。从这一点上,mc会快一些。
https://juejin.im/post/5e1db75ee51d4557e632e399
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
使用 Docker 搭建你的Wiki(TiddlyWiki)
那些不错的mediawiki插件
树莓派docker搭建lnmp环境