2

私は自分の MediaWiki Web サイトをローカルに設定していますが、InstantCommons 機能を動作させることができません(commons.wikimedia.org からファイルを直接埋め込むために使用されます)

次の構文を使用して Commons からファイルをロードしようとすると、エラー メッセージは表示されません。

  [[File:Cervus elaphus Luc Viatour 1.jpg|Cervus elaphus Luc Viatour 1]]

ロードされていないだけで、ページに存在しないファイルを参照する赤いリンクが表示されます。解決策を探してから2日が経ちましたが、これまでのところ成功していません。

私は走っています:

  • MediaWiki v.1.19.1
  • Fedora 16 (SElinux を使用)
  • PHP 5.3.15
  • MySQL バージョン 14.14 Distrib 5.5.25a、Linux (x86_64) 用

で次の 2 つの構成を試しましたが、LocalSettings.php成功しませんでした。

$wgUseInstantCommons = true;

$wgForeignFileRepos[] = array(
   'class'                   => 'ForeignAPIRepo',
   'name'                    => 'shared',
   'apibase'                 => 'http://commons.wikimedia.org/w/api.php',
   'fetchDescription'        => true, // Optional
   'descriptionCacheExpiry'  => 43200, // 12 hours, optional (values are seconds)
   'apiThumbCacheExpiry'     => 43200, // 12 hours, optional, but required for local thumb caching
);

どんな提案でも大歓迎です。

4

3 に答える 3

1

OK、これは (まだ) 答えではなく、デバッグの提案です。サーバーから Commons への HTTP リクエストが何らかの理由で失敗しているように見えますが、残念ながら、ForeignAPIRepo はエラーの原因をまったく示していません。

これは実際には MediaWiki のバグであり、修正する必要がありますが、当面の間、次の差分をファイルに適用してみてください (または、+記号でマークされた行を手動で追加してください) includes/filerepo/ForeignAPIRepo.php:

Index: includes/filerepo/ForeignAPIRepo.php
===================================================================
--- includes/filerepo/ForeignAPIRepo.php    (revision 97048)
+++ includes/filerepo/ForeignAPIRepo.php    (working copy)
@@ -385,6 +385,7 @@
        if ( $status->isOK() ) {
                return $req->getContent();
        } else {
+               wfDebug( "ForeignAPIRepo: HTTP GET failed: " . $status->getXML() );
                return false;
        }
    }

適用後、Commons 画像のファイル説明ページを読み込んで、MediaWiki デバッグ ログを確認してください。で始まる行があり、ForeignAPIRepo: HTTP GET failed:その後に数行の XML エラー ダンプが続きます。そのエラー データは、うまくいけば何が問題なのかを示しているはずです。ここにコピーして貼り付けてください。

于 2012-08-29T18:10:44.957 に答える