【问题标题】:500 Server Error after moving media wiki directory移动媒体 wiki 目录后出现 500 服务器错误
【发布时间】:2016-06-11 13:21:43
【问题描述】:

我在我的域的主目录 /public_html/ 上安装了一个媒体 wiki,并且有 short URLs enabledhttp://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 目录。

【问题讨论】:

  • 您应该对文件执行 grep 以查看是否存在具有旧路径的配置文件。此外,您应该查看数据库,看看是否还有其他设置。例如 wordpress 使用 wp_config.php 来保存一些设置,而另一些则保存在数据库中。

标签: php apache .htaccess mod-rewrite mediawiki


【解决方案1】:

无需将媒体 wiki 从当前运行位置移动。由于您正在安装其他应用程序,并且媒体 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)

【讨论】:

    【解决方案2】:

    如果您仍将 /home/admin/web/MY DOMAIN/public_html/ 作为根目录(从网络服务器标识),但将 Mediawiki 下移一级,您可能需要更改以下内容:

    RewriteBase /w/
    

    【讨论】:

      【解决方案3】:

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

      请注意,第一个错误仍然指的是以前的根目录 /public_html/,而扩展错误已经指的是 /public_html/w/ 目录

      我在mediawiki.org上发现了以下评论:

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

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

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2015-10-08
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2016-09-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多