コンテンツにスキップ
メインメニュー
メインメニュー
サイドバーに移動
非表示
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
Turgenev's Wiki
検索
検索
表示
ログイン
個人用ツール
ログイン
MediaWikiのソースを表示
ページ
議論
日本語
閲覧
ソースを閲覧
履歴を表示
ツール
ツール
サイドバーに移動
非表示
操作
閲覧
ソースを閲覧
履歴を表示
全般
リンク元
関連ページの更新状況
特別ページ
ページ情報
表示
サイドバーに移動
非表示
←
MediaWiki
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、以下のグループに属する利用者のみが実行できます:
登録利用者
。
このページのソースの閲覧やコピーができます。
Wikipediaやこのサイトで使用されている代表的なWikiシステムであるMediaWikiについて解説する。 == 初期設定 == ==== 動作要件 ==== データベース(MySQL)と(CGI版の)phpが使えることを確認しておく。スターサーバーフリー(php+mysql)では動いた。 SSHが使えないような低価格帯のレンタルサーバーのプランの中でも、PHPでexecなどの機能が自由に使えるため事実上任意コマンドが実行できるものと、それらの機能が制限されているサーバーがある。後者でもMediaWikiは一通り動くが、一部機能が動作しない場合もあるのであまりお勧めしない(特に他サーバー移行で手こずるのは困る)。 ==== インストール ==== 詳しくは[https://wikipedia.memo.wiki/d/%CC%B5%CE%C1%A5%EC%A5%F3%A5%BF%A5%EB%A5%B5%A1%BC%A5%D0%A1%BC%A4%CBMediaWiki%A4%F2%A5%A4%A5%F3%A5%B9%A5%C8%A1%BC%A5%EB%A4%B9%A4%EB ここ]を参照。 MySQLの設定をしたら、Mediawikiのファイル一式を設置し、/mw-configにアクセスして指示に従うとインストールが完了する。/mw-configは誰でも見られるファイルなので少し不安だが、MySQLのパスワードがわからないとインストールは完了しないため、別に公開でも問題なさそう。(不安ならBasic認証をかけておく?) 初期の管理ユーザーのパスワードを忘れるとやや面倒なことになる。Chromeがちゃんと覚えてくれない場合があるので注意すること。 <div style="overflow:auto;width: 100%; max-width: 1200px; white-space:nowrap; border:1px solid; padding-left: 10px; padding-right: 10px;" class="mw-collapsible"> <div>忘れた場合の初期化方法(CGI版phpの場合?)</div> <div class="mw-collapsible-content"> データベース(phpMyAdmin)から、 <syntaxhighlight lang="python"> vb.netUPDATE `user` SET user_password = CONCAT(':B:somesalt:', MD5(CONCAT('somesalt-', MD5('somepass')))) WHERE user_name = 'someuser'</syntaxhighlight> とする。[https://www.mediawiki.org/wiki/Topic:Rnq7yc02mg1o4j34 https://www.mediawiki.org/wiki/Topic:Rnq7yc02mg1o4j34]より。<strong>2か所あるsomesaltのところにはLocalSettings.phpの$wgDBpasswordの値を入れること。</strong> MediaWiki1.12以前はちょっと違うらしい。自分が成功したのは1.39.1(2023年1月)。 * CGI版じゃなくてphpコマンドが直接打てるなら、[https://plaza.rakuten.co.jp/zuka2007/diary/201705010000/ こちらの方法]でもいけそうである。 </div></div> * ファイル一式は、zipを解凍してからFTPでアップロードするとかなり時間がかかるので(1時間くらい)、zipでアップロードしてサーバー上で解凍したほうがいい。レンタルサーバー提供のファイルマネージャーでできない場合は、[https://nicoiworks.com/ftp/ ZIPファイルをサーバーにアップしてから解凍する方法] のようにPHPでファイル名を指定して解凍するか、[https://github.com/dulldusk/phpfm https://github.com/dulldusk/phpfm] のようなPHPで動くファイルマネージャー(フォルダ削除なども高速にできる)から解凍するとよい。<strong>ただし、これらのphpファイルはBasic認証で保護するなどアクセス権限には十分気を付けること</strong>。exec系(任意コマンド実行)が許可されていないstarserver freeでもこれらは動作した。 MediaWikiの拡張はたくさん(全部)onにするとよいらしい。 設定が終わると<strong>LocalSettings.php</strong>が出力され、以後これで色々な設定ができるようになる。インストール後にフォルダ名を変えるときはリネームの上、LocalSettings.phpで<code>$wgScriptPath = "/mw";</code>などと変えればよい。新規ユーザー作成を許可するかどうかなどの設定もここでできるので、禁止したい場合などはこのタイミングでやっておくとよいだろう。 ==== その他初期設定 ==== <ul> <li><p>管理画面</p> <p>ブラウザ上から$wgScriptPath以下の/mw-configというパスにアクセスすればよい。ここは誰でも見れてしまうが、その先に進むには(初期インストール後に生成されてLocalSettings.phpに書き込まれる)$wgUpgradeKeyが必要なので管理者以外は操作できない。</p></li> <li><p>ロゴ<br /> 参考サイトにもあるが、resource/assets/にデフォルトのchange-your-logo.svgがある。それを上書きするか、名前を変えるなら$wgLogosで設定。サイズは135x135で表示される(それより大きいサイズにすると切り取られる)模様。</p></li> <li><p>faviconも$wgFaviconで設定。自分はsvgを256x256のpngで保存してからImageMagickでicoに変換した。</p></li> <li><p>[https://www.mediawiki.org/wiki/Manual:RevisionDelete/ja ここ]から設定すると版指定削除ができる。</p></li> <li><p>スキン<br /> $wgDefaultSkin = "vector";となっているが、"vector-2022"のほうが良さそうだったのでそちらに変えた。あわせて$wgVectorResponsiveをtrueにしてモバイルでの視認性を上げた。</p></li> <li><p>カテゴリページの自動作成<br /> [https://www.mediawiki.org/wiki/Extension:Auto_Create_Category_Pages <strong>Auto Create Category Pages</strong>]をダウンロードし、<code>wfLoadExtension( 'AutoCreateCategoryPages' );</code>とする。これは便利。</p></li> <li><p>アクセス数解析</p> <p>精度のほどはわからないが、[https://www.mediawiki.org/wiki/Extension:HitCounters HitCounters]でできる。同じようにダウンロードした後、リンク先に記載のとおり、管理画面に行ってupdate.phpを実行する必要がある。その後で<code>wfLoadExtension</code>をすればよい。アクセス数は誰からでも見えるようであるが、特に問題はないので放置。</p></li> <li><p>SyntaxHightlight</p> <p>Linuxのサーバーでは、<code>extensions/SyntaxHighlight_GeSHi/pygments/pygmentize</code>のパーミッションを変更して所有者に実行権限を付加(先頭の桁を7にする)。参考: [https://www.mediawiki.org/wiki/Extension:SyntaxHighlight/ja Extension:SyntaxHighlight - MediaWiki]</p></li></ul> <span id="cssjs"></span> == CSS/JS == [https://meta.m.wikimedia.org/wiki/Help:User_style/ja Help:User style/ja - Meta] とかにある通り、デフォルトではcssを直接ページ内に書いても有効にならない。<code>wgAllowUserCss</code>をtrueにして有効にするか、MediaWiki:Common.cssを直接編集するとよい。管理がしやすいので当サイトでは後者の方法を採用した。 当サイトでは使っていないがJSについても同じ(<code>wgAllowUserJs</code>とMediaWiki:Common.js)。 <span id="スキンに関するcss"></span> ==== スキンに関するCSS ==== 当サイトではVectorテーマを使用しているので、MediaWiki:Vector.cssの内容も適用される。さらにVector 2022を使っているのでMediaWiki:Vector-2022.cssの内容も適用される。 設定内容としては、ja.wikipedia.orgに合わせて文字サイズを0.875emから0.944emに変更している。 == シェルアクセス == [https://www.mediawiki.org/wiki/Manual:Maintenance_scripts/Running_the_scripts#No_shell_access Manual:Maintenance scripts/Running the scripts - MediaWiki]にあるように、シェルアクセスがないところで使っている場合は拡張機能でどうにかする。2つ書いてあるがMaintenanceShellのほうがいろいろと良さそう。MaintenanceShellは、有効にしたあと、Special:MaintenanceShellにアクセスする。 しかし、generateSitemapとかはまともに動かなかった。まあやはりというか、普通はシェルアクセスのあるところで使ったほうがいいっぽい。 <span id="api"></span> == API == nodeでやる。requestはdeprecatedになったのでaxiosを使う。 cookieを使うってことがどこにも書いてなくて難しかった。[https://stackoverflow.com/questions/49367096/how-to-login-to-mediawiki-wikipedia-api-in-node-js ここ]でようやく見つけた。 == 画像 == [https://www.mediawiki.org/wiki/Help:Images/ja Help:画像 - MediaWiki]に詳しく書いてある。 MediaWikiにアップロードするのが原則だが、[https://www.mediawiki.org/wiki/Manual:$wgAllowExternalImages $wgAllowExternalImages]という変数を設定することで外部サイトの画像を直接掲載できる。このサイトは個人サイトであり、管理しやすい(普通のアップロードだとランダムなフォルダに入れられたりするし、移行が煩雑そう)のでこちらを使っている。 ==== サイズ ==== <code>style="max-width:100%; height:auto;"</code>みたいなCSS(当サイトでは前述のCommon.cssに入れた)を使えば、外部サイトの画像でもサイズを変えられる。 <span id="500-internal-server-error"></span> ==== 500 internal server error ==== アップロードまではできたが、画像ファイルが(ftpで見てもちゃんとアップロードされているのに)500 internal server errorで見れない。 これはstarserverの性質かもしれないが、どうやらimages直下の.htaccessが悪いようで、これを消したら見れた。実際に悪さをしているのは<code>Options +FollowSymLinks</code>だったっぽい。これをコメントアウトすると見れた。 <span id="urlを短くする"></span> == URLを短くする == 最初の設定だとURLに<code>index.php?title=</code>のような見栄えのよくない文字列が入ってしまうが、Wikipediaのように<code>example.com/wiki/タイトル</code>のような形式にできる。[https://www.mediawiki.org/wiki/Manual:Short_URL/ja Manual:短縮URL - MediaWiki]に案内がある。そこに書いてある通り、URLに<code>?</code>が入っているのは見栄えだけでなくSEO上もあまりよくないとのこと。 注意点として、<code>index.php?title=</code>形式を短い形式に強制的にリダイレクトさせるわけではない(index.phpは単なる記事の閲覧以外にも使われるので、そのように設定するのは面倒そう)。ただ、この状態でも、記事間リンクは短いURLを使ってくれるようになる。あとはWikiSEO拡張(後述)を使うと検索エンジンにも短いURLが通知される。 このサイトはサーバーがApacheなので、[https://www.mediawiki.org/wiki/Manual:Short_URL/Apache Manual:Short URL/Apache - MediaWiki]の通りにする。長々と説明が書いてあるが、普通に設定するなら<strong>Simple instructions</strong>のところだけ読めばよい。URLに設定したい場所(たとえば<code>wiki</code>)が既にMediaWikiのフォルダとして使われているとうまくいかない(このサイトの場合は<code>mw</code>なので大丈夫)ので、この記事の最初の方にある通りにMediaWikiのフォルダのほうを動かす。 == テンプレート == MediaWikiにはテンプレートというものがあり、記事のパーツを引用して使いまわすことができる。このWikiでもWikipediaの「[https://ja.wikipedia.org/wiki/Template:%E7%8B%AC%E8%87%AA%E7%A0%94%E7%A9%B6 独自研究]」などに倣ったメッセージボックスをいくつかテンプレートとして利用している。 例えば、まず以下のような汎用の<code>Mbox</code>というテンプレートを作り(色も引数で指定できるのがポイント)、 m_with_cap_m```python vb.net<div style="border-left: 0.4rem solid #119922" ><div style="padding-left: 10px; padding-right: 10px; border: 1px solid #222222; background-color:#FBFBFB; border-left: 0.4rem solid {{{1}}}" >{{{2}}}</div> </div> ``` <div style='text-align: center;'>Template:Mbox</div> これを利用して下書きのテンプレートを作っている。 m_with_cap_m```python vb.net{{Mbox|#000022|このセクションの内容は未完成であり、今後の加筆が予定されています。}} <pre><div style='text-align: center;'>Template:Stub</div> # SEO・OGP まずは[WikiSEO](https://www.mediawiki.org/wiki/Extension:WikiSEO/ja)というextensionを同じように入れる。 ### OGP このサイトではとりあえず大した設定はしておらず、<code>&#36;wgWikiSeoDefaultImage = "http://turgenev0&#46;starfree&#46;jp/mw/logo0&#46;png";</code>でロゴを設定し(相対パスでも表示はされるようだが、[SNSで重要なOGPとは?SEOとの関係性や設定方法を解説 -webma-](https://webma.xscore.co.jp/study/ogp-seo/)とかを見ると多分絶対パスのほうがよさそう)、各ページに<code>{{#seo:|title={{FULLPAGENAME}} - Turgenev's Wiki}}</code>と書いただけで、あとは何もしていない。先ほどの「URLを短くする」をやっておくと、そちらのURLが正規URLとして扱われる。 表示を確かめたいときは[シェアデバッガー - Meta for Developers](https://developers.facebook.com/tools/debug/?locale=ja_JP)を使うとよい。 <code>{{#seo:&#46;&#46;&#46;}}</code>でimageなどを一度設定してしまうと、後でimageを消してもその設定がそのまま残ってしまった(WikiSEOの<code>wfLoadExtension</code>を外すと消えるが、付けるとまた復活する)。おそらくページなどを格納しているMySQLデータベースのどこかに前回の設定が残っているのであろう。ページを削除するとリセットできるがそれ以外の治し方は不明。 ### サイトマップ generateSitemap&#46;phpを使えばよい。しかし以前使っていたスターサーバーフリーではシェルアクセスがなくて使えなかったので自前で生成できるようにした(参考: [フィルターされたNotionページによるMediaWiki](/フィルターされたNotionページによるMediaWiki)) ### その他SEO そこまでの必要性を感じないが、気が向いたらやるかも。 {{Stub}} </pre> [[Category:IT]]{{#seo:|title={{FULLPAGENAME}} - Turgenev's Wiki}}
このページで使用されているテンプレート:
テンプレート:Mbox
(
ソースを閲覧
)
テンプレート:Stub
(
ソースを閲覧
)
MediaWiki
に戻る。