移动媒体维基目录后出现 500 服务器错误


500 Server Error after moving media wiki directory

我在域的主目录/public_html/上安装了一个媒体wiki,并且启用了短URL来http://example.org/wiki/Page_title所以我有一个具有以下规则的.htaccess文件

# Enable the rewrite engine
RewriteEngine On
# Short url for wiki pages
RewriteRule ^/?wiki(/.*)?$ %{DOCUMENT_ROOT}/index.php [L]
# Redirect / to Main Page
RewriteRule ^/*$ %{DOCUMENT_ROOT}/index.php [L]

我想在该域的主目录中安装其他应用程序,因此我正在尝试将此媒体 wiki 安装从根/public_html/目录移动到/public_html/w/,同时保持相同的短 url 格式。所以我所做的只是将内容从主目录复制到/public_html/w/目录,并将 .htaccess 规则修改为

## http://www.mediawiki.org/wiki/Manual:Short_URL/Apache
# Enable the rewrite engine
RewriteEngine On
# Short url for wiki pages
RewriteRule ^/?wiki(/.*)?$ %{DOCUMENT_ROOT}/w/index.php [L]
# Redirect / to Main Page
RewriteRule ^/*$ %{DOCUMENT_ROOT}/w/index.php [L]

并且还修改新目录中的LocalSettings.php文件

$wgScriptPath = "";
$wgScriptExtension = ".php";
$wgArticlePath = "/wiki/$1";
$wgUsePathInfo = true;

$wgScriptPath = "/w";
$wgScriptExtension = ".php";
$wgArticlePath = "/wiki/$1";
$wgUsePathInfo = true;

从理论上讲,由于它使用相同的数据库和所有相同的设置,我需要更改的是 htaccess 和 localsettings.php 目录,它应该可以正常工作,但是在我尝试之后,我遇到了 500 服务器错误,并且该站点根本无法正常工作,在我检查了 apache/php 错误日志后,我发现了很多相同的东西

[Sun Feb 28 13:59:14.477785 2016] [:error] [pid 12164] [client SERVER IP] script '/home/admin/web/MY DOMAIN/public_html/index.php' not found or unable to stat
[Sun Feb 28 13:59:21.854117 2016] [:error] [pid 12165] [client SERVER IP] script '/home/admin/web/MY DOMAIN/public_html/index.php' not found or unable to stat
[Sun Feb 28 13:59:32.073190 2016] [:error] [pid 12374] [client SERVER IP] script '/home/admin/web/MY DOMAIN/public_html/index.php' not found or unable to stat
[Sun Feb 28 13:59:33.574025 2016] [:error] [pid 12166] [client SERVER IP] script '/home/admin/web/MY DOMAIN/public_html/index.php' not found or unable to stat
[Sun Feb 28 13:59:35.873162 2016] [:error] [pid 12167] [client SERVER IP] PHP Warning:  require_once(/home/admin/web/MY DOMAIN/public_html/w/extensions/MsUpload/msupload.php): failed to open stream: No such file or directory in /home/admin/web/MY DOMAIN/public_html/w/LocalSettings.php on line 301
[Sun Feb 28 13:59:35.873207 2016] [:error] [pid 12167] [client SERVER IP] PHP Fatal error:  require_once(): Failed opening required '/home/admin/web/MY DOMAIN/public_html/w/extensions/MsUpload/msupload.php' (include_path='.:/usr/share/php:/usr/share/pear') in /home/admin/web/MY DOMAIN/public_html/w/LocalSettings.php on line 301

请注意,第一个错误仍引用上一个根/public_html/目录,而扩展错误已引用/public_html/w/目录

我不知道我在这里哪里出错了,所以我将不胜感激。到目前为止,我不得不恢复更改并恢复旧目录的备份,但我仍然想移动 wiki 目录。

如果您仍然保留/home/admin/web/MY DOMAIN/public_html/作为根目录(从 Web 服务器中标识),但是将 Mediawiki 向下移动一个级别,您可能需要更改以下内容:

RewriteBase /w/

没有必要将媒体维基从当前操作的位置移出。当您安装其他应用程序并且媒体wiki已经使用短URL时,这使得使用表单访问文章 example.org/wiki/Article_Title 您可以做的是在mediawiki安装旁边的子文件夹中安装新应用程序,没有任何问题,因为.htaccess规则将为服务器上存在的文件和文件夹提供例外。

示例文件夹结构

public_html /
    app1/
        index.php
        ...
    app2/
        index.php
        ...
    app3/
        index.php
        ...
    ... (all media wiki files and folders)
我不

熟悉MediaWiki,但给出了以下评论:

请注意,第一个错误仍引用以前的根/public_html/目录,而扩展错误已引用/public_html/w/目录

我在 mediawiki.org 上找到了以下评论:

如果你在LocalSettings.php中重新定义这个[$wgScriptPath],那么所有因变量也需要重新定义!

我会使用此值调查在安装期间设置的其他内容,因为这可能是导致您问题的原因。