Amazon LinuxでMeidaWiki 1.26.2を動かすまでのまとめ


0. Amazon LinuxのVM作成

EC2のインスタンス起動画面で、一番上に表示されているAmazon Linuxを選択しました。以下のAMIです。

amzn-ami-hvm-2015.09.1.x86_64-gp2 (ami-383c1956)

サイズはt2.microで、ストレージ以外はデフォルト設定のままです。ストレージはデフォルトは8GBなのですが、16GBに変更して作成しました。

ゲートウェイは80、443を全公開、SSHを自分のIPだけ公開という定番パターンです。

1. Apacheのインストール

ここから先はsuした状態のコマンドを並べます。sudoされる方は適宜読み替えてください。

Apacheインストール
$ yum install httpd
$ chkconfig httpd on
$ chkconfig --list httpd
DocumentRootの確認
$ cat /etc/httpd/conf/httpd.conf | grep DocumentRoot
DocumentRoot "/var/www/html"
Apache起動
$ /etc/init.d/httpd start

ブラウザでウェルカムが出るかを確認します。確認できたらセキュリティ設定します。
http://qiita.com/bezeklik/items/1c4145652661cf5b2271
ほぼコチラでOKですが、 autoindex.conf は存在しませんでした。

Apache再起動
$ service httpd restart

2. MySQLのインストール

MySQLインストール
$ yum install mysql
$ yum install mysql-server
$ chkconfig mysqld on
$ chkconfig --list mysqld
言語設定
$ vi /etc/my.cnf

[mysqld]
# 最終行に以下を追加
character-set-server=utf8
MySQL起動
$ /etc/init.d/mysqld start

以下、rootのパスワードなど設定しますので、記録を忘れずに!

セキュリティ自動設定
$ mysql_secure_installation

設定したパスワードでログインしてみます。

起動確認
$ mysql -u root -p

3. MediaWiki用のデータベースとユーザの作成

ログイン
$ mysql -u root -p
作成
mysql> create database dbnameForWiki;
mysql> grant all privileges on dbnameForWiki.* to 'usernameForWiki'@'localhost' identified by 'passwordForWiki';
mysql> quit

4. PHPのインストール

PHPとライブラリのインストール
$ yum install php php-mbstring php-pear php-xml php-mysql

こんなバージョンが入りました。

PHPのバージョン確認
$ php -v
PHP 5.3.29 (cli) (built: May 12 2015 22:42:19)
Copyright (c) 1997-2014 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2014 Zend Technologies
タイムゾーン設定
$ vi /etc/php.ini
date.timezone = "Asia/Tokyo"

5. MediaWikiに必要なPHPライブラリのインストール

APC(Alternative_PHP_Cache)
$ yum install php-pecl-apc
intl_PECL拡張機能
$ yum install gcc-c++, php-devel, httpd-devel
$ yum install icu libicu-devel
$ pecl install intl
.
.
.
Specify where ICU libraries and headers can be found [DEFAULT] :エンター押す
.
.
.
Build process completed successfully
Installing '/usr/lib64/php/modules/intl.so'
install ok: channel://pecl.php.net/intl-3.0.0
configuration option "php_ini" is not set to php.ini location
You should add "extension=intl.so" to php.ini

指示通りにphp.iniに追記する。

APC(Alternative_PHP_Cache)
$ vi /etc/php.ini

;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;

extension=intl.so

Amazon Linuxはepel最初から入っているっぽい。

GD
$ yum --enablerepo=epel install php-gd
ImageMagick
$ yum install ImageMagick ImageMagick-perl

最後にApache再起動しとく。

$ service httpd restart

6. MediaWikiのインストール

ディレクトリは適当なワーキングディレクトリを用意してください。

ダウンロードして解凍
$ wget https://releases.wikimedia.org/mediawiki/1.26/mediawiki-1.26.2.tar.gz
$ tar -xzvf mediawiki-1.26.2.tar.gz

htmlの下のディレクトリ名は適当に名付けてください。Wikipediaっぽいならwikiですかね……

ファイルコピー
$ mkdir /var/www/html/mwiki
$ cp -R mediawiki-1.26.2/* /var/www/html/mwiki/
$ chown -R apache:apache /var/www/html/mwiki/
Apache設定追加
$ vi /etc/httpd/conf/httpd.conf

#最終行に追加
<Directory "/var/www/html/mwiki/images">
    AddType text/plain .html .htm .shtml .php
    php_admin_flag engine off
</Directory>

一応再起動する。

$ service httpd restart

ここから先はWebのインストーラがありますので、Webブラウザでアクセスします。なので、最初の方でWebブラウザでの疎通や動作確認を怠っていると、ここで繋がらなかったり、エラーだったりしたときに、えらく面倒なことになりますので御注意ください。

http://EC2のIPアドレス/mwiki/

mwikiのところは自分で決めたディレクトリ名になります。Webブラウザで開くとインストーラーのUIが表示されますので、あとは対話して進めていけばOKです。以下のような情報を聞かれます。

  • ホスト ⇒ localhostでOKです
  • データベース ⇒ MySQLでcreate databaseした名前
  • ユーザ ⇒ MySQLでgrantしたユーザ名
  • パスワード ⇒ MySQLでgrantしたパスワード
  • インストール作業と同じアカウントを使用する
  • ストレージエンジン ⇒ InnoDB
  • データベースの文字セット ⇒ UTF-8
  • ウィキ名 ⇒ ご自由にどうぞ
  • プロジェクト名前空間 ⇒ ウィキ名と同じでOK
  • 管理アカウント:ユーザ名 ⇒ ご自由にどうぞ(ただしWikiなので履歴に表示されます)
  • 管理アカウント:パスワード ⇒ ご自由にどうぞ
  • 管理アカウント:メール ⇒ ご自由にどうぞ(ただし受信できるもの)
  • 公開ウィキ ⇒ ライセンスフッターを付けない(他でも可能)
  • 画像およびファイルのアップロードを有効
  • Instant Commons機能の利用
  • 高度な設定:memcachedの利用:サーバー ⇒ 127.0.0.1:11211

これでLocalSettings.phpが出力されますので、保存しておきます。scpでアップするか、エディタで直接コピペしてしまってもOKです。

$ vi /var/www/html/mwiki/LocalSettings.php

#ローカルのPCからコピペ
画像フォルダ権限設定
$ chown -R apache:apache /var/www/html/mwiki/images

7. memcachedのインストール

インストール
$ yum install memcached
$ yum install php-pecl-memcache
$ chkconfig memcached on
$ chkconfig
確認
$ php -i | grep memcache
起動
$ memcached -d -m 64 -p 11211 -u memcached

8. 動作確認

Apache再起動。

$ service httpd restart

さきほどのインストーラ画面を再度開くと、Wikiのトップが表示されるはずです。

http://EC2のIPアドレス/mwiki/

右上のログインから、先ほど作成したアカウントでログインしてみます。ページの更新も試してみてください。ログイン前であればIPが記録され、ログイン後であればユーザ名が記録されます。

ついでに、memcachedの動作確認もしておきましょう。

memcachedの動作確認
$ memcached-tool localhost:11211 display

これでItemがずらずらっと表示されればOKです。
あとはご自由にコンテンツを作成しましょう!

ちなみに、EC2のCloudWatchのモニタリング画面でCPU使用率を確認したらこんな感じでした。全て1分間平均です。

  • アイドリング時(アクセスなし) ⇒ 0.2%
  • トップページを1回表示した時 ⇒ 1%
  • ページを1回更新した時 ⇒ 1.5%

閲覧主体のWikiであれば、t2.microでもそこそこのアクセスはさばけそうですね。