基于LAMP环境搭建media Wiki,并且安装visualEditor功能。

Mediawiki搭建手册
Mediawiki采用的是linux+apache+mysql+php技术搭建的开源知识库系统,本手册是一份环境搭建部署文档。
一.安装php7.0
1.下载php7
wget -O php7.tar.gz http://cn2.php.net/get/php-7.1.1.tar.gz/from/this/mirror
2解压php7
tar -xvf php7.tar.gz
3. 进入php目录
cd php-7.0.4
4. 安装依赖包
yum install libxml2 libxml2-devel openssl openssl-devel bzip2 bzip2-devel libcurl libcurl-devel libjpeg libjpeg-devel libpng libpng-devel freetype freetype-devel gmp gmp-devel libmcrypt libmcrypt-devel readline readline-devel libxslt libxslt-devel
5. 配置编译php
编译配置(如果出现错误,基本都是上一步的依赖文件没有安装所致)
嫌麻烦的可以从这一步起参考PHP官方安装说明:http://php.net/manual/zh/install.unix.nginx.php
./configure
–prefix=/usr/local/php
–with-config-file-path=/etc
–enable-fpm
–with-fpm-user=nginx
–with-fpm-group=nginx
–enable-inline-optimization
–disable-debug
–disable-rpath
–enable-shared
–enable-soap
–with-libxml-dir
–with-xmlrpc
–with-openssl
–with-mcrypt
–with-mhash
–with-pcre-regex
–with-sqlite3
–with-zlib
–enable-bcmath
–with-iconv
–with-bz2
–enable-calendar
–with-curl
–with-cdb
–enable-dom
–enable-exif
–enable-fileinfo
–enable-filter
–with-pcre-dir
–enable-ftp
–with-gd
–with-openssl-dir
–with-jpeg-dir
–with-png-dir
–with-zlib-dir
–with-freetype-dir
–enable-gd-native-ttf
–enable-gd-jis-conv
–with-gettext
–with-gmp
–with-mhash
–enable-json
–enable-mbstring
–enable-mbregex
–enable-mbregex-backtrack
–with-libmbfl
–with-onig
–enable-pdo
–with-mysqli=mysqlnd
–with-pdo-mysql=mysqlnd
–with-zlib-dir
–with-pdo-sqlite
–with-readline
–enable-session
–enable-shmop
–enable-simplexml
–enable-sockets
–enable-sysvmsg
–enable-sysvsem
–enable-sysvshm
–enable-wddx
–with-libxml-dir
–with-xsl
–enable-zip
–enable-mysqlnd-compression-support
–with-pear
–enable-opcache
6. 安装php
make && make install
7. 配置环境变量
vi /etc/profile
PATH=$PATH:/usr/local/php/bin
export PATH

source /etc/profile
8. 配置php-fpm
cp php.ini-production /etc/php.ini
cp /usr/local/php/etc/php-fpm.conf.default /usr/local/php/etc/php-fpm.conf
cp /usr/local/php/etc/php-fpm.d/www.conf.default /usr/local/php/etc/php-fpm.d/www.conf
cp sapi/fpm/init.d.php-fpm /etc/init.d/php-fpm
chmod +x /etc/init.d/php-fpm

  1. 启动php-fpm
    /etc/init.d/php-fpm start

二.安装数据库mysql
在centos7上使用mariadb来替代mysql,mariadb是一个分支,其实都是一样的。
1.安装
yum install mariadb-server mariadb

  1. 启动MariadbDB并初始化数据库
    systemctl start mariadb
    mysql_secure_installation

  2. 创建wiki用户和数据库
    mysql -u root -p

CREATE USER ‘wiki’@‘localhost’ IDENTIFIED BY ‘。。。。。。。。’;
CREATE DATABASE wikidb;
GRANT ALL PRIVILEGES ON wikidb.* TO ‘wiki’@‘localhost’;
FLUSH PRIVILEGES;
SHOW DATABASES;
SHOW GRANTS FOR ‘wiki’@‘localhost’;
exit
4.设置开机启动
systemctl enable mariadb

三.安装mediawiki
1.下载安装mediawiki
cd /home
Wget http://releases.wikimedia.org/mediawiki/1.30/mediawiki-1.30.0.tar.gz

cd /var/www/
tar -zxf /home/mediawiki-1.30.0.tar.gz
ln -s mediawiki-1.30.0/ mediawiki
2. 配置mediawiki
编辑一下三行:
Vi /etc/httpd/conf/httpd.conf

访问配置:
http://servername/mediawiki

四.安装插件
1.安装VisualEditor
前提条件:1.media Wiki 1.31.0
2.php 7以上
3.mariadb 5.5.35(当前版本)
4.centos7
5.保证wiki1.31可以正常运行使用
6.确保防火墙关闭和selinux的状态为disable
2.准备
1.在安装visualeditor之前需要安装parsoid和restbase服务,然而安 装parsoid和restbase服务需要安装node.js。
2.安装node.js(当前版本node为V10.8.0,npm为6.2)
使用nvm工具安装node.js其中大致步骤如下:
1.安装Git
yum install git -y
2.安装nvm
git clone https://github.com/creationix/nvm.git
3.完成后需要执行下载下来的nvm文件
source nvm/nvm.sh
4. 查看NVM版本
nvm –version
在这里插入图片描述基于LAMP环境搭建media Wiki,并且安装visualEditor功能。_第1张图片
5.安装nodejs版本
使用NVM下载指定版本的Node.js (10.8.0可以通过node官网查询)
cd nvm/
nvm install 10.8.0 -y
基于LAMP环境搭建media Wiki,并且安装visualEditor功能。_第2张图片
查看已经安装的 node.js 版本
node -v
npm -v
基于LAMP环境搭建media Wiki,并且安装visualEditor功能。_第3张图片

3.安装Parsoid服务
重要的是parsoid服务一定要和Mediawiki版本一致,可以参考 https://www.mediawiki.org/wiki/Extension:VisualEditor
的矩阵图。parsoid 0.9.0 <---->mediawiki 1.31
基于LAMP环境搭建media Wiki,并且安装visualEditor功能。_第4张图片
安装说明:https://www.mediawiki.org/wiki/Parsoid/Setup

  1. 若git,npm没有安装重复以上步骤

  2. clone项目
    git clone https://gerrit.wikimedia.org/r/p/mediawiki/services/parsoid
    基于LAMP环境搭建media Wiki,并且安装visualEditor功能。_第5张图片
    若报错可能是虚拟机和GitHub时间不同步则:
    sudo yum -y install ntp
    sudo chkconfig ntpd on
    sudo ntpdate time.apple.com
    完成后继续clone
    git clone https://gerrit.wikimedia.org/r/p/mediawiki/services/parsoid
    基于LAMP环境搭建media Wiki,并且安装visualEditor功能。_第6张图片
    然后移动目录
    mv parsoid/ /data/
    进入parsoid目录安装
    cd parsoid/
    npm install
    基于LAMP环境搭建media Wiki,并且安装visualEditor功能。_第7张图片

  3. 安装成功后需要配置
    1.切入到parsoid目录中,赋值配置文件
    cd /data/parsoid
    cp config.example.yaml config.yaml
    2.设置配置文件
    vi config.yaml
    如果api.php您的Wiki 的文件不在默认值中,请编辑该文件并修改参数以指向正确的 位置: ‘http://localhost/w/api.php’
    基于LAMP环境搭建media Wiki,并且安装visualEditor功能。_第8张图片
    启动和测试(若node实现执行source nvm/nvm.sh即可)
    node bin/server.js
    基于LAMP环境搭建media Wiki,并且安装visualEditor功能。_第9张图片
    此时,打开浏览器到10.175.38.158:8000应显示一个页面
    基于LAMP环境搭建media Wiki,并且安装visualEditor功能。_第10张图片
    或者使用主机端口验证:netstat -tunlp | grep 8000
    在这里插入图片描述

  4. 更改启动文件以添加任务以node bin/server.js在服务器启动时重新启动(在文档的最后几行)

  5. RESTBase服务安装
    参考:https://www.mediawiki.org/wiki/RESTBase/Installation
    下载:
    git clone https://github.com/wikimedia/restbase.git
    基于LAMP环境搭建media Wiki,并且安装visualEditor功能。_第11张图片
    将目录移动到/data/
    mv restbase/ /data/
    cd restbase/
    npm install
    补充说明:若npm失效则切入到/root/下执行source nvm/nvm.sh即可,然后返回到restbase下继续执行npm install
    若出现一些警报请执行npm audit fix –force即可
    基于LAMP环境搭建media Wiki,并且安装visualEditor功能。_第12张图片
    配置:
    cp config.example.yaml config.yaml
    基于LAMP环境搭建media Wiki,并且安装visualEditor功能。_第13张图片
    基于LAMP环境搭建media Wiki,并且安装visualEditor功能。_第14张图片
    运行服务器并测试 /data/restbase下
    (若node实现执行source nvm/nvm.sh即可)
    node server.js
    在这里插入图片描述
    此时,打开浏览器到10.175.38.158:7231应显示一个页面
    在这里插入图片描述
    或者使用主机端口验证:netstat -tunlp | grep 7231
    在这里插入图片描述

更改启动文件以添加任务以node bin/server.js在服务器启动时重新启动(在文档的最后几行)

5.安装VisualEditor扩展
要求:parsoid和restbase服务能够单独运行的前提。
参考: https://www.mediawiki.org/wiki/Extension:VisualEditor
安装下载:
wget https://extdist.wmflabs.org/dist/extensions/VisualEditor-REL1_31-13a585a.tar.gz
解压:tar -xzf VisualEditor-REL1_31-13a585a.tar.gz
移动:mv VisualEditor /data/www/html/mediawiki/extensions/
切入到wiki的目录中编辑LocalSettings.php文件将以下内容添加进去
#VisualEditor
wfLoadExtension( ‘VisualEditor’ );

// Enable by default for everybody
$wgDefaultUserOptions[‘visualeditor-enable’] = 1;
// Optional: Set VisualEditor as the default for anonymous users
// otherwise they will have to switch to VE
// $wgDefaultUserOptions[‘visualeditor-editor’] = “visualeditor”;
// Don’t allow users to disable it
$wgHiddenPrefs[] = ‘visualeditor-enable’;

// OPTIONAL: Enable VisualEditor’s experimental code features
#$wgDefaultUserOptions[‘visualeditor-enable-experimental’] = 1;

//parsoid
$wgVirtualRestConfig[‘modules’][‘parsoid’] = array(
// URL to the Parsoid instance
// Use port 8142 if you use the Debian package
‘url’ => ‘http://10.175.38.158:8000’,
// Parsoid “domain”, see below (optional)
‘domain’ => ‘10.175.38.158’,
// Parsoid “prefix”, see below (optional)
‘prefix’ => ‘10.175.38.158’
);

#restbase
$wgVirtualRestConfig[‘modules’][‘restbase’] = array(
‘url’ => ‘http://10.175.38.158:7231’,
‘domain’ => ‘10.175.38.158’, # matches the “domain” used above
‘forwardCookies’ => false,
‘parsoidCompat’ => false
);
基于LAMP环境搭建media Wiki,并且安装visualEditor功能。_第15张图片

配置好后回到wiki首页进行可视化编辑测试,若成功会有如下效果
基于LAMP环境搭建media Wiki,并且安装visualEditor功能。_第16张图片
倘若报错,考虑几方面的原因:curl可能没有装,防火墙没关,selinx设置为disable,
Parsoid和restbase服务没有正常启动或者其配置文件中uri,port出错等。
若出现故障请参考https://www.mediawiki.org/wiki/Extension:VisualEditor下方的故障排除

  1. 添加Msupload批量上传扩展
    参考:https://www.mediawiki.org/wiki/Extension:MsUpload
    下载:wget https://extdist.wmflabs.org/dist/extensions/MsUpload-REL1_31-2e2efd5.tar.gz
    解压:tar -xzf MsUpload-REL1_31-2e2efd5.tar.gz
    移动:mv MsUpload/ /data/www/html/mediawiki/extensions/
    启用WikiEditor的“增强编辑工具栏”
    编辑LocalSettings.php
    $wgDefaultUserOptions[‘usebetatoolbar’] = 1;
    配置

#Msupload
wfLoadExtension( ‘MsUpload’ );
$wgDefaultUserOptions[‘usebetatoolbar’] = 1;
$wgMSU_useDragDrop = true; // Should the drag & drop area be shown? (Not set by default)
$wgMSU_showAutoCat = true; // Files uploaded while editing a category page will be added to that category
$wgMSU_checkAutoCat = true; // Whether the checkbox for adding a category to a page is checked by default
$wgMSU_useMsLinks = false; // Insert links in Extension:MsLinks style?
$wgMSU_confirmReplace = true; // Show the “Replace file?” checkbox
$wgMSU_imgParams = ‘400px’; // The default size for images inserted on the edit page

$wgEnableWriteAPI = true; // Enable the API
KaTeX parse error: Expected 'EOF', got '#' at position 28: …ploads = true; #̲wgGroupPermissions[‘user’][‘upload’] = true;

//添加上传路径配置
$wgHashedUploadDirectory=true;
KaTeX parse error: Expected '}', got 'EOF' at end of input: …oadDirectory="{IP}/images";


基于LAMP环境搭建media Wiki,并且安装visualEditor功能。_第17张图片
添加异常配置

#showExceptionDetails
$wgShowExceptionDetails=true;

添加时区同步配置

#Set Default Timezone
$wgLocaltimezone = “Asia/Shanghai”;
date_default_timezone_set( $wgLocaltimezone );

添加用户权限配置
$wgGroupPermissions[’’][‘edit’] = false;
$wgGroupPermissions[’
’][‘read’] = false;
$wgGroupPermissions[’*’][‘createpage’] = false;
$wgGroupPermissions[‘user’][‘edit’] = true;
KaTeX parse error: Expected 'EOF', got '#' at position 50: …page'] = true; #̲wgGroupPermissions[‘Write’][‘edit’] = true;
#$wgGroupPermissions[‘Write’][‘createpage’] = true;

if ( !isset( $_SERVER[‘REMOTE_ADDR’] ) OR $_SERVER[‘REMOTE_ADDR’] == ‘10.175.38.158’ ) {
$wgGroupPermissions[’’][‘read’] = true;
$wgGroupPermissions[’
’][‘edit’] = true;
}

基于LAMP环境搭建media Wiki,并且安装visualEditor功能。_第18张图片

添加上传文件类型配置
#Upload

$wgFileExtensions = array( ‘png’, ‘gif’, ‘jpg’, ‘jpeg’, ‘doc’,
‘xls’, ‘mpp’, ‘pdf’, ‘ppt’, ‘tiff’, ‘bmp’, ‘docx’, ‘xlsx’,
‘pptx’, ‘zip’, ‘html’, ‘svg’, ‘txt’, ‘mhtml’, ‘mht’, ‘cmd’, ‘sh’
);

实现如此效果
基于LAMP环境搭建media Wiki,并且安装visualEditor功能。_第19张图片

修改上传路径权限
chmod 777 /data/www/html/mediawiki/images/

添加log图标
在这里插入图片描述
将图片存入
cd /data/www/html/mediawiki/resources/assets/
在这里插入图片描述
补充说明:设置开机启动()
vi /etc/rc.d/rc.local
加入以下几行:
nohup node /data/parsoid/bin/server.js &
#nohup node /data/restbase/server.js &
需要注意的是可能会失败,建议手动单独开窗口启动即可
即:/data/parsoid/bin/server.js & ----->对应parsoid 服务
/data/restbase/server.js & ----->对应restbase服务

你可能感兴趣的:(linux)