CentOS7でMediaWikiを公開する環境構築メモ

# CentOS7でMediaWikiを公開する環境構築メモ

## あらまし
　なんとなくOS再起動したらブート画面でフリーズして困り果てて再インストールしたので、過程をメモ。また、諸所の作業の意味に関する説明は重要なものを除いてしません。

```terminal
cmd install
```

のような整形テキストは、実行するコマンドや、ファイルの編集内容を表します。　

## CentOS7のインストール
　諸所の設定は省略。

## Webサーバのインストール

```terminal
yum -y install httpd
yum -y install php php-mbstring php-pear php-xml php-mysql

vi /etc/httpd/conf/httpd.conf
```


```/etc/httpd/conf/httpd.conf
#以下のように該当する行を編集
ServerAdmin #自分の連絡先メールアドレス
ServerName #サーバのFQDN（私はポート:80も併記）

<Directory "/var/www/html">
  Options Includes ExecCGI FollowSymlinks
  AllowOverride All

LogFormat "%h ... %!414r ... #%rの間に "!414"をはさむ

AddHandler cgi-script .cgi .pl
#AddDefaultCharset UTF-8

#以下を最終行に追加
ServerTokens Prod
KeepAlive On
```

```terminal
ln -s /usr/bin/perl /usr/local/bin/perl
whereis perl
#/usr/local/bin/perl が含まれていればOK
chown -R ユーザ名:apache /var/www/html

systemctl start httpd
systemctl enable httpd
```

　以上の作業を済ませて、ブラウザから your.domain.net などと打ち込んで「アクセスできない」という旨のメッセージが表示された場合、ファイアウォールの設定の変更が必要な可能性があります。

```terminal
firewall-cmd --permanent --zone=public --add-service=http
firewall-cmd --permanent --zone=public --add-service=https
firewall-cmd --reload

vi /etc/sysconfig/selinux
```

```/etc/sysconfig/selinux
#以下のように該当する行を編集
SELINUX=disabled
```

　症状が改善されない場合、ネットワークの設定を確認します。

```terminal
nslookup サーバのFQDN
#Address ***.***.***.*** が出てくるのでメモ
vi /etc/sysconfig/network-scripts/ifcfg-em1
#ネットワーク設定のファイル名は環境によって差があるので注意
```

```/etc/sysconfig/network-scripts/ifcfg-em1
#以下のように該当する行を編集
IPADDR0=メモしたIPv4アドレス
```

　以上の行程で私の環境では外部からの接続に成功しましたが、これでもなお症状が改善されない場合、私の手には負えません。

参考：[http://ufuso.jp/wp/?p=15122](http://ufuso.jp/wp/?p=15122)

## MySQLのインストール

```terminal
yum -y install http://dev.mysql.com/get/mysql-community-release-el7-5.noarch.rpm
yum -y install mysql-community-server

vi /etc/my.cnf
```

```/etc/my.cnf
#以下のように該当する行を編集
symblic-links=0
#最終行に追記
character-set-server=utf8
```

```terminal
systemctl enable mysqld.service
systemctl start mysqld.service

#MySQLの初期設定
mysql-secure-installation
#全部エンターキーでOK
mysql -u root -p
#初期設定で指定したパスワード入力してログイン
#mysqlのサービスが走っていないと失敗するので注意
```

```mysqld
create database mwiki;
grant all privileges on mwiki.* to 'ユーザ名'@'localhost' identified by 'MySQLのパスワード';
quit
```

参考：[http://ufuso.jp/wp/?p=9266](http://ufuso.jp/wp/?p=9266)

## その他に必要なソフトウェアの追加

```terminal
yum -y install gcc-c++ php-devel httpd-devel icu libicu-devel
pecl install install

vi /etc/php.ini
```

```/etc/php.ini
#以下のように該当する行をコメントアウト
;Dynamic Extensions;
#最終行に追加
extension=intl.so
```

```terminal
wget http://dl.fedoraproject.org/pub/epel/7/x86_64/e/epel-release-7-5.noarch.rpm
rpm -irh epel-release-7-5.noarch.rpm
yum -y --enablerepo=epel install php-gd
```

## MediaWikiのインストール
　インストールするバージョンに合わせて、ダウンロードするURLを確認する。[https://www.mediawiki.org/wiki/Download](https://www.mediawiki.org/wiki/Download)

```terminal
wget https://releases.wikimedia.org/mediawiki/1.25/mediawiki-1.25.1.tar.gz
tar -xzvf mediawiki-1.25.1.tar.gz
mv mediawiki-1.25.1/* /var/www/html/mwiki/
chown -R ユーザ名:apache /var/www/html/mwiki/

vi /etc/httpd/conf/httpd.conf
```

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

参考:[https://www.mediawiki.org/wiki/Manual:Security/ja](https://www.mediawiki.org/wiki/Manual:Security/ja)

　以上の作業が済んだら http://your.domain.net/mwiki にアクセスして、Webページのインタフェースで初期設定を進めていきます。

　私は特に設定したのは以下の項目です。

- 「データベースの設定」ホスト：localhost、データベース：mwiki、ユーザ：ユーザ名、パスワード：MySQLのパスワード
- ☑インストール作業と同じアカウントを使用する。ストレージエンジン→InnoDB、データベースの文字セット→UTF-8
- ☑画像およびファイルのアップロードを有効、☑Instant Commons機能の利用
- 「高度な設定」◎memcachedの利用　サーバー：`127.0.0.1:11211`
-- memcachedのインストールは後の節で説明

　インストールが完了すると、LocalSettings.phpが出力されるので`/var/www/html/mwiki/`に設置します。

### memcachedのインストール

```terminal
yum -y install memcached
firewall-cmd --permanent --zone=public --add-port=11211/tcp
yum install -y php-memcache
systemctl start memcached.service
systemctl enable memcached.service
```

### 画像のアップロードとサムネイルの有効化

```terminal
chown -R apache:apache /var/www/html/mwiki/images
yum -y install ImageMagick ImageMagick-perl
systemctl restart httpd
```

参考：[http://ufuso.jp/wp/?p=15333](http://ufuso.jp/wp/?p=15333)

　環境構築としては以上となります。