查看“Docker 安装mediawiki”的源代码
←
Docker 安装mediawiki
跳到导航
跳到搜索
因为以下原因,您没有权限编辑本页:
您所请求的操作仅限于该用户组的用户使用:
用户
您可以查看与复制此页面的源代码。
=pre= ==debian docker== <pre> apt update #on vps apt install docker.io docker-compose -y sudo usermod -aG docker $USER </pre> ==** nginx == <pre>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; } </pre> 有时 80不通 重启机器后好了 应该 是firewalld 导致 https://blog.csdn.net/yinlongfei_love/article/details/81085761 解决 413 Request Entity Too Large ==[[Docker 安装 Memcached]] == =install and config= ==201910== ===mariadb 要注意的=== <pre> 密码太简单改了一下 在dockercomps 文件里面改是没用的 要登录root mysql 再用上面 的授权 然后 改 wiki的配置文件 不然 Original exception: [c1fa6e2877bda66dceebe4ab] 2019-10-16 02:25:03: Fatal exception of type "Wikimedia\Rdbms\DBConnectionError" </pre> ===docker-compose 安装mediawiki=== <pre> # 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' </pre> ===wiki configure=== <pre> 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; </pre> === 备份还原=== <pre>* 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 rm -f /tmp/wiki.sql mysqldump -uevan -pidfdf44reeBsdrT9J36UHNgyt -h127.0.0.1 wiki >/tmp/wiki.sql 还原 新搞一下mediawiki 导入 sql文件就行了 不要再用下面的这个页面的导出了 太low </pre> ==== mediawiki页面的导出和导入==== <pre> 特殊:所有页面 复制页面列表内容,整理成一行一个页面名称的文本列表 出来就是一行一个的啦 现在看起来 只有 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前缀 我随便写一个就行 ? </pre> === wiki学习=== [https://blog.csdn.net/zuiaituantuan/article/details/5816502 Mediawiki LocalSettings.php 参数指南中文版] =old= ==db== ===pre=== <pre> #在运行docker容器时可以加如下参数来保证每次docker服务重启后容器也自动重启: $docker run --restart=always #如果已经启动了则可以使用如下命令: $docker update --restart=always <CONTAINER ID> mysql什么的也可以rpm 但是尽量docker </pre> ===mariadb=== <pre> #在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 #连接 </pre> ===mysql=== <pre>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'; </pre> [https://mariadb.com/kb/en/library/installing-and-using-mariadb-via-docker/ Installing and using MariaDB via Docker] [https://www.jianshu.com/p/32542630c2bd Docker使用MariaDB] ==wiki== <pre> #前提 得开启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 #起来 这个感觉不对 </pre> <pre> #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问题 </pre> ==mysql== [[Docker mysql]] ==nginx== ===on docker=== [http://wiki.linuxchina.net/index.php?title=Docker_nginx#.E5.9F.9F.E5.90.8D.E9.85.8D.E7.BD.AE Docker_nginx 域名配置] ===no docker=== <pre> #这个在内网其实可以不用呢 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; #} } </pre> [[Docker nginx]] ==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 [[Docker 安装 Memcached]] =trouble= ==mysql8 err== <pre> [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} </pre> =see also= https://www.mediawiki.org/wiki/Comparison_of_distribution_options [https://www.jianshu.com/p/a644988684d8 good使用Docker部署MediaWiki] [https://www.jianshu.com/p/8de371558ef6 docker搭建mediawiki] [https://zhuanlan.zhihu.com/p/56235816 使用 Docker 搭建你的Wiki(TiddlyWiki)] [https://www.jianshu.com/p/32542630c2bd Docker使用MariaDB] [https://www.zhihu.com/question/20679850 那些不错的mediawiki插件] [https://www.kuyh.com/167.html 树莓派docker搭建lnmp环境] [https://zhuanlan.zhihu.com/p/55898921 使用 Docker 搭建你的Wiki(MediaWiki)] [https://www.mediawiki.org/wiki/Docker Docker for mediawiki] https://hub.docker.com/_/mediawiki/ [https://www.jianshu.com/p/a644988684d8 使用 Docker 部署 MediaWiki] [https://yq.aliyun.com/ziliao/65666 docker安装mediawiki教程] [https://cloud.tencent.com/developer/article/1193750 使用 Docker 部署 MediaWiki] [[Docker 安装 Memcached]] [http://wiki.jikexueyuan.com/project/docker-practice/fig-creat-mediawiki.html Docker 实践 3:fig 搭建 mediawiki] [[category:容器]] [[category:ops]] [[category: container]]
返回至
Docker 安装mediawiki
。
导航菜单
个人工具
登录
名字空间
页面
讨论
变种
视图
阅读
查看源代码
查看历史
更多
搜索
导航
首页
我的导航
关于我
shell
python
ops
linuxchina.net
blog.linuxchina
最近更改
随机页面
帮助
工具
链入页面
相关更改
特殊页面
页面信息