インストール - MediaWiki(Raspberry Pi)

提供:MochiuWiki : SUSE, EC, PCB
2023年8月30日 (水) 07:59時点におけるWiki (トーク | 投稿記録)による版 (→‎Apache2の設定)
ナビゲーションに移動 検索に移動

概要

PHPApache2MariaDBがインストールされていることを確認する。


必要なシステムおよびライブラリのインストール

MediaWikiの動作に必要となるシステムおよびライブラリをインストールする。

sudo apt-get install apache2 mariadb-server php php-mysql libapache2-mod-php php-xml php-mbstring


MediaWikiの拡張機能を全て有効化する場合は、以下の依存関係もインストールする。

sudo apt-get install php-apcu php-intl imagemagick inkscape php-gd php-cli php-curl git


依存関係のライブラリを有効化するために、Apache2を再起動する。

sudo systemctl restart apache2



MediaWikiのダウンロード

MediaWikiの公式Webサイトにアクセスして、MediaWikiをダウンロードする。

wget https://releases.wikimedia.org/mediawiki/x.xx/mediawiki-x.xx.x.tar.gz


ダウンロードしたファイルを解凍する。

tar xf mediawiki-<バージョン>.tar.gz
mv mediawiki-<バージョン> mediawiki


Apacheのドキュメントルート(デフォルトでは、/var/www/htmlディレクトリ)に解凍したMediaWikiディレクトリを移動する。

sudo mv mediawiki /var/www/html

MediaWikiディレクトリの権限と所有者、所有グループを変更する。

cd /var/www/html

sudo chmod 755 mediawiki
sudo chown <Raspbianのユーザ名>:<Raspbianのグループ名> mediawiki



PHPの設定

APCuモジュールを使用する場合

APCuモジュールを使用する場合は、APCuモジュールをソースコードからインストールする必要がある。

まず、APcuモジュールのGithubにアクセスして、ソースコードをダウンロードする。
ダウンロードしたファイルを解凍する。

tar xf apcu-<バージョン>.tar.gz
cd apcu-<バージョン>


次に、APCuモジュールをビルドおよびインストールする。
モジュールのインストールディレクトリは、/usr/lib64/extensionsディレクトリ、または、/<PHPのインストールディレクトリ>/lib64/extensions/no-debug-zts-xxxxxxxxディレクトリとなる。
ヘッダファイルのインストールディレクトリは、/usr/include/phpディレクトリ、または、/<PHPのインストールディレクトリ>/include/phpディレクトリとなる。

phpize

./configure --enable-apcu
make -j $(nproc)
make install


最後に、APCuモジュールの使用を許可するため、PHPの設定ファイルに以下に示す設定を記述する。

 # 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"


PHP-FPMを使用する場合

PHP-FPMを使用する場合は、/etc/php-fpm.d/www.confディレクトリ、または、/<PHPのインストールディレクトリ>/etc/php-fpm.d/www.confファイルにおいて、
メモリエラー回避のために使用できるメモリサイズを変更する必要がある。

 # /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


設定を反映させるため、NginXおよびPHP-FPMを再起動する。

sudo systemctl restart nginx php-fpm



Apache2の設定

仮想ホストを使用する場合は、インストール - Apache2(SUSE)#仮想ホストの構築 (パッケージ管理システムからApache2をインストールした場合)のページを参照すること。


MariaDBの設定

MariaDBサーバのインストール中に、rootアカウントのパスワードの入力を求められる。
もし、rootのパスワードが未設定の場合は、以下のコマンドを実行する。

sudo mysqladmin -u root password <パスワード>


MediaWikiで使用するデータベースを作成する。

sudo mysql -u root -p

Enter password:

mysql> CREATE DATABASE <データベース名>;


USEコマンドを使用して、このシェルセッションの今後の操作でそのデータベースを使用するようシェルに指示する。

 mysql> USE <データベース名>;


データベースユーザを作成して、パスワードを設定する。
このユーザは、localhostからデータベースに接続できる。

※注意
シングルクォーテーションも必須であることに注意する。

mysql> CREATE USER '<データベースユーザ名>'@'localhost' IDENTIFIED BY '<パスワード>';


新しく作成したデータベースユーザには権限が無いため、GRANTコマンドを使用して幾つかのアクセス権を付与する必要がある。
ここでは、ALLオプションを使用しているが、実際には、より多くの制限された権限をユーザに付与する方が良い。

mysql> GRANT ALL PRIVILEGES ON <データベース名>.* TO '<データベースユーザ名>'@'localhost'; 
mysql> FLUSH PRIVILEGES;
mysql> quit



MediaWikiのインストール

上記の設定が全て完了しているとき、MediaWikiをインストールすることができる。

  1. WebブラウザでMediaWikiを配置したURL:http://<ホスト名またはIPアドレス>/mediawiki/mw-config を入力する。
  2. MediaWikiのメイン画面が表示されるので、[set up the wiki]を押下する。
    mbstringやXML等のPHP拡張機能がインストールされているにも関わらず、
    それらの拡張機能がインストールされていない表示される場合は、以下のコマンドを実行して、手動で有効化する。
    sudo phpenmod mbstring
    sudo phpenmod xml
    sudo systemctl restart apache2
  3. 言語設定を日本語にして[続行]を押下する。
  4. [環境の確認]画面で、規約を確認して[続行]ボタンを押下する。
    また、データベースのホストの情報は、localhostではなく127.0.0.1のようにIPアドレスで入力する。
    データベース名とデータベースのユーザ名は、上記セクションで設定したものを入力する。
    最下部の[続行]ボタンを押下する。
  5. [データベースの設定]画面では、データベースの文字セットをUTF-8にして、[続行]ボタンを押下する。
  6. [MediaWikiの名前]画面では、任意の名前を付ける。
  7. [管理アカウント]画面では、MediaWikiのWebサイトにログインできるユーザ名とパスワードを入力する。
  8. [インストール]画面では、[続行]ボタンを押下する。
  9. [インストール完了]画面では、LocalSettings.phpをダウンロードして、/var/www/html/mediawikiディレクトリ直下に配置する。



エラー

ログイン

MediaWikiにログインする時、以下のエラーが出力されてログインできない場合がる。
これは、セッションとクッキーをAPCuでキャッシュする関係でエラーが出力される。

ログインのセッションに問題が発生しました。 セッション乗っ取りを防ぐため、操作を取り消しました。
前のページへ戻って再度読み込んだ後に、もう一度試してください。


上記のエラーを修正するには、LocalSettings.phpファイルを以下のように編集する。

# 修正前
$wgMainCacheType = CACHE_ACCEL;

# 修正後
$wgMainCacheType = CACHE_ANYTHING;