“安装MW:安装与更新”的版本间差异

来自Wikioe
跳到导航 跳到搜索
(Eijux移动页面安装MW:安装与配置安装MW:安装与更新,不留重定向)
无编辑摘要
第1行: 第1行:
[[category:MediaWiki]]
[[category:MediaWiki]]


== 安装 ==
== 关于 ==
安装需求:LAMP/LNMP(Windows等服务器亦可;本服务器采用LNMP,安装及注意与Wordpress类似),PHP7.2.9及以上(含有Perl兼容正则表达式、含有标准PHP库、含有JSON支持)、MySQL5.5.8及以上(/MariaDB/PostgreSQL9.2+/SQLite 3.8+)。<br/>
关于获取 MediaWiki 的站点:
<blockquote>'''与PHP 7.4.0至7.4.2不兼容!Oracle与Microsoft SQL Server不再被支持!'''</blockquote><br/>
1、[https://github.com/wikimedia/mediawiki GitHub:MediaWiki]
2、[https://releases.wikimedia.org/mediawiki/ MediaWiki Releases]
3、[https://lists.wikimedia.org/pipermail/mediawiki-announce/2020-September/000258.html MediaWiki消息站点](发布时间会早一点)。
 
'''获取 MediaWiki:'''
# 在服务器,通过 git 拉取[https://github.com/wikimedia/mediawiki MediaWiki 项目分支]。
#* 服务器需安装 git,且能连接到 GitHub。
# 在服务器,使用 wget 下载 WikiMedia.org 上的发布包。
#: 例如:<syntaxhighlight lang="bash" inline>wget -P /www/wwwroot/ https://releases.wikimedia.org/mediawiki/1.35/mediawiki-1.35.0-rc.3.tar.gz</syntaxhighlight>。
#* 服务器须能连接到 WikiMedia。
# '''先下载到到本地,再通过 Xftp 等工具上传到 Server'''。
#* 若服务器不能连接到 Github、WikiMedia。
 
'''注意:'''
* 通过 <syntaxhighlight lang="bash" inline>git clone</syntaxhighlight> 或 download code zip 的时候,可能未拉取子模块,需要 <syntaxhighlight lang="bash" inline>git submodule update</syntaxhighlight> 或单独去 download 那些(对应分支)子模块的代码。
** 子模块的信息在 <code>'''.gitmodules'''</code> 文件中。
* 下载或拉取的发布包若“核心包”(如:mediawiki-core-1.35.0-rc.3.tar.gz)则包内不包含任何扩展。
 
== 服务器准备 ==
安装需求:LAMP/LNMP(Windows 等服务器亦可;本服务器采用 LNMP,安装及注意与 Wordpress 类似),PHP 7.2.9 及以上(含有 Perl 兼容正则表达式、含有标准 PHP 库、含有 JSON 支持)、MySQL 5.5.8 及以上(MariaDB / PostgreSQL9.2+ / SQLite 3.8+)。
<blockquote>'''与 PHP 7.4.0 至 7.4.2 不兼容!Oracle 与 Microsoft SQL Server 不再被支持!'''</blockquote>
通过'''宝塔面板'''简化服务器准备过程。
 
 
步骤:
# 确保 <span style="color: blue">'''LNMP'''</span> 环境;(LAMP 亦可)
#* 注意:各版本 MediaWiki 支持的的 PHP 版本同步。
# PHP 设置:
## '''安装插件''':<span style="color: blue">'''fileinfo'''、'''opcache'''、'''memcached'''、'''Intl'''</span>;
## '''移除禁用函数''':<span style="color: blue">'''proc_open'''、'''symlink'''、'''putenv'''</span>;
# 添加站点“wiki.xxx.com”,并修改站点配置文件():
## 添加内容:(否则整个站点都无法访问<ref name="nginx_error">参见:[[FAQ:MediaWiki#404 Not Found nginx]]</ref>)
##: <syntaxhighlight lang="bash" line highlight="3-31">
...
 
    #修改短链接, by Eijux at 2020/09/09 03:14:50
    #begin
    location ~ \.ht {
        deny all;
    }
   
    location / {
        try_files $uri $uri/ @rewrite;
    }
 
    location @rewrite {
        rewrite ^/(.*)$ /index.php;
    }
 
    location ^~ /maintenance/ {
        return 403;
    }
 
    location ~ \.php$ {
        include /www/server/nginx/conf/fastcgi_params;
   
        fastcgi_pass  unix:/tmp/php-cgi-73.sock;
        fastcgi_index index.php;
   
        fastcgi_param  SCRIPT_FILENAME $document_root$fastcgi_script_name;
   
        try_files $uri @rewrite;
    }
    #end
 
...
</syntaxhighlight>
## 修改内容:(否则“.js/.css/.png”等内容都无法访问<ref name="nginx_error" />)
##: <syntaxhighlight lang="bash" line highlight="9-10,19-20">
...
 
    location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
    {
        expires      30d;
        error_log /dev/null;
        access_log /dev/null;
       
        #允许访问内容, by Eijux at 2020/09/09 03:14:50
        try_files $uri @rewrite;
    }
 
    location ~ .*\.(js|css)?$
    {
        expires      12h;
        error_log /dev/null;
        access_log /dev/null;
 
        #允许访问内容, by Eijux at 2020/09/09 03:14:50
        try_files $uri @rewrite;
    }
 
...
</syntaxhighlight>
 
== 安装过程 ==
 
步骤:
步骤:
{| class="wikitable" style="width: 100%;"
{| class="wikitable" style="width: 100%;"
第37行: 第134行:
|}
|}


== 配置 ==
== 更新升级 ==
MediaWiki的配置文件有两处:
注意:
# '''/www/wwwroot/xxx.com/includes/DefaultSettings.php''' : 系统默认的配置文件;
# '''/www/wwwroot/xxx.com/LocalSettings.php''' : 用户设置的配置文件;
'''更新''':小版本的更新(如1.34.0 → 1.34.2),一般直接更新就可以了,不需要对服务器的基础支持相关进行安装或升级。
主要在LocalSettings.php中进行设置和覆盖相应配置,对DefaultSettings.php只是做较少的修改<br/>
'''升级''':大版本的升级(1.34.2 → 1.35.0),要注意新版本的'''系统需求'''(如:PHP版本、PHP插件等),以及“'''两个 LTS 之间的版本才能之间升级'''”(否则,需要升级到一个LTS,再升级到第二个LTS)。
(更新之前,维护一下“[[站点日志]]”,记录一下新版本的系统需求、特性,养成习惯)


=== 修改默认logo与icon ===
=== 文件备份 ===
LocalSettings.php中,'''''$wgLogo = "$wgResourceBasePath/resources/assets/wiki.png"'''''<br/>
包括:
更改logo的方法有两种,
# 配置文件:<span style="color: blue">'''LocalSettings.php'''</span>;
# 替换“./resources/assets/wiki.png”为同名图片(不建议,因为更新系统时会覆盖该默认图片)
#* 如果修改过<span style="color: green">'''数据库配置'''</span>,则需要在配置文件中更新。
# 另行制定其他路径下的自定义图片,如“$wgLogo = "$wgResourceBasePath/images/logo.jpg"”。
# 上传文件夹:<span style="color: blue">'''./images'''</span>
<pre>
# 扩展文件夹:<span style="color: blue">'''./extensions'''</span>
## The URL path to the logo.  Make sure you change this from the default,
#* 部分扩展可能也需要更新(最好都重新下载更新一遍)。
## or else you'll overwrite your logo when you upgrade!
# 修改过的内容;
# $wgLogo = "$wgResourceBasePath/resources/assets/wiki.png";
#: 如:includes/defaultSettings.php。
# $wgLogos = [ '1x' => "$wgResourceBasePath/resources/assets/wiki.png" ];
# 添加过的内容。
</pre>
#: 如:<span style="color: blue">'''logo'''</span>(位于“<span style="color: green">'''./resources/assets'''</span>”)、skins[皮肤]、vendor[依赖] 等。
'''LocalSettings.php'''中配置网站'''Logo'''和站点'''icon''':
 
<syntaxhighlight lang="php">
=== 文件替换 ===
$wgLogo = "$wgResourceBasePath/resources/assets/wikioe.png";
步骤:
$wgFavicon = "$wgResourceBasePath/resources/assets/wikioe.ico";
# 解压安装包:
</syntaxhighlight>
#:<syntaxhighlight lang="bash" highlight="">
* 用“Axialis IconWorkshop”制作图标相当nice【2020/10/07 16:43:15】
tar -zxvf mediawiki-1.35.0-rc.2.tar.gz


=== 去除底部的power by图标 ===
# 或
LocalSettings.php中,加入 '''''unset($wgFooterIcons['poweredby']);'''''。


=== 修改皮肤 ===
unzip mediawiki-REL1_35.zip -d /www/wwwroot/
LocalSettings.php中,'''''$wgDefaultSkin = "vector";'''''。<br/>
</syntaxhighlight>
MediaWiki的皮肤位于“./skins”中,可在网络下载并上传至服务器中(并修改皮肤文件读写权限及所有者),并在LocalSettings.php中加载皮肤(如'''''wfLoadSkin( 'Vector' );''''')。
#*(把不需要的内容删除)
<pre>
# 移除旧版本;
## Default skin: you can change the default skin. Use the internal symbolic
#: <syntaxhighlight lang="bash" highlight="">
## names, ie 'vector', 'monobook', 'timeless':
rm -rf wiki.eijux.com/
$wgDefaultSkin = "vector";
</syntaxhighlight>
#*(可以保留需要备份的内容)
# 安装文件替换:
#: <syntaxhighlight lang="bash" highlight="">
# 移动
mv -f mediawiki-1.35.0-rc.2/* wiki.eijux.com/


# Enabled skins.
# 复制
# The following skins were automatically enabled:
yes|cp -rf mediawiki-REL1_35/* wiki.eijux.com/
wfLoadSkin( 'MonoBook' );
</syntaxhighlight>
wfLoadSkin( 'Timeless' );
# 替换备份文件。
wfLoadSkin( 'Vector' );
# 更新网站文件归属及读写权限:
</pre>
#: <syntaxhighlight lang="bash" highlight="">
# 文件归属者、组
chown -Rf www:www wiki.eijux.com/*


=== 上传文件设定 ===
# 文件权限
LocalSettings中,'''''$wgEnableUploads = true;''''';<br/>
chmod -Rf 775 wiki.eijux.com/*
MediaWiki中允许上传文件类型限制配置(默认支持'png','gif', 'jpg', 'jpeg', 'webp'),可参阅DefaultSettings.php中'''''$wgFileExtensions'''''的值,如:
</syntaxhighlight>
<pre>$wgFileExtensions = [ 'png', 'gif', 'jpg', 'jpeg', 'webp' ];</pre>
而不允许的文件类型在参数'''''$wgFileBlacklist'''''中设定,如:
<pre>
$wgFileBlacklist = [
:# HTML may contain cookie-stealing JavaScript and web bugs
'html', 'htm', 'js', 'jsb', 'mhtml', 'mht', 'xhtml', 'xht',
# PHP scripts may execute arbitrary code on the server
'php', 'phtml', 'php3', 'php4', 'php5', 'phps', 'phar',
# Other types that may be interpreted by some servers
'shtml', 'jhtml', 'pl', 'py', 'cgi',
# May contain harmful executables for Windows victims
'exe', 'scr', 'dll', 'msi', 'vbs', 'bat', 'com', 'pif', 'cmd', 'vxd', 'cpl' ];
</pre>
登录后通过导航栏或特殊页面中的上传文件链接上传文件。用'''''<nowiki>[[File:文件名]]</nowiki>'''''在页面中引用文件,如果引入的是图片文件,还可以指定图片宽度('''''<nowiki>[[File:Example.jpg|200px]]</nowiki>'''''),加入图片说明('''''<nowiki>[[File:Example.jpg|图片1]]</nowiki>'''''),设置方框效果('''''<nowiki>[[File:Filename.jpg|thumb]]</nowiki>''''')。<br/>


=== 修改导航栏 ===
=== 执行升级 ===
通过wiki地址 ''index.php?title=MediaWiki''( [http://wiki.eijux.com/index.php?title=MediaWiki:Sidebar MediaWiki:Sidebar] ),或者在搜索栏中输入“mediawiki:sidebar”,进入页面后点击编辑即可。<br/>
文件替换之后,也能直接访问 MediaWiki,但是使用时(涉及查找的操作和页面)可能出现错误:
    [[File:MediaWiki:数据错误.png|800px]]


导航栏格式如下:
'''步骤:'''
<pre>
# 访问安装页面:<big>'''[http://wiki.eijux.com/mw-config/index.php http://wiki.eijux.com/mw-config/index.php]'''</big>;
*导航栏名称一
# 依次完成安装过程。
**链接一地址|链接一名称
#* 升级密钥:“'''LocalSettings.php'''”中的“<span style="color: blue">'''$wgUpgradeKey'''</span>”)。
**链接二地址|链接二名称


*导航栏名称二
== 站点迁移 ==
**链接一地址|链接一名称
若没有站点迁移工具,则需要手动执行迁移。其过程,大概就是:依次执行一遍上述内容。
**链接二地址|链接二名称
</pre>


=== 用户组 ===
步骤:
MediaWiki中有3个用户组:机器人/管理员/行政员,每个用户组的具体权限可通过”特殊页面” -> “用户组权限”查看;<br/>
# '''数据库备份,站点备份'''
通过首页中”创建用户”注册的用户默认不属于任何用户组;<br/>
# 服务器准备。
从属于行政员用户组的用户,可通过”特殊页面” -> “用户权限管理”给其他用户分配用户组。
# '''数据库导入'''。
=== 清除页面缓存 ===
#* Mysql 5.7 导入 8.0 后,数据库大小似乎有变化,但是记录并无任何丢失。
DefaultSettings.php中,找到参数'''''$wgCacheEpoch''''',将参数值置为当前时间,可以取消全部已经缓存的页面(包括客户端和服务器端)
# '''站点导入'''。
<pre>
#* 若仅迁移,则直接导入站点备份即可;
/**
#* 若需升级,则安装新版本后,以站点备份部分导入。
* Set this to current time to invalidate all prior cached pages. Affects both
* client-side and server-side caching.
* You can get the current date on your server by using the command:
* @verbatim
*   date +%Y%m%d%H%M%S
* @endverbatim
*/
$wgCacheEpoch = '20030516000000';
</pre>

2022年8月22日 (一) 04:04的版本


关于

关于获取 MediaWiki 的站点:
1、GitHub:MediaWiki
2、MediaWiki Releases
3、MediaWiki消息站点(发布时间会早一点)。

获取 MediaWiki:

  1. 在服务器,通过 git 拉取MediaWiki 项目分支
    • 服务器需安装 git,且能连接到 GitHub。
  2. 在服务器,使用 wget 下载 WikiMedia.org 上的发布包。
    例如:wget -P /www/wwwroot/ https://releases.wikimedia.org/mediawiki/1.35/mediawiki-1.35.0-rc.3.tar.gz
    • 服务器须能连接到 WikiMedia。
  3. 先下载到到本地,再通过 Xftp 等工具上传到 Server
    • 若服务器不能连接到 Github、WikiMedia。

注意:

  • 通过 git clone 或 download code zip 的时候,可能未拉取子模块,需要 git submodule update 或单独去 download 那些(对应分支)子模块的代码。
    • 子模块的信息在 .gitmodules 文件中。
  • 下载或拉取的发布包若“核心包”(如:mediawiki-core-1.35.0-rc.3.tar.gz)则包内不包含任何扩展。

服务器准备

安装需求:LAMP/LNMP(Windows 等服务器亦可;本服务器采用 LNMP,安装及注意与 Wordpress 类似),PHP 7.2.9 及以上(含有 Perl 兼容正则表达式、含有标准 PHP 库、含有 JSON 支持)、MySQL 5.5.8 及以上(MariaDB / PostgreSQL9.2+ / SQLite 3.8+)。

与 PHP 7.4.0 至 7.4.2 不兼容!Oracle 与 Microsoft SQL Server 不再被支持!

通过宝塔面板简化服务器准备过程。


步骤:

  1. 确保 LNMP 环境;(LAMP 亦可)
    • 注意:各版本 MediaWiki 支持的的 PHP 版本同步。
  2. PHP 设置:
    1. 安装插件fileinfoopcachememcachedIntl
    2. 移除禁用函数proc_opensymlinkputenv
  3. 添加站点“wiki.xxx.com”,并修改站点配置文件():
    1. 添加内容:(否则整个站点都无法访问[1]
      ...
      
          #修改短链接, by Eijux at 2020/09/09 03:14:50
          #begin
          location ~ \.ht {
              deny all;
          }
          
          location / {
              try_files $uri $uri/ @rewrite;
          }
      
          location @rewrite {
              rewrite ^/(.*)$ /index.php;
          }
        	
          location ^~ /maintenance/ {
              return 403;
          }
      	  
          location ~ \.php$ {
              include /www/server/nginx/conf/fastcgi_params;
          
              fastcgi_pass  unix:/tmp/php-cgi-73.sock;
              fastcgi_index index.php;
          
              fastcgi_param  SCRIPT_FILENAME	$document_root$fastcgi_script_name;
          
              try_files $uri @rewrite;
          }
          #end
      
      ...
      
    2. 修改内容:(否则“.js/.css/.png”等内容都无法访问[1]
      ...
      
          location ~ .*\.(gif|jpg|jpeg|png|bmp|swf)$
          {
              expires      30d;
              error_log /dev/null;
              access_log /dev/null;
              
              #允许访问内容, by Eijux at 2020/09/09 03:14:50
              try_files $uri @rewrite;
          }
      
          location ~ .*\.(js|css)?$
          {
              expires      12h;
              error_log /dev/null;
              access_log /dev/null;
      
              #允许访问内容, by Eijux at 2020/09/09 03:14:50
              try_files $uri @rewrite;
          }
      
      ...
      

安装过程

步骤:

步骤 截图
  1. 欢迎使用
  2. 语言
  3. 设置数据库
  4. wiki名称
  5. 配置选项
  6. 确认安装
  7. 安装完成
  8. 下载LocalSettings.php并上传到服务器MediaWiki根目录
  9. 修改服务器LocalSettings.php文件属性
  10. 完成安装成功访问

更新升级

注意:

更新:小版本的更新(如1.34.0 → 1.34.2),一般直接更新就可以了,不需要对服务器的基础支持相关进行安装或升级。
升级:大版本的升级(1.34.2 → 1.35.0),要注意新版本的系统需求(如:PHP版本、PHP插件等),以及“两个 LTS 之间的版本才能之间升级”(否则,需要升级到一个LTS,再升级到第二个LTS)。


(更新之前,维护一下“站点日志”,记录一下新版本的系统需求、特性,养成习惯)

文件备份

包括:

  1. 配置文件:LocalSettings.php
    • 如果修改过数据库配置,则需要在配置文件中更新。
  2. 上传文件夹:./images
  3. 扩展文件夹:./extensions
    • 部分扩展可能也需要更新(最好都重新下载更新一遍)。
  4. 修改过的内容;
    如:includes/defaultSettings.php。
  5. 添加过的内容。
    如:logo(位于“./resources/assets”)、skins[皮肤]、vendor[依赖] 等。

文件替换

步骤:

  1. 解压安装包:
    tar -zxvf mediawiki-1.35.0-rc.2.tar.gz
    
    # 或
    
    unzip mediawiki-REL1_35.zip -d /www/wwwroot/
    
    • (把不需要的内容删除)
  2. 移除旧版本;
    rm -rf wiki.eijux.com/
    
    • (可以保留需要备份的内容)
  3. 安装文件替换:
    # 移动
    mv -f mediawiki-1.35.0-rc.2/* wiki.eijux.com/
    
    # 复制
    yes|cp -rf mediawiki-REL1_35/* wiki.eijux.com/
    
  4. 替换备份文件。
  5. 更新网站文件归属及读写权限:
    # 文件归属者、组
    chown -Rf www:www wiki.eijux.com/*
    
    # 文件权限
    chmod -Rf 775 wiki.eijux.com/*
    

执行升级

文件替换之后,也能直接访问 MediaWiki,但是使用时(涉及查找的操作和页面)可能出现错误:

    MediaWiki:数据错误.png

步骤:

  1. 访问安装页面:http://wiki.eijux.com/mw-config/index.php
  2. 依次完成安装过程。
    • 升级密钥:“LocalSettings.php”中的“$wgUpgradeKey”)。

站点迁移

若没有站点迁移工具,则需要手动执行迁移。其过程,大概就是:依次执行一遍上述内容。

步骤:

  1. 数据库备份,站点备份
  2. 服务器准备。
  3. 数据库导入
    • Mysql 5.7 导入 8.0 后,数据库大小似乎有变化,但是记录并无任何丢失。
  4. 站点导入
    • 若仅迁移,则直接导入站点备份即可;
    • 若需升级,则安装新版本后,以站点备份部分导入。