wikiを引っ越し

apostrophe で運用している wiki を wplj に引っ越す。
参考ページ:
 cf. wikiの引越し – blog.panicblanket.com

データのバックアップ

バックアップというか、apostrophe の wiki のデータを吐き出させる。データベースのデータは mysqldump コマンドで、画像などのデータは tar コマンドで固める。

takatoh@wplj $ ssh takatoh@apostrophe
takatoh@apostrophe's password: 
Welcome to Ubuntu 14.04.5 LTS (GNU/Linux 3.13.0-110-generic x86_64)

 * Documentation:  https://help.ubuntu.com/

New release '16.04.2 LTS' available.
Run 'do-release-upgrade' to upgrade to it.

Last login: Sat Feb 25 17:14:03 2017 from wplj
takatoh@apostrophe $ mysqldump -u root -p wiki > wiki.sql
Enter password:
takatoh@apostrophe $ cd /var/www/html/wiki
takatoh@apostrophe $ sudo tar czf images.tar.gz images
takatoh@apostrophe $ cp images.tar.gz /home/takatoh
takatoh@apostrophe $ exit
ログアウト
Connection to apostrophe closed.

データの移動

apostrophe から wplj へ移動。scp コマンド使用。

takatoh@wplj $ scp takatoh@apostrophe:wiki.sql .
takatoh@apostrophe's password: 
wiki.sql                                      100%   20MB  20.5MB/s   00:01    
takatoh@wplj $ scp takatoh@apostrophe:images.tar.gz .
takatoh@apostrophe's password: 
images.tar.gz                                 100%  326MB  81.4MB/s   00:04

データベースへの読み込みとimagesの展開

takatoh@wplj $ mysql -u root -p wiki < wiki.sql
Enter password: 
takatoh@wplj $ cd /var/www/html/wiki
takatoh@wplj $ sudo cp /home/takatoh/images.tar.gz .
[sudo] takatoh のパスワード: 
takatoh@wplj $ ls
COPYING               autoload.php                maintenance
CREDITS               cache                       mw-config
FAQ                   composer.json               opensearch_desc.php
Gemfile.lock          composer.local.json-sample  phpcs.xml
Gruntfile.js          docs                        profileinfo.php
HISTORY               extensions                  resources
INSTALL               images                      serialized
LocalSettings.php     images.tar.gz               skins
README                img_auth.php                tests
RELEASE-NOTES-1.27    includes                    thumb.php
Rakefile              index.php                   thumb_handler.php
StartProfiler.sample  jsduck.json                 vendor
UPGRADE               languages                   wiki.phtml
api.php               load.php
takatoh@wplj $ sudo tar xzf images.tar.gz
takatoh@wplj $ sudo chown -R www-data:www-data images

これで完了。ブラウザでアクセスすると、ちゃんと表示された。
今回は、前回の引っ越しの時のように、MediwWiki のインストールやり直しみたいな事にはならなかった。
これでしばらく様子を見よう。

MediaWikiをインストール

参考にしたページ:
 cf. How to install MediaWiki on an Ubuntu 16.04 VPS – RoseHosting
 cf. UbuntuでMediaWikiを動かす – blog.panicblanket.com

関連パッケージのインストール

takatoh@wplj $ sudo apt update
takatoh@wplj $ sudo apt upgrade
takatoh@wplj $ sudo apt install imagemagick php7.0-intl php7.0-curl php7.0-gd php7.0-mbstring php7.0-mysql
パッケージリストを読み込んでいます... 完了
依存関係ツリーを作成しています                
状態情報を読み取っています... 完了
imagemagick はすでに最新バージョン (8:6.8.9.9-7ubuntu5.4) です。
imagemagick は手動でインストールしたと設定されました。
php7.0-gd はすでに最新バージョン (7.0.15-0ubuntu0.16.04.2) です。
php7.0-gd は手動でインストールしたと設定されました。
php7.0-mysql はすでに最新バージョン (7.0.15-0ubuntu0.16.04.2) です。
php7.0-mysql は手動でインストールしたと設定されました。
php7.0-mbstring はすでに最新バージョン (7.0.15-0ubuntu0.16.04.2) です。
php7.0-mbstring は手動でインストールしたと設定されました。
以下のパッケージが自動でインストールされましたが、もう必要とされていません:
  libpango1.0-0 libpangox-1.0-0 ubuntu-core-launcher
これを削除するには 'sudo apt autoremove' を利用してください。
以下のパッケージが新たにインストールされます:
  php7.0-curl php7.0-intl
アップグレード: 0 個、新規インストール: 2 個、削除: 0 個、保留: 0 個。
153 kB のアーカイブを取得する必要があります。
この操作後に追加で 637 kB のディスク容量が消費されます。
続行しますか? [Y/n] Y
取得:1 http://jp.archive.ubuntu.com/ubuntu xenial-updates/main amd64 php7.0-curl amd64 7.0.15-0ubuntu0.16.04.2 [27.5 kB]
取得:2 http://jp.archive.ubuntu.com/ubuntu xenial-updates/universe amd64 php7.0-intl amd64 7.0.15-0ubuntu0.16.04.2 [126 kB]
153 kB を 0秒 で取得しました (1,457 kB/s)
N: ディレクトリ '/etc/apt/apt.conf.d/' の '20auto-upgrades.ucf-dist' が無効なファイル名拡張子を持っているため、無視します
以前に未選択のパッケージ php7.0-curl を選択しています。
(データベースを読み込んでいます ... 現在 216065 個のファイルとディレクトリがインストールされています。)
.../php7.0-curl_7.0.15-0ubuntu0.16.04.2_amd64.deb を展開する準備をしています ...
php7.0-curl (7.0.15-0ubuntu0.16.04.2) を展開しています...
以前に未選択のパッケージ php7.0-intl を選択しています。
.../php7.0-intl_7.0.15-0ubuntu0.16.04.2_amd64.deb を展開する準備をしています ...
php7.0-intl (7.0.15-0ubuntu0.16.04.2) を展開しています...
php7.0-fpm (7.0.15-0ubuntu0.16.04.2) のトリガを処理しています ...
php7.0-curl (7.0.15-0ubuntu0.16.04.2) を設定しています ...

Creating config file /etc/php/7.0/mods-available/curl.ini with new version
php7.0-intl (7.0.15-0ubuntu0.16.04.2) を設定しています ...

Creating config file /etc/php/7.0/mods-available/intl.ini with new version
php7.0-fpm (7.0.15-0ubuntu0.16.04.2) のトリガを処理しています ...
N: ディレクトリ '/etc/apt/apt.conf.d/' の '20auto-upgrades.ucf-dist' が無効なファイル名拡張子を持っているため、無視します

なんか最後のメッセージが気になるな。まあ、いいか。次に進めよう。

MediaWikiのインストール

takatoh@wplj $ cd /var/www/html
takatoh@wplj $ sudo wget https://releases.wikimedia.org/mediawiki/1.27/mediawiki-1.27.1.tar.gz
takatoh@wplj $ tar -xvzf mediawiki-1.27.1.tar.gz
takatoh@wplj $ ls
index.nginx-debian.html  mediawiki-1.27.1.tar.gz  phpmyadmin
mediawiki-1.27.1         phpinfo.php
takatoh@wplj $ sudo mv mediawiki-1.27.1 wiki
takatoh@wplj $ ls
index.nginx-debian.html  mediawiki-1.27.1.tar.gz  phpinfo.php  phpmyadmin  wiki

wiki ディレクトリのオーナーを変更。

takatoh@wplj $ sudo chown www-data:www-data -R wiki
takatoh@wplj $ ls -l
合計 30780
-rw-r--r--  1 root     root          612  2月 24 21:19 index.nginx-debian.html
-rw-r--r--  1 root     root     31504507  8月 23  2016 mediawiki-1.27.1.tar.gz
-rw-r--r--  1 root     root           23  2月 25 17:16 phpinfo.php
lrwxrwxrwx  1 root     root           21  2月 26 13:53 phpmyadmin -> /usr/share/phpmyadmin
drwxr-xr-x 15 www-data www-data     4096  8月 23  2016 wiki

ブラウザで http://localhost/wiki に接続してセットアップする。
最後に LocalSettings.php ファイルをダウンロード(これは自動で行われる)して /var/www/html/wiki ディレクトリにコピー。

takatoh@wplj $ sudo cp /home/takatoh/Downloads/LocalSettings.php wiki
takatoh@wplj $ ls -l wiki
合計 1136
-rw-r--r--  1 www-data www-data  19419  8月 23  2016 COPYING
-rw-r--r--  1 www-data www-data   4181  8月 23  2016 CREDITS
-rw-r--r--  1 www-data www-data     77  8月 23  2016 FAQ
-rw-r--r--  1 www-data www-data   2606  8月 23  2016 Gemfile.lock
-rw-r--r--  1 www-data www-data   2578  8月 23  2016 Gruntfile.js
-rw-r--r--  1 www-data www-data 784935  8月 23  2016 HISTORY
-rw-r--r--  1 www-data www-data   3625  8月 23  2016 INSTALL
-rw-r--r--  1 root     root       4093  2月 26 14:45 LocalSettings.php
-rw-r--r--  1 www-data www-data   1453  8月 23  2016 README
-rw-r--r--  1 www-data www-data  35118  8月 23  2016 RELEASE-NOTES-1.27
-rw-r--r--  1 www-data www-data    530  8月 23  2016 Rakefile
-rw-r--r--  1 www-data www-data   1703  8月 23  2016 StartProfiler.sample
-rw-r--r--  1 www-data www-data  11830  8月 23  2016 UPGRADE
-rw-r--r--  1 www-data www-data   4159  8月 23  2016 api.php
-rw-r--r--  1 www-data www-data 112767  8月 23  2016 autoload.php
drwxr-xr-x  2 www-data www-data   4096  8月 23  2016 cache
-rw-r--r--  1 www-data www-data   2693  8月 23  2016 composer.json
-rw-r--r--  1 www-data www-data    102  8月 23  2016 composer.local.json-sample
drwxr-xr-x  8 www-data www-data   4096  8月 23  2016 docs
drwxr-xr-x 19 www-data www-data   4096  8月 23  2016 extensions
drwxr-xr-x  2 www-data www-data   4096  2月 26 14:34 images
-rw-r--r--  1 www-data www-data   7440  8月 23  2016 img_auth.php
drwxr-xr-x 62 www-data www-data   4096  8月 23  2016 includes
-rw-r--r--  1 www-data www-data   1590  8月 23  2016 index.php
-rw-r--r--  1 www-data www-data   1690  8月 23  2016 jsduck.json
drwxr-xr-x  6 www-data www-data   4096  8月 23  2016 languages
-rw-r--r--  1 www-data www-data   1685  8月 23  2016 load.php
drwxr-xr-x 17 www-data www-data  12288  8月 23  2016 maintenance
drwxr-xr-x  4 www-data www-data   4096  8月 23  2016 mw-config
-rw-r--r--  1 www-data www-data   3859  8月 23  2016 opensearch_desc.php
-rw-r--r--  1 www-data www-data   1735  8月 23  2016 phpcs.xml
-rw-r--r--  1 www-data www-data  11811  8月 23  2016 profileinfo.php
drwxr-xr-x  5 www-data www-data   4096  8月 23  2016 resources
drwxr-xr-x  2 www-data www-data   4096  8月 23  2016 serialized
drwxr-xr-x  6 www-data www-data   4096  8月 23  2016 skins
drwxr-xr-x  6 www-data www-data   4096  8月 23  2016 tests
-rw-r--r--  1 www-data www-data  21655  8月 23  2016 thumb.php
-rw-r--r--  1 www-data www-data   1087  8月 23  2016 thumb_handler.php
drwxr-xr-x 18 www-data www-data   4096  8月 23  2016 vendor
-rw-r--r--  1 www-data www-data     98  8月 23  2016 wiki.phtml
takatoh@wplj $ sudo chown www-data:www-data wiki/LocalSettings.php
takatoh@wplj $ ls -l wiki
合計 1136
-rw-r--r--  1 www-data www-data  19419  8月 23  2016 COPYING
-rw-r--r--  1 www-data www-data   4181  8月 23  2016 CREDITS
-rw-r--r--  1 www-data www-data     77  8月 23  2016 FAQ
-rw-r--r--  1 www-data www-data   2606  8月 23  2016 Gemfile.lock
-rw-r--r--  1 www-data www-data   2578  8月 23  2016 Gruntfile.js
-rw-r--r--  1 www-data www-data 784935  8月 23  2016 HISTORY
-rw-r--r--  1 www-data www-data   3625  8月 23  2016 INSTALL
-rw-r--r--  1 www-data www-data   4093  2月 26 14:45 LocalSettings.php
-rw-r--r--  1 www-data www-data   1453  8月 23  2016 README
-rw-r--r--  1 www-data www-data  35118  8月 23  2016 RELEASE-NOTES-1.27
-rw-r--r--  1 www-data www-data    530  8月 23  2016 Rakefile
-rw-r--r--  1 www-data www-data   1703  8月 23  2016 StartProfiler.sample
-rw-r--r--  1 www-data www-data  11830  8月 23  2016 UPGRADE
-rw-r--r--  1 www-data www-data   4159  8月 23  2016 api.php
-rw-r--r--  1 www-data www-data 112767  8月 23  2016 autoload.php
drwxr-xr-x  2 www-data www-data   4096  8月 23  2016 cache
-rw-r--r--  1 www-data www-data   2693  8月 23  2016 composer.json
-rw-r--r--  1 www-data www-data    102  8月 23  2016 composer.local.json-sample
drwxr-xr-x  8 www-data www-data   4096  8月 23  2016 docs
drwxr-xr-x 19 www-data www-data   4096  8月 23  2016 extensions
drwxr-xr-x  2 www-data www-data   4096  2月 26 14:34 images
-rw-r--r--  1 www-data www-data   7440  8月 23  2016 img_auth.php
drwxr-xr-x 62 www-data www-data   4096  8月 23  2016 includes
-rw-r--r--  1 www-data www-data   1590  8月 23  2016 index.php
-rw-r--r--  1 www-data www-data   1690  8月 23  2016 jsduck.json
drwxr-xr-x  6 www-data www-data   4096  8月 23  2016 languages
-rw-r--r--  1 www-data www-data   1685  8月 23  2016 load.php
drwxr-xr-x 17 www-data www-data  12288  8月 23  2016 maintenance
drwxr-xr-x  4 www-data www-data   4096  8月 23  2016 mw-config
-rw-r--r--  1 www-data www-data   3859  8月 23  2016 opensearch_desc.php
-rw-r--r--  1 www-data www-data   1735  8月 23  2016 phpcs.xml
-rw-r--r--  1 www-data www-data  11811  8月 23  2016 profileinfo.php
drwxr-xr-x  5 www-data www-data   4096  8月 23  2016 resources
drwxr-xr-x  2 www-data www-data   4096  8月 23  2016 serialized
drwxr-xr-x  6 www-data www-data   4096  8月 23  2016 skins
drwxr-xr-x  6 www-data www-data   4096  8月 23  2016 tests
-rw-r--r--  1 www-data www-data  21655  8月 23  2016 thumb.php
-rw-r--r--  1 www-data www-data   1087  8月 23  2016 thumb_handler.php
drwxr-xr-x 18 www-data www-data   4096  8月 23  2016 vendor
-rw-r--r--  1 www-data www-data     98  8月 23  2016 wiki.phtml

これで完了。

設定の変更

LocalSettings.php を編集する。ロゴを変更。

$wgLogo = "$wgResourceBasePath/skins/MonoBook/wiki.png";

ファイルのアップロードを有効に。

$wgEnableUploads = true;

Windows マシンからでもアクセスできるように。

$wgServer = "http://wplj";

アップロード可能なファイルサイズを設定。これは MediaWiki じゃなくて PHP の設定。/etc/php/7.0/fpm/php.ini を編集。

upload_max_filesize = 8M

MySqlとphpMyAdminをインストール

wplj で MySql を使えるようにする。参考にしたのは過去のエントリ。
 cf. UbuntuにMySqlをインストール – blog.panicblanket.com
 cf. phpMyAdminをインストール – blog.panicblanket.com

MySqlのインストール

takatoh@wplj $ sudo apt install mysql-server

途中で root ユーザのパスワードの入力を促される(2回)ので、入力。
バージョンの確認。

takatoh@wplj $ mysql --version
mysql  Ver 14.14 Distrib 5.7.17, for Linux (x86_64) using  EditLine wrapper

設定ファイルを編集

/etc/mysql に移動して、my.cnf を編集する。一応バックアップをとっておく。

takatoh@wplj $ cd /etc/mysql
takatoh@wplj $ ls
conf.d        debian.cnf  my.cnf.fallback  mysql.conf.d
debian-start  my.cnf      mysql.cnf
takatoh@wplj $ sudo cp my.cnf my.cnf.orig

で、以下を追記。

[client]
default-character-set = utf8

[mysqld]
skip-character-set-client-handshake
character-set-server = utf8
collation-server = utf8_general_ci
init-connect = SET NAMES utf8

MySqlを再起動して動作確認

再起動。

takatoh@wplj $ sudo service mysql restart

ログインして、ステータスを確認。

takatoh@wplj $ mysql -u root -p
Enter password: 
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 4
Server version: 5.7.17-0ubuntu0.16.04.1 (Ubuntu)

Copyright (c) 2000, 2016, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> status
--------------
mysql  Ver 14.14 Distrib 5.7.17, for Linux (x86_64) using  EditLine wrapper

Connection id:		4
Current database:	
Current user:		root@localhost
SSL:			Not in use
Current pager:		stdout
Using outfile:		''
Using delimiter:	;
Server version:		5.7.17-0ubuntu0.16.04.1 (Ubuntu)
Protocol version:	10
Connection:		Localhost via UNIX socket
Server characterset:	utf8
Db     characterset:	utf8
Client characterset:	utf8
Conn.  characterset:	utf8
UNIX socket:		/var/run/mysqld/mysqld.sock
Uptime:			55 sec

Threads: 1  Questions: 6  Slow queries: 0  Opens: 107  Flush tables: 1  Open tables: 26  Queries per second avg: 0.109
--------------

大丈夫そうかな。プロセスも確認してみる。

takatoh@wplj $ ps aux | grep mysqld
mysql    14000  0.2  3.5 1236388 139200 ?      Ssl  13:41   0:00 /usr/sbin/mysqld
takatoh  14055  0.0  0.0  15256   936 pts/20   S+   13:43   0:00 grep --color=auto mysqld

phpMyAdminのインストール

takatoh@wplj $ sudo apt install phpmyadmin

インストールの途中で設定する Web サーバを訊いてくるけど、Apache2 と Lighttpd しか選択肢がないので、 ESC キーを押して続行。しばらくして「phpmyadmin 用のデータベースを dbconfig-common で設定しますか?」と訊かれるので「はい」を選択。phpmyadmin 用のパスワードを入力。
これでインストールは完了。
/usr/share/phpmyadmin から /var/www/html/phpmyadmin にリンクを張る。

takatoh@wplj $ ls -l /var/www/html
合計 8
-rw-r--r-- 1 root root 612  2月 24 21:19 index.nginx-debian.html
-rw-r--r-- 1 root root  23  2月 25 17:16 phpinfo.php
takatoh@wplj $ ls -l /usr/share | grep phpmyadmin
drwxr-xr-x   10 root root  4096  2月 26 13:46 phpmyadmin
takatoh@wplj $ sudo ln -s /usr/share/phpmyadmin /var/www/html
takatoh@wplj $ ls -l /var/www/html
合計 8
-rw-r--r-- 1 root root 612  2月 24 21:19 index.nginx-debian.html
-rw-r--r-- 1 root root  23  2月 25 17:16 phpinfo.php
lrwxrwxrwx 1 root root  21  2月 26 13:53 phpmyadmin -> /usr/share/phpmyadmin

動作確認

http://localhost/phpmyadmin にログインしたところ。

良さそうだ。