baser CMSのバージョンアップ

とあるサイトのサーバー移転を機に、baser CMSのバージョンアップをしてみました。

バージョンは2.1.2から3.0.14。

ざっくり仕様を。
・サブディレクトリで設置してある
・デザインテーマは「nada icons」(いらない要素は削除してある)
・アップローダープラグインのみインストール済み
・スマートURLはON

もちろんですが、作業はローカルで行います。
手順は「baserCMS 2.1系 から baserCMS3に移行する | baser CMS - 国産オープンソース!フリー(無料)で『コーポレートサイトにちょうどいいCMS』」に沿ってやってみました。

まずは、一気に3.0.14へしてみることに。
現在ダウンロードできる最新の「DBマイグレーター」をダウンロードして、やってみました。
結果はエラーが出てダメでした。
そして、先ほどのページのBcDbMigratorをダウンロードしてbaser CMS 3.0.0から順にアップしてみることにしました。
しかしここで問題が。
リンク先が削除されているようで、404エラーが。
にっちもさっちもいかない状況になりました。
しばらく考えた結果、名案が浮かびました。
今まで使っていたパソコンに古いデータがあるかもしれないと思い、久しぶりに電源をON。
ハードディスクを漁っていたら、ありました。
ナイス、昔の自分。
早速作業を開始し、無事にバージョンアップ完了。
次はここから3.0.14にアップデートしてみました。
もちろん、アップデート前にはバックアップをしておきます。
(ファイル,データベース,管理画面上のデータメンテナンスからもバックアップ)
結果はエラーが発生して、またにっちもさっちもいかない状況に。
構造も全然違うので諦めて、再度3.0.0をインストール、復元。
今度は順を追ってアップデートすることにして3.0.5.1までは順調に完了しました。
次は、3.0.6.1。
これ以降はエラーでアップデートできませんでした。
また、にっちもさっちもいかなくなりました。
どうしようもないので、作戦を変えて3.0.14をインストールしてから、3.0.5.1のバックアップデータから復元をしてみることにしました。
データベース構造は変更がないと思ったからです。
まず、3.0.5.1から管理画面上のデータメンテナンスからバックアップを作成。
一旦、すべて削除。(ファイル,データベース)
3.0.14をインストール。
管理画面のデータメンテナンスから復元。
アップローダーでアップしたデータをコピー。
nada iconsのカスタマイズ部分をコピー。
インストールディレクトの「/app/config/install.php」の
Configure::write('Security.salt', '文字列');
のコピペも忘れずに。
これを忘れると管理画面に入れなくなります。
一通り作業をして確認したところ、問題なく動作しているようです。
これで3.0.14へのアップデートが完了しました。

あとは本番環境で問題ないか、実際にアップしてみて確認します。
「/app/config/install.php」、「/app/config/database.php」を本番用に書き換えてアップロードします。
データベースもphpMyAdminを使用してアップしておきます。

いよいよ本番で確認し、問題なさそうなです。
今度はローカル上の古い方(2.1.2)をバックアップして、古い方を削除し、古い方のディレクトリ名に変更し、「/app/config/install.php」の
Configure::write('BcEnv.siteUrl', 'サイトのURL');
を変更します。
ローカルで問題なければ、本番用も同様に作業します。

これでまた確認して問題なさそうなので、作業終了です。

紆余曲折はありましたが、何とかバージョンアップ完了しました。

今回はあまりカスタマイズしていなかったのと、当時DBマイグレーターをダウンロードしてあったのが幸いして、何とか上手く行きました。

baser CMSは現在4.0.3が最新ですが、3系もまだメンテナンスされているので、サポート終了間近までは3系で行こうと思います。

以上、baser CMSのバージョンアップでした。

CentOSにmod_fcgidモジュールをインストール

ちょいとPHPをFastCGIで動かす必要があったので、VirtualBox内のテストサーバーに設定した。
次やる時に思い出せるようにメモ。
環境はCentOS5、PHP5.2.11。
インストールするのはmod_fcgid。
標準のyumレポジトリには、このモジュールが無いので、別途epelを設定してインストール。
(今回はepelの設定は割愛。)
# yum --enablerepo=epel install mod_fcgid
でインストール。
後はvhosts.confの設定したい箇所に
<Directory "/hoge/moge/poge/">
	Options ExecCGI
	AddHandler fcgid-script .php
	FCGIWrapper /usr/bin/php-cgi .php
</Directory>
を追加してから
# /etc/init.d/httpd restart
でApacheを再起動して、
<?php phpinfo();
と記述したPHPファイルアップし、「Server API」に「CGI/FastCGI」と表示されいればOK。

PHPでInternet Explorerのバージョンを判定する

既に多くのプログラマーさんがやっているとは思いますが、PHPでInternet Explorerのバージョンを判定するプログラムを考えてみました。
$ua = $_SERVER['HTTP_USER_AGENT'];
$uaBrowserInfo['browser'] = "";
$uaBrowserInfo['version'] = "";
if (preg_match("/Trident\/(\d{1,}\.(\d{1,})).*rv:(\d{1,}\.(\d{1,}))/", $ua, $regExpResults)) {
	$uaBrowserInfo['browser'] = "IE";
	$uaBrowserInfo['version'] = (float)$regExpResults[3];
} elseif (preg_match("/MSIE\s(\d{1,}\.\d{1,})/i", $ua, $regExpResults)) {
	$uaBrowserInfo['browser'] = substr($regExpResults[0], 2, 2);
	$uaBrowserInfo['version'] = (float)$regExpResults[1];
}
ざっくり解説。
まず、uaという変数にUser Agentの値を入れる。
uaBrowserInfoのbrowserとversionを空にする。
正規表現で、先ずはIE11の新しくなったUser Agentかどうかを判定する。
Tridentとrv:があればIEとして、uaBrowserInfoのbrowserにIEと入れ、versionにはregExpResultの4番目の値がrv:の後の値が入っているので、それをfloatに変換して入れる。
次の処理で、従来の「MSIE バージョン番号」が見つかったら、uaBrowserInfoのbrowserにregExpResultsの1番目の値からIEという文字列抜き出して入れる。
バージョンはregExpResultの2番目の値をfloatに変換して入れる。
色々なパターンを試してみたので、おそらくこれで問題はないかと思います。

【2014/8/1 14:37追記】
ちなみに、互換モードは考慮していません。

WebKeepersのVPS(Linux)を新プランに変更

WebKeepersのVPS(Linux)を2013年2月6日からの新プランに変更すべく、急遽作業開始。

OSはCentOS6.3(64bit)に、Pleskは11になったんだ〜。

後でyumのインストールをと思って、まずダメ元で「yum list」を実行。
動いた!
どうやらyum使えるらしい\(^o^)/

後はひたすら移行作業。

[2013年3月20日9時53分追記]
あ、ローカルサーバーもこれを機にアップさせないと(^^;;

ウェブサイト改ざん

先程、Chromeでeu-create.netを開いたところ
「警告: 不正なソフトウェアが存在する可能性があります」
という表示が…がく〜(落胆した顔)

調べてみると、「index.htm」が2012年7月7日に、「index.html」が2012年7月14日にそれぞれ更新されていました。
ちなみに2010年のリニューアル以降、同ファイルは修正やアップはしていないので、何らかの脆弱性を突かれて改ざんされたらしい。
ざっと確認してみたけど、この2ファイルだけみたいだ。

一応、埋め込まれたスクリプト部分を削除してアップしなおした。
FTPのアカウントもパスワードを変更しておいた。

週末、じっくり見ないといけないなぁ。ふらふら

【2012年7月25日12時27分追記】
同サーバーに格納している他のドメインもチェックしたところ、「index.htm」または「index.html」のファイルは全て同様の仕掛けが埋め込まれていました。もうやだ〜(悲しい顔)

【2012年8月3日23時10分追記】
主にPleskの脆弱性をついたインジェクションみたいです。
概要としては以下の参考サイトを参照
http://www.bbfriend.net/staff/2012/07/31/plesk-%E3%83%9E%E3%83%AB%E3%82%A6%E3%82%A7%E3%82%A2%E3%81%8C%E5%9F%8B%E3%82%81%E8%BE%BC%E3%81%BE%E3%82%8C%E3%81%9F%EF%BC%81%EF%BC%9F%E3%80%80km0ae9gr6m%E3%80%80qhk6sa/
もう少し深く入り込むと
http://jvnrss.ise.chuo-u.ac.jp/csn/index.cgi?p=%A5%A4%A5%F3%A5%B8%A5%A7%A5%AF%A5%B7%A5%E7%A5%F3+-+%2F*km0ae9gr6m*%2F+%A1%C1+%2F*qhk6sa6g1c*%2F

足が痛い

今日、お昼頃起きると、何故か右足の足首から甲の辺りが痛い(>_<)
4時頃にトイレに行った時は、いつも通り普通だったのに、何故?
外傷無し、腫れ等も無し。
とりあえず、第一三共ヘルスケアのパテックス フェルビナク メントールローションで様子見。

Android携帯から投稿

ルーター設定に手こずる

今日は、最近若干調子の悪かった自宅のルーター再設定をしてみた。
午前10時頃から始めたのだが、ネットに接続できるようになったのは午後5時頃。
au one netで接続するルーター(ルーター1)が何をやっても繋がらない。
結論は意外と単純で、ログインパスワードが違っていた。
以前、ログインパスワードを変更したときのテキストファイルが見つかったので、それを入力したら接続できた。
しかし、次はコレガの無線LANルーター(ルーター2)から、このルーターに接続できず。
原因は、ルーター1からルーター2に接続するときに、スイッチングハブを介して接続していたが、どうやらそのハブが限界を迎えていたらしい。
ケーブルを直結したら接続できるようになった。
あぁ、疲れた。

IE10が発表&技術者向けに公開

IE10が発表&技術者向けに公開されたみたい。
対応OSはWindows7。
日本は震災の影響でIE9が4月26日公開なのに。

【2011年4月13日21時9分】
IE9の日本公開日が4月24日になっていたので訂正。

格納サーバーの緊急メンテナンスがあります

WebKeepersにて契約中のVPSサーバーが電源の緊急メンテナンスをするそうです。

以下、メールの一文を引用
■概要
データセンター内変圧器交換によるメンテナンス

■日時
1回目: 2011年4月12日(火) 午前1時30分~午前4時の間 (日本時間)
2回目: 2011年4月13日(水) 午前1時30分~午前4時の間 (日本時間)

以下のドメインが一時的に閲覧等出来なくなると思います。
・eu-serve1.net
・eu-create.net
・euli-haruna.com
・euro-strada.bz
・euro-strada.info

以上、よろしくお願いします。

サーバー復旧しました

サーバーが復旧しました。

詳細は現在Webサーバー会社にて調査中です。

【2010年12月13日21時52分追記】
原因はサーバー機器の不具合だったそうです。