カテゴリー別アーカイブ: XREA

xrea関連の話題。

XREAマイグレーションに伴う自前設置WordPressの障害対応

XREAがサーバ老朽化に伴うマイグレーションを行いました。s353サーバに収容されていた当ウェブサイトも今日当たりました。で、同時にWordpressが動かなくなっていました……。色々と面倒だったので記しておきます。

Sorry. We are under maintenance.

移行前のウェブ領域は残されるようです。そのため、VALUE-DOMAIN以外のドメインレンタルサービスを使用していて、DNSレコードのIPアドレス修正が漏れていた場合は上記メッセージが表示され続けます。当ウェブサイト(jikkenjo.net)はVALUE-DOMAIN(eNom)だったので自動切換えでしたが、一部、他社からレンタルしているドメインを修正し忘れていて、本事象に当たりました。

他にも、ページが途中までしか表示されない事象が発生しました。吐き出されたHTMLソースを見ると、何の前触れもなくぷっつり切れていました。原因不明だったので下記対処をしましたが、結果として、DBをphpMyAdminでanalyze/optimizeすれば解消しました。詳細は不明ですが、恐らくどこかのレイヤでタイムアウトに引っかかってしまったのではないかと思われます。マイグレーション作業として行われたであろうDB移行が、物理移行(ファイルシステムごとコピー)ではなく論理移行(MySQLのダンプ・リストア)だったため、統計情報が更新されなかったと考えられます。(MySQLのバージョンが上がったので、物理移行は無理だった? それにしても、初回のanalyzeくらいは実行しておいてほしかった。)

wp-config.php に下記文言を追記してやると、Wordpressの内部エラーが出力されるようになります。私の場合は、「DBサーバとの接続が確立できませんでした」的なメッセージが出ていました。(connection refusedだったかな……)

define('WP_DEBUG',true);

xreaアップデートに伴うDB移行手順メモ

xreaが大規模更改にあたり、各ソフトウェアのバージョンがドラスティックに変わりました。MySQLも大幅にバージョンアップするため、本ブログ(Wordpress)のデータがすべて削除されました。xrea運営が作業前に取得してくれていたdumpファイルを元に無事復旧できたのでメモしておきます。

蛇足ですが、XREA自体がそもそも上級者向けの低価格低サポートなサービスだっただけに、殆どの方は自分で解決されているようでした。また、公式サポートフォーラムでも技術者らしい冷静な対応をされている方ばかりだったので、なんだか安心しました。

[usename]や[dbname]やサーバ名やファイル名は適宜読み替えてください。

手順

xreaのコントロールパネルからDBを作成

xreaのコントロールパネルから、過去にWordpressで使用していた名前でDBを作成します。パスワードも過去(Hint:初期パスワードはFTPパスワードの前8文字)と同じにしてください。稀に、xreaの更改作業を乗り切ってしまうDBもあるそうですが、間違いなく中途半端にしか復元できていないため、一旦削除してから再作成(空のDBを用意)してください。

sshで接続してftp8変換とインポート

サーバにsshで接続します。xreaのコントロールパネルから「ホスト登録」をお忘れなく。出来ない場合は1~3分待ってください。

ssh -l [username] sXXX.xrea.com

公式からutf8への変換が必要とアナウンスがあるため、dumpファイルをutf8に変換します。nkfでいけます。

MySQL4以前などの古いデータベースからデータは完全には引き継げませんので、データベース内のデータが一旦空になります。
特に文字コードはUTF-8が標準となりますので、そのまま引き継ぐと不具合が出る可能性があります。
MySQL/PostgreSQL/Apache/PHPのバージョンアップメンテナンスについて

ll
cd _DB_BACKUP_XREA_UPGRADE/
ll
nkf -w mysql_[dbname].dump > mysql_[dbname].dump.nkf
ll
view mysql_[dbname].dump.nkf

中身を見て問題なさそうならインポートします。先ほど設定したDBのパスワードを聞かれます。

mysql -u [dbname] -D [dbname] -p < mysql_[dbname].dump.nkf

特にエラーが起きなければ以上となります。念のためレベルで、インポートしたDBを確認してみてください。

mysql -u [dbname] -D [dbname] -p
use [dbname]
show tables;

その他

phpMyAdminの再インストール(バージョンアップ)

phpMyAdminを使用する場合は再インストールが必要です。公式では下記のように説明されていますが、私はコントロールパネルで「インストール」を選択するだけでいけました。

1、ファイルマネージャーもしくは、ご利用のFTPクライアントから、現在のディレクトリ「./public_html /log /phpmyadmin_」等に名前を変更します。
2、XREAサーバー管理画面二ログインし、「データベース」メニューから
「■PhpMyAdmin自動インストール(MySQL管理) 」項目の「インストール」ボタンをクリックします。
3、「./public_html /log /phpmyadmin」が生成されたことを確認されましたら、ログインします。
【公式】XREAサーバー:最新の環境へのアップデートメンテナンス関連

秘密鍵/公開鍵を使ってパスワード無しのssh接続をする(cygwin@Windows→xrea)

公開鍵/秘密鍵を使ったパスワード無しのssh接続を、Windowsのcygwinからxreaサーバに実施する際のメモです。

まずは公開鍵/秘密鍵を作成する。cygwinはデフォルトで~/.sshフォルダが存在するため作成不要。ssh-keygenはオプションなしだとrsaを使用する。

$ ssh-keygen
Generating public/private rsa key pair.
Enter file in which to save the key (/home/User/.ssh/id_rsa):
Enter passphrase (empty for no passphrase):
Enter same passphrase again:
Your identification has been saved in /home/User/.ssh/id_rsa.
Your public key has been saved in /home/User/.ssh/id_rsa.pub.
The key fingerprint is:

$ cd .ssh/

$ ls -la
合計 13
drwxrwx---+ 1 User なし    0 11月 29 15:10 .
drwxrwxr-x+ 1 User なし    0 9月  29 23:51 ..
-rw-rw----  1 User なし 1679 11月 29 15:10 id_rsa
-rw-rw-r--  1 User なし  394 11月 29 15:10 id_rsa.pub
-rw-rw-r--  1 User なし  745 11月 29 14:03 known_hosts

xreaに公開鍵をscpでファイル転送する。

$ scp ./id_rsa.pub jikkenjo@s353.xrea.com:.

xrea側でauthorized_keysに追加する。xreaにssh接続するためには、Webのコントロールパネルから「ホスト情報登録」をしておく必要があります。

$ ssh -l jikkenjo s353.xrea.com

> mkdir .ssh
> chmod 700 .ssh
> mv id_rsa.pub ./.ssh/.
> cd .ssh/
> cat ./id_rsa.pub >> authorized_keys
> chmod 600 authorized_keys
> logout

早速、sshで接続してみる。が、「秘密鍵のパーミッションが緩すぎる」と怒られてエラーとなる。

$ ssh -l jikkenjo s353.xrea.com
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
@         WARNING: UNPROTECTED PRIVATE KEY FILE!          @
@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@@
Permissions 0660 for '/home/User/.ssh/id_rsa' are too open.
It is required that your private key files are NOT accessible by others.
This private key will be ignored.
bad permissions: ignore key: /home/User/.ssh/id_rsa
jikkenjo@s353.xrea.com's password:

そもそも、id_rsaに所有グループが設定されていなかったので設定して、グループからのアクセスを拒否するパーミッションに設定する。(念のため、ユーザの所属するグループを確認して設定。)

$ groups
なし Users HomeUsers

$ chgrp Users ./id_rsa
$ chmod 400 ./id_rsa

これにて一件落着。

$ ssh -l jikkenjo s353.xrea.com
> 

XREA+(PLUS)/CORESERVERでWordPressのWPTouchプラグインを使用した時に出るエラーの回避方法

XREA+(PLUS)/CORESERVERでWordPressのWPTouchプラグインを使用した時に出るエラー(ワーニング)メッセージの回避方法をメモしておきます。

WPTouchをインストール(wp-content/pluginsにput)して有効化後に、wordpressのコントロールパネルからWPTouchの設定画面を呼び出し、Core SettingsのSave Changeをしたとき、画面上部に下記ワーニングメッセージが出力される場合があります。中身を読んでみると、ディレクトリにアクセスできなくて怒られていることがわかります。

Warning: fopen() [function.fopen]: Unable to access /virtual/*****/public_html/wp-content/wptouch-data/backups/wptouch-backup-20131210-131850.txt in /virtual/*****/public_html/wp-content/plugins/wptouch/core/admin-backup-restore.php on line 51

Warning: fopen(/virtual/*****/public_html/wp-content/wptouch-data/backups/wptouch-backup-20131210-131850.txt) [function.fopen]: failed to open stream: No such file or directory in /virtual/*****/public_html/wp-content/plugins/wptouch/core/admin-backup-restore.php on line 51

Warning: fopen() [function.fopen]: Unable to access /virtual/*****/public_html/wp-content/wptouch-data/backups/wptouch-backup-20131210-131850.txt in /virtual/*****/public_html/wp-content/plugins/wptouch/core/admin-backup-restore.php on line 51

Warning: fopen(/virtual/*****/public_html/wp-content/wptouch-data/backups/wptouch-backup-20131210-131850.txt) [function.fopen]: failed to open stream: No such file or directory in /virtual/*****/public_html/wp-content/plugins/wptouch/core/admin-backup-restore.php on line 51

まずは、wp-contentsの権限を確認してください。777等で設定されている、かつ、wp-content/wptouch-dataが作成されている場合は問題ありません。当該ディレクトリ内に複数のディレクトリが作成されていることも併せて確認します。

一方、wp-contentが755で設定されている場合は、wp-content/wptouch-dataを手で作成して、777を与えてください。

ここで、再度wordpressのコントロールパネルからWPTouchの設定画面を呼び出します。すると、先ほど手で作成したwp-content/wptouch-data配下に複数のディレクトリが作成されます。ところが、これらのディレクトリは、所有者がapacheになっています。これは、XREA系列サーバでは回避しようがないようです。

※ モジュール版PHPから作成されたファイルの所有者は「apache」になります。これらのファイルの所有者を「*****」に、パーミッションを「707」に変更します。(XREAコントロールパネルより引用)

その場合は、下記ワーニングメッセージが出力されます。スクリプトと所有者の違うディレクトリが読めないと言っています。(適当)

Warning: fopen() [function.fopen]: SAFE MODE Restriction in effect. The script whose uid is 10852 is not allowed to access /virtual/*****/public_html/wp-content/wptouch-data/backups owned by uid 1000 in /virtual/*****/public_html/wp-content/plugins/wptouch/core/admin-backup-restore.php on line 51

Warning: fopen(/virtual/*****/public_html/wp-content/wptouch-data/backups/wptouch-backup-20131210-141529.txt) [function.fopen]: failed to open stream: No such file or directory in /virtual/*****/public_html/wp-content/plugins/wptouch/core/admin-backup-restore.php on line 51

Warning: fopen() [function.fopen]: SAFE MODE Restriction in effect. The script whose uid is 10852 is not allowed to access /virtual/*****/public_html/wp-content/wptouch-data/backups owned by uid 1000 in /virtual/*****/public_html/wp-content/plugins/wptouch/core/admin-backup-restore.php on line 51

Warning: fopen(/virtual/*****/public_html/wp-content/wptouch-data/backups/wptouch-backup-20131210-141529.txt) [function.fopen]: failed to open stream: No such file or directory in /virtual/*****/public_html/wp-content/plugins/wptouch/core/admin-backup-restore.php on line 51

この事象はXREAのコントロールパネルより、フォルダの所有者を変更することで解決することができます。コントロールパネルから「ツール」を選択し「ファイル所有者の変更」します。

これにて一旦落着。

XREA/Value-Domain(eNom)+DiCEでDDNS(Dynamic DNS)の設定をする

XREA/Value-Domain(eNom)+DiCEでDDNSの設定をやってみました。ちょっとハマった(公式マニュアルに記載のない方法)ので、メモの意味を込めて書き記しておきます。

もちろん、あたり前のことながら、ドメイン名と括りつけたいIPアドレスを持つ端末(要はサーバにするPC)から一連のオペレーションを実施する必要があります。

続きを読む

5日間ほど障害で落ちてました

原因不明の障害で5日間ほど、このブログが落ちていました。障害を見つけたのは発生して2日目でしたが、「放っとけば直るだろう」という根拠のない自信で放っておいたらいつまで経っても直らなかったので仕方なく原因を究明しました。とりあえず原因がわかったのでメモ。

続きを読む