AzureにMediaWikiを入れた時のメモ

前回から続かなかった。

 

Azure AppServiceのWebAppServiceにMediaWikiをインストール。結構ハマったのでメモ。(かなり長時間上手くいかなかったのでちょっとやさぐれております。)

 

まず全体の流れはこれ。

Cross-Post: Creating a Corporate Wiki in Azure | Azure App Service and Functions team Blog

ちなみにチュートリアル通りのバージョンを入れていくと後で不幸になるので新しいやつを入れましょう。今回は結果として1.31.1を使っています。

 

SQLiteの場合:特に何も。

 

Azure SQL Databaseの場合:俺には無理だった。

  ・USE ステートメントが使えないのでインストーラがこける

   →include下のどこか深いところにあるDatabaseMssql.phpの何か接続文字列のデータ設定してんなってところに$connectionInfo['database'] = "(データベース名直書き)";

    →しかし、最後に 「新しいページを作成できませんでした。 そのページは既に存在します。」と言われた。

     →ver1.32.0と1.31.1の両方で同じ現象が発生することを確認

      →撤収

 

Azure Database for MySQLの問題:俺でも何とかなった。

 ・Azure上のMySQLMyISAMエンジンが無いのでインストーラがこける

   →maintenanceディレクトリ下のtables.sql、1500行目を適当に改変して強引にインストール

 

CREATE TABLE /*_*/searchindex (
-- Key to page_id
si_page int unsigned NOT NULL,

-- Munged version of title
si_title varchar(255) NOT NULL default '',

-- Munged version of body text
si_text mediumtext NOT NULL
) /*ENGINE=MyISAM DEFAULT CHARSET=utf8*/;

CREATE UNIQUE INDEX /*i*/si_page ON /*_*/searchindex (si_page);
--CREATE FULLTEXT INDEX /*i*/si_title ON /*_*/searchindex (si_title);
--CREATE FULLTEXT INDEX /*i*/si_text ON /*_*/searchindex (si_text);
CREATE UNIQUE INDEX /*i*/si_title ON /*_*/searchindex (si_page);
CREATE UNIQUE INDEX /*i*/si_text ON /*_*/searchindex (si_page);

      →一応動いたけど検索するとエラー。そりゃそうだ。

      →撤収かなあ

       →

HeidiSQL - MariaDB, MySQL, MSSQL and PostgreSQL made easy を入れてポチポチいじってたらFULLTEXT INDEXを付けられた!

(1ケ1ケ変更しては更新しないとエラーになるw)

f:id:LongPeaceLover:20190302161747p:plain

FULLTEXT INDEX、後出しであれば付く。

 

検索でけた。

 

 

Auth_remoteuser:

AzureADでシングルサインオンすると@〰.onmicrosoft.comが邪魔で管理者権限で入れない。

$wgAuthRemoteuserUserNameReplaceFilter でスカッと解決。

  

短いURL:

MediaWikiのインストールディレクトリ名から"wiki"という名前を消し、 web.configを上の方に出てくる記事の

<?xml version="1.0" encoding="utf-8"?>
<configuration>
<system.webServer>
<rewrite>
<rules>
<rule name="wikiRule1" stopProcessing="true">
<match url="^wiki/(.*)$" />
<action type="Rewrite" url="/mediawiki-1.26.3/index.php?title={UrlEncode:{R:1}}" />
</rule>
<rule name="wikiRule2" stopProcessing="true">
<match url="^wiki/$" />
<action type="Rewrite" url="/mediawiki-1.26.3/index.php" />
</rule>
<rule name="wikiRule4" stopProcessing="true">
<match url="^/*$" />
<action type="Rewrite" url="/mediawiki-1.26.3/index.php" />
</rule>
</rules>
</rewrite>
</system.webServer>
</configuration>

 のディレクトリ名を変更したら動いた。

 

→文字化け

 →

MediaWiki + Short URL + IIS で日本語の URL が文字化けしてしまう - Qiita

 

ちなみにコイツ↓は動かない。

Manual:Short URL/IIS8.5 - MediaWiki

 

 

後はエクステンション入れて遊びますか。