升级到 Ubuntu 16.04 删除了我的 MediaWiki 安装,我该如何取回它?

Stu*_*aie 4 server mediawiki 16.04

我已经从 Ubuntu 14.04 升级到 16.04,我发现没有mediawiki,因为Debian 在 2015 年 12 月因为它过时而放弃它,没有人想要维护它

昨天我有一个有效的 MediaWiki 安装,升级后,现在我没有。我怎样才能让它恢复运行?

Stu*_*aie 6

这个答案假定您愿意从现在开始自己维护 MediaWiki。

此外,它将在您的 Web 服务器的真实文档根目录中安装 MediaWiki。以前,这将是一个别名,实际安装路径将在 下/var/lib/mediawiki,但由于现在由您而不是 Debian/Ubuntu 维护者来维护它,因此将它放在其真实路径下是最简单的。

在这个答案中,网站的文档根是/srv/apache2/public_html,而 wiki 在网络服务器上的位置是/wiki(例如http://myserver/wiki),使完整路径/srv/apache2/public_html/wiki. 您需要调整这些路径以适合您自己的设置。

下载最新的 MediaWiki并将其直接解压缩到它在您的 Web 服务器上应具有的路径。

wget https://releases.wikimedia.org/mediawiki/1.26/mediawiki-1.26.2.tar.gz
tar xvf mediawiki-1.26.2.tar.gz
mv mediawiki-1.26.2 /srv/apache2/public_html/wiki
cd /srv/apache2/public_html/wiki
chown -R www-data:www-data .
Run Code Online (Sandbox Code Playgroud)

编辑文件LocalSettings.php和更改设置MW_INSTALL_PATH/var/lib/mediawiki新路径。

在文件中做同样的事情 /etc/apache2/conf-available/mediawiki.conf

如果您将任何图像上传到您的 wiki,您将images/var/lib/mediawiki. 将其复制到新的安装目录:

cp -a /var/lib/mediawiki/images .
Run Code Online (Sandbox Code Playgroud)

您会发现 MediaWiki 所依赖的几个 PHP 软件包并未针对 PHP 7 安装,PHP 7 是 Ubuntu 16.04 的新标准 PHP 版本。MediaWiki 在 PHP 7 上运行良好,但您需要手动安装这些包并启用它们:

apt-get install libapache2-mod-php7.0 php-apcu php-gd php-json php-mysql php-xml
phpenmod apcu gd json pdo_mysql dom
a2enmod php7.0
a2enconf mediawiki
Run Code Online (Sandbox Code Playgroud)

我使用 APC 进行缓存,我发现 MediaWiki 使用传统的 APC 模块,PHP 7 中不包含该模块。我改用 APCu 模块解决了这个问题。在 MediaWiki 的代码中,将apc_*call替换为apcu_*call:

sed -i 's/apc_/apcu_/g' includes/libs/objectcache/APCBagOStuff.php
sed -i 's/apc_/apcu_/g' includes/objectcache/ObjectCache.php
Run Code Online (Sandbox Code Playgroud)

运行升级脚本来更新 MediaWiki 的数据库结构:

cd maintenance/
php update.php
Run Code Online (Sandbox Code Playgroud)

如果您用于 wiki 的数据库用户没有修改数据库结构的权限,脚本将失败。使用脚本--dbuser--dbpass选项为 MySQL 用户提供更多权限。如果您有AdminSettings.php文件,请使用其中的详细信息——MediaWiki 不再读取该文件本身,您应该从现在开始删除该文件。

现在应该可以重新启动 Apache 并在您的网站上查看您的 wiki:

service apache2 restart
Run Code Online (Sandbox Code Playgroud)

我在访问我的 wiki 时出现的最后一个问题:MediaWiki 1.25+ 禁用了皮肤自动发现,我被告知要wfLoadSkin( 'Vector' );在我的LocalSettings.php.