ロケットネットでもベンチマークしてみた

何かロケットネットさんがキャンペーンで50GBのディスク容量にも関わらず年間1,000円キャンペーンをやってたので思わず釣られてみたw
いやいや、月額じゃなくて年額1,000円ですよ!これは事件です!

まぁ共用のレンタルサーバーということでVPSとも違うのであんまり自由度も無いけど、取りあえずデータのバックアップ用にでも使おうかと思って借りてみました。
念のため(というかこれが目的になってる節もありますがw)いつものようにPHPspeedをやってみたぜ!
ちなみにOSはCentOSっぽいです。

ちょっと前にやった[AWS] EC2マイクロインスタンスのベンチマークしてみたに追記する形でまとめます。

ベンチ結果

EC2 micro
EBS
EC2 small
instance-store
さくらVPS
512
ServersMan@VPS
Standard
ロケットネット
Synthetic
PHP BenchMark
3,267 1,262 2,507 1,693 3,794
Synthetic
MySQL BenchMark
13,748 5,234 11,072 5,168 6,005
Synthetic
Read/Write BenchMark
865 792 1,406 901 2,910
Real World
PHP BenchMark
2,639 1,320 4,659 3,090 4,493
Real World
PHP & MySQL BenchMark
838 994 2,179 1,287 2,054
Server BenchMark 1,415 969 2,548 1,300 2,838

正直なところ驚きました。
当然ながらVPSやら共用サーバーは当たり外れがあると思いますので、一概に断言はできませんがロケットネットのパフォーマンスはかなりスゴいです。
キャンペーン無しの値段でも初期費用1,575円、月額735円ということで一番安いため、大した性能は期待していませんでしたが、比較したやつの中ではトップクラスでした。後発有利とはいえこれは結構驚きです。
回線品質は確認してないですけどCDN的な使い方もアリかもしれないです。

おまけレベルですがsshも使えて、実際触っていても引っかかる感じが全くないのでアリだと思います。ただ、rsyncでバックアップしようと思ってたのにやっぱりrsync使えなかった(つーか初めに確認しろよオレw)ので若干ショックです><
chmodすら無くてftp経由でパーミッション変更しないといけないとかイミフw
まぁバックアップの方法は適当に考えることにしよう。

Railsも使えるっちゃ使えるみたいなのですが、いかんせんバージョンがかなり古いですねぇ。普通のホームページやらblogやらphp使ったサイトとかなら全然おkですが、ちょっと凝ったことをしようと思ったらやっぱちょっと厳しいですね。
(この辺りがPHPでサイト作る人が圧倒的に多い理由じゃ無いかといつも思う。)

まとめ

ロケットネットがオススメの人
・画像いっぱい動画もうpなホームページを作りたい人
・お手軽に独自ドメインでブログとかメールとかやってみたい人
 →ただ使い勝手的にhetemlロリポのがオススメw
・ちょっとWebアプリの作り方を勉強してみたいし、PHPだと捗るって聞いた人
・ターミナルの黒い画面が苦手なのでブラウザでイロイロ設定したい人

ロケットネットがオススメじゃない人
・容量とか別に無くてもいい人
・Railsってかなり捗るって聞いた人
・Google先生と仲良くなるにはPythonとDjangoだろって人
・サーバーをイロイロいじって勉強したい人
・735円出すのが惜しい人
 →つーか月額100円台からあるよね今。。。

ちなみに自分的にお気に入りというかオススメランキングはこんな感じ
EC2 > さくらのVPS > ロケットネット > ServersMan@VPS

ServersMan@VPSはベンチに現れていませんが、頻繁に反応が鈍くなります。ssh使っててもイライラするレベルw
今ServersMan@VPSで運用している業務アプリがあるのですが、今月末にちょっとメンテを入れるのでそのタイミングでEC2のTokyoに切り替える予定なくらいあまり気に入っていないw
まぁこの辺はOpenVZの仕様的なところも関係するのかもしれないですね。



まぁ、とりあえず一年1000円で使えるうちにから借りとけってことですw

Filed under: AWS,Internet,Linux — maesan 2:01 AM

[AWS] EBSブートについての覚え書き

エントリー[AWS] EC2マイクロインスタンスのベンチマークしてみたでも書いてましたが、EC2のマイクロインスタンスはEBSブートのAMIでしか使えません。今までinstance-storeのAMIしか使ったことが無かったので、イメージの保存〜リカバリーの勝手が分からずちょっと自分なりに調べてみたので覚え書きにする。

 

そもそもEC2って?

元々EC2ではEBSってのは無くて、instance-storeのみでサービスしてたらしいです。

AMIイメージから起動して使用する手順

  1. S3に保存されているAMIイメージを選択する
  2. クラウド上にイメージを展開する
  3. オンメモリでインスタンスが展開される。シャットダウンすると消える

起動しているインスタンスを永続化する手順

  1. インスタンスのイメージを作成する
  2. 作成したイメージをS3にアップロードして保存する

この辺の流れはシンガポールが追加されたAmazon EC2で遊んでみた[S3編]を参考にしてください。

S3はストレージサービスと言っても普通にマウントして使うようなやり方はできなくて、httpを使ってファイルを送受信するだけのシンプルなサービス(何せSimple Storage Service → S3ですからw)なので、インスタンスからマウントできるようなストレージサービスとしてEBS(Elastic Block Storage)ってのが提供されるようになったようです。

 

EBSについて

ではS3とは別のEBSって何かってことですが、EBSを使う流れは簡単にいうとこんな感じ

EBSの使い方

  1. サイズを指定してボリュームを作成する
  2. 作成したボリュームを起動中のインスタンスにアタッチする
  3. インスタンスでアタッチしたボリュームをマウントする

ココまではイイんだけど、じゃあEBSブートって何よ?ってのが疑問になったわけ。イメージ的にはシャットダウンしても消えないインスタンスが使えるようになるんだって思って、だいたい合ってました。

EBSブートのインスタンスが起動するまでの流れ

  1. EBSブート用のAMIから起動する
  2. 自動的にEBSボリュームが作成され、イメージが展開される
  3. EBSボリュームからインスタンスが起動する
  4. 終了するとstop状態でEBSボリュームが残る (設定でterminateにもできるので注意)
  5. terminateするとEBSボリュームが消える

インスタンスの状態にはrunningとterminateとstopってのがあって、terminateするとデータ全部消えちゃいます。EBSだとterminateしても消えないのかなって思ったけど残念ながら消えます><その代わりEBSにはstopって状態が存在して、stopにしておくとスナップショットをとって保存しておけます。また、stopならそこからもう一度起動することもできます。

 

スナップショットからAMIイメージを作成してリカバリーする方法

stopにしておけばデータは消えないのですが、同じインスタンスをもう1個立ち上げたいとか誰かにオレオレAMIを公開したいとかできないし、stopのままおいておくのもなんか気持ち悪いのでどうやってEBSブートAMIを作るのか調べました。
スナップショットはManagement Consoleからでも簡単にできるのですが、AMIイメージの作成はManagement Consoleからはできず、コマンドラインインターフェースを使う必要がありました。
実際の手順はこのページ「EC2においてEBS Snapshotでバックアップを取得しそれをリカバリする方法」がスゴくわかりやすかったです。

インスタンスの情報が以下でスナップショットの名前がsnap-xxxxxxxxとすると
Root Device: /dev/sda1
Kernel ID: aki-xxxxxxxx
RAM Disk ID: ari-xxxxxxxx 

コマンドはこんな感じ

#ec2-register -n イメージ名 -d ‘イメージの説明’ –root-device-name /dev/sda1 -b /dev/sda1=snap-xxxxxxxx -a i386 –kernel aki-xxxxxxxx –ramdisk ari-xxxxxxxx

*64bitの場合はi386をx86_64に

これでMy AMIにオレオレイメージが作成されましたのでいつでもインスタンスを立ち上げることができるようになりました。

Filed under: AWS,Internet — maesan 11:30 PM

[AWS] EC2マイクロインスタンスのベンチマークしてみた

いつの間にやらEC2にsmallインスタンスの更に下のmicroインスタンスってのが使えるようになったらしいので、ちょっとやってみた。

他のサービスと比較

まずは似たようなサービスと比較してみます。
AWSの東京リージョンも最近できましたが、前からシンガポール使ってたので、それ基準で。
VPSとEC2は違うものですが、値段的に同じくらいのさくらVPSとServersMan@VPSも表に入れてみた。

  スペック 初期費用(年) 料金/時間 料金/月間
EC2 スモール
(オンデマンド)
CPU:仮想1コア
メモリ:1.7GB
ストレージ:160GB*
0 $0.095 $68.4 (約5,700円)
EC2 マイクロ
(オンデマンド)
CPU:仮想1コア
メモリ:613MB
ストレージ:従量(EBS)
0 $0.025 $18 (約1,500円)
EC2 マイクロ
(リザーブ)
CPU:仮想1コア
メモリ:613MB
ストレージ:従量(EBS)
$54 $0.01 $7.2 (約600円)
さくらのVPS
512
CPU:仮想2コア
メモリ:512MB
ストレージ:20GB
0 980円
ServersMan@VPS
Standard
CPU:仮想2コア
メモリ:512MB
ストレージ:30GB
0 980円

*ただしシャットダウンすると跡形も無く消え去ります><

スモールはちょっと頭抜けてますが、マイクロのリザーブは初期費用入れるとだいたい980円くらいなのでさくらVPS 512やServersMan@VPS Standardとほぼぴったりな感じです。
ただ、EC2はデータの転送量に応じた料金がかかりますし、EC2のマイクロインスタンスはEBSブートのみなのでストレージ費用も別途かかります(月$0.1/GB+I/0に応じて)
そのためやっぱちょっと金額は他と比べるとかかっちゃいます。ただ、普通のVPSと違ってアクセスが集中した時でもある程度ブーストしてくれるのでその辺はクラウドの強みかなと思います。

ベンチマーク!

では皆さんも大好きなベンチマーク結果をw
ベンチマークはAWS, さくらVPS, hetemlでベンチマークしてみたと同じくPHPspeedでやってみました。
アレから時間も経ってるので、スモールとさくらVPSも再計測してみました+ServersMan@VPSも最近使い始めたのでそれもまとめてみました。

  EC2 micro
EBS
EC2 small
instance-store
さくらVPS
512
ServersMan@VPS
Standard
Synthetic PHP BenchMark 3,267 1,262 2,507 1,693
Synthetic MySQL BenchMark 13,748 5,234 11,072 5,168
Synthetic Read/Write BenchMark 865 792 1,406 901
Real World PHP BenchMark 2,639 1,320 4,659 3,090
Real World PHP & MySQL BenchMark 838 994 2,179 1,287
Server BenchMark 1,415 969 2,548 1,300

まとめ

いや、何かの間違いと思いたいのですが、EC2のsmallが一番しょぼいってどうよ?w
何かもう全部マイクロインスタンスに変えてやろうかと思ってしまったわ><
ちなみにsmallとmicroは同じAMIで、instance-storeで使ってたAMIをEBSに変換してmicroで使ってみました。
(この辺はまた別エントリーで書いてみます)
EBSブートの方がinstance-storeよりもIO性能が低いってAWSのページには書いてあったのですが、全然変わらないというかむしろ逆転している感が漂っています。。。

相変わらずさくらVPSがスゴすぎるのはいうまでもない感じですが、ServersMan@VPSが意外と健闘している感じがします。実際使ってみるとServersMan@VPSはたまに引っかかる感じというか、遅いと感じる時があるのですが、ベンチマークとってみるとあまり目立ってばらついては無かったです。

一番ばらつきが大きかったのがEC2のmicroでした。短期ブーストってAWSの説明に書いてあったけど、いざという時は瞬発力を発揮してくれるのかもしれないですね。

まぁ取りあえずさくらのVPS
使っとけば間違いは無いってことですかね?W



Filed under: AWS,Internet,MySQL,PHP — maesan 12:36 AM

格安SSL証明書導入の記録

SNIについてですがwww.maesan.jpの証明書でmaesan.jpも証明できるのでこの記事でSNI対応できてるというのは間違っていると思われます(コメント指摘ありがとうございます!)
この記事に書いてある無理矢理な方法ではなく、きちんと対応したバージョンのapacheを使ってください><


いままでSSLの証明書取得とか設定とか、レンタルサーバー側に任せっきりだったのでちょっと勉強がてら格安SSLの「エンジョイSSLダイレクト」って所を使ってmaesan.jpドメインをSSL化してみた。
何ていうか名前からしてアレな感じですが、値段は驚きの1,400円w そんな価格の証明書で大丈夫か?w

手順

サーバーのSSL化は以下の手順で行います。
1.CSRの作成
2.SSL証明書発行申し込み
3.サーバーのSSL設定

CSRの作成〜証明書発行申し込み

CSRってのは企業の社会的責任のアレじゃなくて、Certificate Signing Requestの略らしく、簡単にいうと公開鍵+サーバーの情報が含まれた謎の文字列のことです。

サーバーはDebian使ってますが、基本的な手順は一緒と思われます。

まずは秘密鍵の生成を行います。

#openssl genrsa -out maesan.jp.key 2048

秘密鍵とは公開鍵で暗号化されたものを復号化する鍵のことで、秘密鍵で暗号化されたものは公開鍵で復号化できるんだった気がしますが、それはRSAだけだったかよく分からなくなってきたので、詳しい説明は賢い人に聞いてください!

んで次にCSRの生成を行います。

#openssl req -new -key maesan.jp.key -out maesan.jp.csr
Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Kyoto
Locality Name (eg, city) []:Kyoto
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Maesan&Co.,Ltd.
Organizational Unit Name (eg, section) []:空白でおk
Common Name (eg, YOUR name) []:www.maesan.jp
Email Address []:空白でおk

Please enter the following ‘extra’ attributes
to be sent with your certificate request
A challenge password []:空白でおk
An optional company name []:空白でおk

CSRはテキストで以下のような謎の文字列です
これを申し込みページにコピペすればおk

-----BEGIN CERTIFICATE REQUEST-----
MIICpDCCAYwCAQAwXzELMAkGA1UEBhMCSlAxDjAMBgNVBAgTBUt5b3RvMQ4wDAYD
VQQHEwVLeW90bzEYMBYGA1UEChQPTWFlc2FuJkNvLixMdGQuMRYwFAYDVQQDEw13
d3cubWFlc(◕‿‿◕)IIBIjANBgkqhkiG9w0BAQEFAAOCAQ8AMIIBCgKCAQEAnr0R
XAGjybsym3IjKWsCec3/Gea9rptRELwjA5LMRHftSLB47nD1d+WktU34jEyQ/8GQ
MFsSVjaBIAhU4EfnGサンプルだよA3pWBxcEe|\ ___ /|G+FeIZpi71HSa4
FxqQVurIL/qxEkCoy23L0+17Ee5KGSiUNKjKI/人◕‿‿◕人\byGoDHQsIh4bH
hG7BItU0uFVnN3+dzQdyn9tLL1XEIcOvfXY7G5G/EQaiKDLbyUJQo9FWpYjxtdLx
Div0tIhehpK/zzpryTBwu3AkU1n1tp2fOSy6W/hDUvt7IjA90BYlqsIalK8io0hF
t7o+smIpvkdmb+6AewIDAQABoAAwDQYJKoZIhvcNAQEFBQADggEBAELWERkrZDxB
b1xt5NRPrhFPf0rBX/+tFo( つ◕ω◕)つIKwm4ZuuspvUBfj+OMmYFfe3BE7lU2S
cS/gFT9iSIWmT2hqV5jX9Z5iYqg6kYf7fBUlmmkeZjMw8v3XqSeST8U+6On+hfzp
7DGaYUO∩(⊙∀⊙)∩wJnUn/6AvYuqmLb3n3lhUE+f5t8xZl1FGGo7HwBDinCa8L
Gwfg6gmVYNKQpEJGhIL62+PKaWrMvcU5XHa9yYRMv4t41MyJ4tSXSk+TeO1ViWp8
VynoKbMhyლ(❛o❛ლ)AtNz0fYU/ga2v2hX6g1r7u54KuaIht5CSml2abTeyETCF67
8wpc7VVFwbQ=
-----END CERTIFICATE REQUEST-----

ちなみに申し込みフォームで証明書送付先メールアドレスがroot@www.maesan.jpとかになっちゃって困ったのですが、取りあえずそれで進めて問題なかったです。

で、申し込み終わってPayPalで決済も終わったのに5分どころか一晩連絡無しw
いやいや、最短5分とか書いてあったしw
まぁ営業時間外っぽい時間だったし、色々と流れ的にテンポが悪いとこもあったので、きっと中の人が手作業で進めてるところがあるような気がするw

取りあえず翌朝にメールがきまして、トラッキングページから送付先のメールアドレスも変更して、RapidSSLからメールが届き、承認すれば証明書(中間CAも)がメールにて送付されてきました。

サーバーの設定

SSLの設定ですが、www.maesan.jpとmaesan.jpをVirtualHostで分けたいなと思いましたが、debianのaptのapacheは2.2.9でSNIに対応するのはapache2.2.12以降らしいのでダメっぽい。しかし、ダメ元でやってみるw

まずはmod_gnutlsをインストール

#apt-get install libapache2-mod-gnutls

で、mod_gnutlsの設定
/etc/apache2/ports.conf
mod_sslのとこをコメントアウトして以下を追記

<IfModule mod_gnutls.c>
Listen 443
NameVirtualHost *:443
SSLStrictSNIVHostCheck off
</IfModule>

バーチャルホストの設定
/etc/apache2/sites-available/www.maesan.jp-ssl

<VirtualHost _default_:443>
ServerName www.maesan.jp
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/maesan.jp.crt ←証明書
SSLCertificateKeyFile /etc/apache2/ssl/maesan.jp.key ←秘密鍵
SSLCACertificateFile /etc/apache2/ssl/maesan.jp.cacrt ←中間証明書
以下略
</VirtualHost>

/etc/apache2/sites-available/maesan.jp-ssl

<VirtualHost _default_:443>
ServerName maesan.jp
SSLEngine on
SSLCertificateFile /etc/apache2/ssl/maesan.jp.crt ←証明書
SSLCertificateKeyFile /etc/apache2/ssl/maesan.jp.key ←秘密鍵
SSLCACertificateFile /etc/apache2/ssl/maesan.jp.cacrt ←中間証明書
以下略
</VirtualHost>

モジュールとサイトの有効化

#a2enmod gnutls
#a2dissite default-ssl
#a2ensite www.maesan.jp-ssl
#a2ensite maesan.jp-ssl
#/etc/init.d/apache2 restart

Syntax error on line 19 of /etc/apache2/ports.conf:
Invalid command ‘SSLStrictSNIVHostCheck’, perhaps misspelled or defined by a module not included in the server configuration
failed!

やっぱダメかw
SSLStrictSNIVHostCheckの行をコメントアウトして起動してみると動いた。

試しに https://maesan.jp/https://www.maesan.jp/ にアクセスしてみたらなんだかちゃんとVirtualHostで動いてるw
しかもWindows2000のIE6でも動いた!とりあえずおkとするw

まとめ

超格安のSSLですが、本当に大丈夫なのかと思いまして、古めの環境も含めてチェックしてみました。

おkだったもの
 Mac: Safari5.0.3, Firefox 3.6.14, Chrome 9.0.597.107, Opera 11.01
 Windows XP: IE8, Chrome 9.0.597.98, Firefox
 Windows 2000: Firefox 3.6.14, Opera 10.63
 iPhone

警告でたの
 Windows 2000: IE6

SNI(名前ベースのSSL VirtualHost)は全部いけた。というか本当に上の設定で正しいかどうかは不明なのであまり参考にしない方がイイかもw

VISTAと7が手元に無い+IE7を確認してないのでアレですが、とりあえずは使えるレベルなのではないでしょうか?
ただ、このブログのアクセス解析してもIE6が結構な割合でいるので(こんな技術系ブログでIE6のユーザーが多いのもどうかと思いますがw)、万人向けのネットショップとかだとためらってしまうかもしれないですね。XPのIE6で警告でなかったらおkかも知れませんね。

もし上記アドレスにアクセスして警告とか出る環境があればコメントかtweetしてもらえるとありがたいです!

身も蓋もないことをいうと、1,400円で簡単に証明できてしまうようなものなので自己署名のSSLとどれほどの違いがあるのかと思えてしまいますよねwww

追記:
 Windows XPでIE6の環境を作って試したら問題なくいけました。
 ついでにヨメの古いガラケーで試すとwww.maesan.jpはいけてmaesan.jpはムリだった。
 →正直コレはSNIの問題じゃないかと思ったり思わなかったり。。。

参考URL

エンジョイSSLダイレクト
Ubuntu で Apache 2.2 でマルチドメイン SSL を設定するには

Filed under: Internet,Linux,覚え書き — maesan 5:02 PM  Comments (2)

[Mac] phpでcurlが入って無かった

ちょっとお遊びでtwitter botでも作ろうかと思ってphpのOAuthライブラリのtwitteroauthを使おうと思ったら

PHP Fatal error: Call to undefined function curl_init() in /hogehogehogehoge/twitteroauth.php on line 199

って怒られた。

curlってwgetみたいなやつだっけ?
phpでそれ関係使ったこと無いので気付かなかったんだけど、phpでcurlを使えるようにしないとダメっぽい。
portでphp入れてたので以下でおkだった

$sudo port install php5-curl

Filed under: Internet,PHP,Programming — maesan 10:59 PM

WindowsでBasic認証のWebDAVをマウントできない件

ちょっとGB単位のファイルを遠隔地とやり取りしないと行けなくなって、なかなかオンラインストレージでそんな都合のいいのも少ないのでおウチのサーバーにWebDAVサーバー作っときゃイイんじゃね?って思ってやってみました。

サーバー構築方法

って言ってもApache2に標準でDAVのモジュール入っているので詳細は書きませんが、http.confとかでmod_davとmod_dav_fsが有効になってればおk
おウチのCentOSはデフォルトで有効になってた(前に自分でやったのかもしれないけど覚えてないw)
Debian系なら
a2enmod dav
a2enmod dav_fs
しとけばおk

んで設定を<Location>なり<Directory>なりでDavを指定する
今回はVirtualHostでやりたかったので以下の設定で試した

<VirtualHost *:80>
ServerAdmin admin@example.com
ServerName dav.example.com
DocumentRoot /home/dav/public
<Directory /home/dav/public>
Options Indexes FollowSymLinks MultiViews
AllowOverride None
Order allow,deny
allow from all
# ココからDAVの設定
Dav On
AuthType Basic
AuthName DAV
AuthUserFile /home/dav/.htpasswd
Require valid-user
</Directory>
</VirtualHost>

接続

Macの場合はFinderでcommand+kしたらネットワークのマウントできるので、URL入れてBasic認証のユーザーとパスワード入れたらおk、簡単

Windowsの場合にハマってしまった。
試したのはWindows7なのですが、マイコンピュータから「ネットワークの場所の追加」やったら「有効なフォルダではない」って言われるし、ネットワークから「ネットワークドライブの割当」ってやったら認証通らないし軽く途方に暮れた。。。

で、いろいろと調べてみるとどうやらWindowsの仕様ではWebDAVをマウントするためには、Basic認証の場合SSLでないとダメらしい。httpでBasic認証のWebDAVをマウントしたい場合はレジストリを書き換えればよいらしく、
¥HKEY_LOCAL_MACHINE¥SYSTEM¥CurrentControlSet¥Services¥WebClient¥Parameters
のBasicAuthLevelを2に書き換えればおk
書き換え後はコマンドプロンプトでwebclientを再起動したら接続できるようになりました。
>net stop webclient & net start webclient

取りあえず素直にSSLの設定をすることにします><

参考

windows7でBASIC認証のかかったWEBDAVにログインできません

Filed under: Internet,PC — maesan 12:28 PM

ロリポブログからWordPressにURLを変更せずに移行する

ロリポップの契約更新期限が来たのですが、メールはGoogle Apps使ってるし、基本的にテストサイト等はheteml使ってるし、ロリポップってこのblogくらいしか使わなくなっちゃったんですよね。
んで、そのままblogの為だけにまた1年更新するのも管理が面倒でもったいない気がするのでhetemlに一本化しようかと思ってロリポブログ→WordPressの移行をやってみた。
んでやっぱりURLが変更されるのもちょっと切ないので無理矢理URLを変更せずに移行(厳密には前のURLから辿れるように)した。

エクスポート

ロリポブログの「設定」→「エクスポート」でxml形式にて保存する。
で、そのままだとjugem形式なので一旦WordPressでインポート可能なMT形式を迂回する。
このサイト素晴らしい!JUGEM形式のブログデータをMovableType4形式に変換

画像はこのエクスポートではもちろん付いてこないので、ロリポブログの画像管理からチマチマと画像をダウンロードしとく。。。
とりあえずoption+クリック連打で保存した><
あと、WordPressだとカテゴリとかでURLが階層構造になるので、画像のパスが “images/xxx.png” とかになってるのを絶対パスの “/images/xxx.png” にしておく。
エクスポートしたファイルをエディタで置換!

インポート

WordPressの管理ページの「ツール」→「インポート」で「Movable Type and TypePad」をクリックしてさっきのファイルをアップロードする。
これだけだと画像がないので、記事の画像パスに合うようにルートフォルダにimagesってフォルダを作り、さっきダウンロードした画像達をftpとかでアップロードする。
WordPress的な画像の管理方法ではないのですが、イチイチ手作業でアップしてられないので気にしないことにする!

URLを保持する

とりあえずの移行だったらこれまでの手順でいけるのですが、数は少ないと思いますがリンク張ってくれたりブクマしてくれてる方もおられますので、前のURLから辿れるようにする。
ロリポブログの場合URLが http://ブログ/?eid=xxxxx って感じなのですが、そもそもこの記事のIDが引き継がれません><
かなり地味な作業になるのですが、記事のIDを手作業で振りなおす必要があります。

↓私はこんな手順でやりました
・ロリポブログの記事管理から記事の一覧をコピペして、Excelに貼っつける
・WordPressの記事IDを追記
・CSVで保存して適当なスクリプトでこんなSQL文を生成


update wp_posts set ID = xxxxxx where ID = yyy ;
update wp_comments set comment_post_ID = xxxxxx where comment_post_ID = yyy ;
update wp_term_relationships set object_id = xxxxxx where object_id = yyy ;
:
:

※wp_postsのGUIDにもURLが書いてあるのですが、どこで使うのかわからないので放置。。

ちなみにスクリプトはPythonで書いたこんなの(A列に本来の記事ID、H列にインポート後の記事IDとする)
改行コードはCRLFってコトで(MacのExcelの場合CRになるから注意)


for line in open("blog.csv"):
dat = line[:-2].split(',')
print "update wp_posts set ID =",dat[0]," where ID = ",dat[7],";"
print "update wp_comments set comment_post_ID = ",dat[0]," where comment_post_ID =",dat[7],";"
print "update wp_term_relationships set object_id = ",dat[0]," where object_id = ",dat[7],";"

これで記事IDが一致するのですが、WordPressのURLは http://ブログ/?p=xxxxx なので若干違う。
mod_rewriteとかで対応しようとしたのですが、どうもGETパラメータを含むURLをうまくrewriteできないので(mod_rewriteとか正規表現苦手です><)、かなり無理矢理感がありますがindex.phpを書き換えたw


if (!empty($_GET['eid'])) {
$id = $_GET['eid'];
header('HTTP/1.1 301 Moved Permanently');
header('Location: http://blog.maesan.jp/'.$id.'.html');
}

※これをindex.phpの先頭に追加で。
※パーマリンクの設定を %post_id%.html にしているのでこうしてますが、各自の設定でやってください。

まとめ

思ったよりは簡単に出来ましたが、それでも面倒です。。
やっぱり気をつけることは画像関係でしょうか、本来のWordPressの方法ではないので次に別のところとかに移行するときにまた大変になるような気はします。んでGUIDってフィールドも若干気にはなるw
なんというか、ブログ専用のサービスとか使うと始めるにはすごく楽なんですけど、いざというときに自由がきかなくて大変ですねぇ。

Filed under: Internet — maesan 7:08 PM

WordPress 3.0 + StatTraq 1.3.0 がインストールできない?

ダッシュボードのプラグインで簡単にインストールできたんだけど、正常に動作しない模様。
んでよく見るとテーブルが無いみたいなメッセージ発見。
どうやらインストールしたときにDBにテーブルがちゃんと作られていない感じ。
んでwp-stattraq/stattraq-install.phpを参考にテーブル直接作ってみた
実行したのは以下のSQL


CREATE TABLE `wp_stattraq` (
`line_id` int(11) NOT NULL auto_increment,
`session_id` varchar(128) NOT NULL default '0',
`access_time` DATETIME NOT NULL,
`ip_address` varchar(255) NOT NULL default '',
`url` varchar(255) NOT NULL default '',
`article_id` varchar(128) NOT NULL default '0',
`user_agent` varchar(255) NOT NULL default '',
`browser` varchar(64) default NULL,
`user_agent_type` INT DEFAULT '0' NOT NULL,
`referrer` varchar(255) default NULL,
`search_phrase` varchar(255) default NULL,
PRIMARY KEY (`line_id`)
);
ALTER TABLE `wp_stattraq` ADD INDEX ( `ip_address` );
ALTER TABLE `wp_stattraq` ADD INDEX ( `article_id` );
ALTER TABLE `wp_stattraq` ADD INDEX ( `access_time` );
CREATE TABLE wp_stattraq_options (
`option_name` varchar(255) NOT NULL default '',
`option_value` varchar(255) NOT NULL default '',
UNIQUE KEY `option_name` (`option_name`)
);
ALTER TABLE wp_stattraq CHANGE `access_time` `access_time` DATETIME DEFAULT NULL;

これで動いた。
環境によってはテーブル名とかたぶん変わってくるから注意ね〜

PHPによるWordPressカスタマイズブック―2.8対応 テンプレートの改造からプラグインの作成まで
藤本 壱
ソシム
売り上げランキング: 34837
おすすめ度の平均: 4.0

5 いままでのWP本では無かったパターンかも
4 index.phpとhome.phpの違いがわかる
2 いきなりこの本で学ぼうとするとわかりずらい
5 待ってましたの一冊
5 wpを骨までいじり倒したいと考えている人に

Filed under: Internet — maesan 3:27 PM

2001年のGoogle

なんかGoogleが10周年記念で2001年の検索ができるようになってるのよ
で、「前さん」でググったらトップに自分の昔のホームページの残骸が出てきて笑ろたw
今じゃGoogleのトップに検索されるなんてあり得なさすぎwwww
かなり懐かしくおもしろいのでみなさんも懐かしんでくださいな
http://www.google.com/search2001.html

Filed under: Internet — maesan 2:20 AM

今更ですが、iPhoneにMNPしてみました。

なんかホントに今更な感じですが携帯電話をiPhoneにしてみました。
まぁ発売日からずっと欲しいなぁとは思っていたのですが、並んでまで買うのもアレだしau使ってるし、電話番号変わるのめんどいし。。。とか思って腰が引けていました。
しかしながら、使ってる携帯がもう2年たつし、替え時かなぁとも思ってたのね。で、シャープの新しいauの携帯は良さそうだなぁって思ってauショップ行ったのですが、なんか決定打に欠けるというか、何というか。。。
前さんって、着うた・ワンセグ・お財布携帯・赤外線とか全く使わないし、携帯のメールもそんなに使わない人なことに気付いたわけです。じゃあiPhoneでイイじゃんwって感じですわw
それでもまぁなんか最近更にiPhoneたたかれ気味で、躊躇していたのですが、昨日子供を水遊びにつれてって、一緒に遊んでたら携帯を水没させてしまいましてw
んでこれを機会にとiPhoneにしてみました。
とりあえず使った感想は、
こんなめんどくさい携帯は日本じゃ売れへんってwww
もうメディアで語り尽くされた感がありますが、ホントその通りな感じでパソコンとかに疎くて興味ない人には全く使えないっていうか、たぶんウチのヨメも全く使いこなせないと思うし、多少パソコンわかってる人でもかなり大変なんじゃね?
携帯買ってきて、電源入れてもメールどころか電話も使えないんですよ?w
メールもi.softbank.jpのメールアドレス取得して、iPhoneのメーラーに設定入れないといけないし、一般人からしたら「送信メールサーバー?受信メールサーバー?何それ?」みたいな話で、特に設定しなくても何度か自動でトライして勝手にやってくれるけど、フツウのヒトからしたらマジ意味不明だと思われ。
でもね、逆にウチに帰ったらまずPCの電源入れるみたいな、3度のメシよりインターネッツなヒトにはたまらないガジェットだと思います。こんなにイロイロ酷評してますが、買った本人は大満足なわけでw
たぶんこの温度差が大きくて、評価が2分化されてるんだろうなぁって思いました。
まぁ一番ショックだったのは802.11nに非対応って知らなくて、WiFiつながんねぇよ不良品か?って思ってTime Capsule をb/g互換に設定変更したら繋がったのに凹んだ。
よく見たらAppleのページにはちゃんと「Wi-Fi (802.11b/g)」って書いてあるのなw

Filed under: Internet — maesan 7:44 AM
 iTunes Store(Japan)
 iTunes Store(Japan)
 iTunes Store(Japan)
 iTunes Store(Japan)
 iTunes Store(Japan)