MochiuWiki : SUSE, EC, PCB
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
検索
個人用ツール
ログイン
Toggle dark mode
名前空間
ページ
議論
表示
閲覧
ソースを閲覧
履歴を表示
インストール - MediaWiki(Raspberry Pi)のソースを表示
提供: MochiuWiki : SUSE, EC, PCB
←
インストール - MediaWiki(Raspberry Pi)
あなたには「このページの編集」を行う権限がありません。理由は以下の通りです:
この操作は、次のグループのいずれかに属する利用者のみが実行できます:
管理者
、new-group。
このページのソースの閲覧やコピーができます。
== 概要 == MediaWikiは、PHPで記述されたオープンソースのウィキソフトウェアであり、<br> 協調的なコンテンツ作成や知識共有のプラットフォームとして広く使用されている。<br> <br> GPLライセンスの下で配布されている。<br> <br> MediaWikiの特徴を以下に示す。<br> * 用途 *: 主にWebサイトやオンライン百科事典の作成・運営に使用される。 * 有名な例 *: Wikipediaが最も有名なMediaWikiの使用例である。 * 機能 ** ページの作成・編集 ** バージョン管理 ** ユーザ管理 ** 検索機能 ** カテゴリ分類 * 拡張性 *: プラグインやスキンを通じてカスタマイズが可能である。 * 言語サポート *: 多言語対応しており、様々な言語でコンテンツを作成できる。 * データベース *: MySQL、PostgreSQL、SQLite等のデータベースと連携することができる。 <br><br> == 必要なシステムおよびライブラリのインストール == MediaWikiの動作に必要となるパッケージ (Apache2、データベース、PHP) をインストールする。<br> sudo apt-get install apache2 mariadb-server php php-mysql libapache2-mod-php php-xml php-mbstring <br> MediaWikiの拡張機能を全て有効化する場合は、以下に示すライブラリをインストールする。<br> sudo apt-get install php-apcu php-intlphp-gd php-cli php-curl imagemagick inkscape <br> Apache2を再起動する。<br> sudo systemctl restart apache2 <br> 上記のパッケージのインストールについて詳細を知りたい場合は、[[インストール - PHP|PHP]]、[[インストール - Apache2(Raspberry Pi)|Apache2]]、[[インストール - MariaDB(Raspberry Pi)|MariaDB]]を参照すること。<br> <br><br> == MediaWikiのダウンロード == [https://releases.wikimedia.org/mediawiki/ MediaWikiの公式Webサイト]にアクセスして、MediaWikiをダウンロードする。<br> ダウンロードしたファイルを解凍する。<br> tar xf mediawiki-<バージョン>.tar.gz mv mediawiki-<バージョン> mediawiki <br> Apacheのドキュメントルート (デフォルト: /var/www/htmlディレクトリ) に解凍したMediaWikiディレクトリを移動する。<br> sudo mv mediawiki <ドキュメントルート> 例: sudo mv mediawiki /var/www/html <br> MediaWikiディレクトリの権限と所有者、所有グループを変更する。<br> cd /var/www/html sudo chmod 755 mediawiki sudo chown <Raspberry Piのユーザ名>:<Raspberry Piのグループ名> mediawiki <br><br> == PHPの設定 == ==== APCuモジュールを使用する場合 ==== APCuモジュールを使用する場合は、APCuモジュールをソースコードからインストールする必要がある。<br> <br> まず、[https://github.com/krakjoe/apcu APcuモジュールのGithub]にアクセスして、ソースコードをダウンロードする。<br> ダウンロードしたファイルを解凍する。<br> tar xf apcu-<バージョン>.tar.gz cd apcu-<バージョン> <br> 次に、APCuモジュールをビルドおよびインストールする。<br> <u>モジュールのインストールディレクトリは、/usr/lib64/extensionsディレクトリ、または、/<PHPのインストールディレクトリ>/lib64/extensions/no-debug-zts-xxxxxxxxディレクトリとなる。</u><br> <u>ヘッダファイルのインストールディレクトリは、/usr/include/phpディレクトリ、または、/<PHPのインストールディレクトリ>/include/phpディレクトリとなる。</u><br> phpize ./configure --enable-apcu make -j $(nproc) make install <br> 最後に、APCuモジュールの使用を許可するため、PHPの設定ファイルに以下に示す設定を記述する。<br> <syntaxhighlight lang="ini"> # php.iniファイル extension = "/PHPのインストールディレクトリ>/lib64/extensions/no-debug-zts-20220829/apcu.so" apc.enabled = 1 apc.shm_size = "2048M" apc.mmap_file_mask = "/tmp/apc.XXXXXX" </syntaxhighlight> <br> ==== PHP-FPMを使用する場合 ==== PHP-FPMを使用する場合は、/etc/php-fpm.d/www.confディレクトリ、または、/<PHPのインストールディレクトリ>/etc/php-fpm.d/www.confファイルにおいて、<br> メモリエラー回避のために使用できるメモリサイズを変更する必要がある。<br> <syntaxhighlight lang="ini"> # /etc/php-fpm.d/www.confディレクトリ # または # /<PHPのインストールディレクトリ>/etc/php-fpm.d/www.confファイル # 編集前 ;php_admin_value[memory_limit] = 32M # 編集後 # 128[MB]以上の値に変更する。 php_admin_value[memory_limit] = 128M </syntaxhighlight> <br> 設定を反映させるため、NginXおよびPHP-FPMを再起動する。<br> sudo systemctl restart nginx php-fpm <br><br> == Apache2の設定 == 仮想ホストを使用する場合は、[[インストール - Apache2(SUSE)#仮想ホストの構築 (パッケージ管理システムからApache2をインストールした場合)]]のページを参照すること。<br> <br><br> == MariaDBの設定 == MariaDBサーバのインストール中に、rootアカウントのパスワードの入力を求められる。<br> もし、rootのパスワードが未設定の場合は、以下のコマンドを実行する。<br> sudo mysqladmin -u root password <パスワード> <br> MediaWikiで使用するデータベースを作成する。<br> sudo mysql -u root -p Enter password: mysql> CREATE DATABASE <データベース名>; <br> <code>USE</code>コマンドを使用して、このシェルセッションの今後の操作でそのデータベースを使用するようシェルに指示する。<br> mysql> USE <データベース名>; <br> データベースユーザを作成して、パスワードを設定する。<br> このユーザは、localhostからデータベースに接続できる。<br> <br> <u>※注意</u><br> <u>シングルクォーテーションも必須であることに注意する。</u><br> mysql> CREATE USER '<データベースユーザ名>'@'localhost' IDENTIFIED BY '<パスワード>'; <br> 新しく作成したデータベースユーザには権限が無いため、<code>GRANT</code>コマンドを使用して幾つかのアクセス権を付与する必要がある。<br> ここでは、<code>ALL</code>オプションを使用しているが、実際には、より多くの制限された権限をユーザに付与する方が良い。<br> mysql> GRANT ALL PRIVILEGES ON <データベース名>.* TO '<データベースユーザ名>'@'localhost'; mysql> FLUSH PRIVILEGES; mysql> quit <br><br> == MediaWikiのインストール == 上記の設定が全て完了しているとき、MediaWikiをインストールすることができる。<br> <br> # WebブラウザでMediaWikiを配置したURL:http://<ホスト名またはIPアドレス>/mediawiki/mw-config を入力する。 # MediaWikiのメイン画面が表示されるので、[set up the wiki]を押下する。<br>mbstringやXML等のPHP拡張機能がインストールされているにも関わらず、<br>それらの拡張機能がインストールされていない表示される場合は、以下のコマンドを実行して、手動で有効化する。 #: <code>sudo phpenmod mbstring</code> #: <code>sudo phpenmod xml</code> #: <code>sudo systemctl restart apache2</code> # 言語設定を日本語にして[続行]を押下する。 # [環境の確認]画面で、規約を確認して[続行]ボタンを押下する。<br>また、データベースのホストの情報は、localhostではなく127.0.0.1のようにIPアドレスで入力する。<br>データベース名とデータベースのユーザ名は、上記セクションで設定したものを入力する。<br>最下部の[続行]ボタンを押下する。 # [データベースの設定]画面では、データベースの文字セットをUTF-8にして、[続行]ボタンを押下する。 # [MediaWikiの名前]画面では、任意の名前を付ける。 # [管理アカウント]画面では、MediaWikiのWebサイトにログインできるユーザ名とパスワードを入力する。 # [インストール]画面では、[続行]ボタンを押下する。 # [インストール完了]画面では、LocalSettings.phpをダウンロードして、/var/www/html/mediawikiディレクトリ直下に配置する。 <br><br> == MediaWikiの設定 == ==== アップロード設定 ==== ファイルのアップロードはMediaWikiのオプション機能であり、デフォルトでは無効になっている。<br> 有効にする場合、Webサーバのユーザによって書き込み可能なディレクトリをWebルートに提供する必要がある。<br> <br> これはセキュリティのためにいくつかの意味を持つ。<br> * このディレクトリは、書き込み可能でなければならない。<br>また、Webサーバの限定されたユーザアカウントが所有しなければならないかもしれない。<br>しかし、マルチユーザシステムでは、他のローカルユーザがアップロードディレクトリに悪意のあるファイルを紛れ込ませることが可能かもしれない。<br>可能な限り、Webサーバのアカウントのみが書き込み可能なディレクトリにする必要がある。 * PHPの設定は、個々のアップロードに対してファイルサイズの制限を設定するが、MediaWikiは総アップロードに対していかなる制限も設定していない。<br>悪意のある訪問者は多くのファイルをアップロードすることでディスクパーティションを一杯にすることができてしまう。 * 生成されたサムネイルと上書き確認のためにアップロードされたファイルはMediaWikiのWebインターフェイスに表示されることなくimages/thumbディレクトリとimages/tmpディレクトリに保持される。<br>そのため、それらのサイズにも注意する必要がある。 <br> デフォルトの設定では、安全のためにアップロードできるファイルの種類を制限しようとしている。<br> * デフォルトでは、ファイル拡張子.png、.gif、.jpg、.jpeg、.webpはホワイトリスト($wgFileExtensions)である。 * ユーザがホワイトリスト($wgStrictFileExtensions)を上書きすることを許可する場合でも、様々な実行可能な拡張子とスクリプト拡張子は明示的にブラックリスト($wgFileBlacklist)に登録される。 * いくつかの既知の画像ファイル拡張子は、PHPのgetimagesize()関数を使用してそのタイプを検証する。 * アップロードされたファイルは、Webブラウザのファイルタイプ検出バグに引っかかり、HTMLとして表示されないかチェックされる。 <br> 予防措置として、アップロードディレクトリ(デフォルトではimagesディレクトリ)にあるPHPスクリプト(およびその他のスクリプトタイプ)のサーバサイドでの実行を明示的に無効にする必要がある。<br> また、<code>X-Content-Type-Options: nosniff</code>ヘッダを設定することにより、ファイルをスニッフしないようにブラウザに指示する必要がある。<br> <br> 例えば、MediaWikiのインスタンスが/var/www/html/MediaWikiにある場合、これを行うhttpd.confファイルは、以下に示すような設定になる。<br> <syntaxhighlight lang="apache"> # httpd.confファイル <Directory "/var/www/html/MediaWiki/images"> # Ignore .htaccess files AllowOverride None # Serve HTML as plaintext, don't execute SHTML AddType text/plain .html .htm .shtml .phtml # Don't run arbitrary PHP code. php_admin_flag engine off # Tell browsers to not sniff files Header set X-Content-Type-Options nosniff # If you've other scripting languages, disable them too. </Directory> </syntaxhighlight> <br> Apache2の設定ファイル(httpd.confファイル)にアクセスできない場合、かつ、.htaccessファイルを作成して特定のディレクトリの設定を上書きできる場合、<br> アップロードディレクトリ直下に以下に示すような.htaccessファイルを作成することができる。<br> <syntaxhighlight lang="apache"> # アップロードディレクトリ直下の.htaccessファイル # Serve HTML as plaintext, don't execute SHTML AddType text/plain .html .htm .shtml .phtml .php .php3 .php4 .php5 .php7 .php8 # Old way of registering php with AddHandler RemoveHandler .php # Recent way of registering php with SetHandler <FilesMatch "\.ph(p[3457]?s?|tml)$"> SetHandler None </FilesMatch> # If you've other scripting languages, disable them too. </syntaxhighlight> <br> PHP設定ファイルのopen_basedirオプションの使用は、アップロードの処理を複雑にするかもしれない。<br> <br> 上記の解決方法のいずれかを使用している場合、以下に示すような簡単なテストで正常に動作しているかどうかを確認できる。<br> # アップロードディレクトリにtest.phpファイルを作成する。 # test.phpファイルに、<?php phpinfo();を記述する。 # WebブラウザのURL入力欄から、ファイルのパスを入力する。 # ファイルのテキストが表示されれば問題無いが、そうでない場合はどこかが間違っている。 <br><br> == エラー == ==== ログイン ==== MediaWikiにログインする時、以下のエラーが出力されてログインできない場合がる。<br> これは、セッションとクッキーをAPCuでキャッシュする関係でエラーが出力される。<br> ログインのセッションに問題が発生しました。 セッション乗っ取りを防ぐため、操作を取り消しました。 前のページへ戻って再度読み込んだ後に、もう一度試してください。 <br> 上記のエラーを修正するには、LocalSettings.phpファイルを以下のように編集する。<br> # 修正前 $wgMainCacheType = CACHE_ACCEL; # 修正後 $wgMainCacheType = CACHE_ANYTHING; <br><br> __FORCETOC__ [[カテゴリ:Raspberry_Pi]]
インストール - MediaWiki(Raspberry Pi)
に戻る。
案内
メインページ
最近の更新
おまかせ表示
MediaWiki についてのヘルプ
ツール
リンク元
関連ページの更新状況
特別ページ
ページ情報
We ask for
Donations
Collapse