農場主の日常

なんちゃってエンジニアの日常をつらづらと

«Prev || 1 | 2 | 3 |...| 17 | 18 | 19 || Next»

Nucleusの文字コード変更とサーバの移転

 先日、レンタルサーバの大規模アップデートがあり、最後に残った農場主の日常のサーバも3/25にめでたくアップデートされた。
xreaの大規模サーバアップデート
 運営しているサーバすべてUTF8のデータベースが標準になったので、サーバの統合とNucleusの文字コード変換(EUC→UTF8)をやってみた。かなり引っかかるかとは思ったけれど、思ったより簡単に移動できた。
 手順は以下。

NucleusのEUCからUTF8に乗り換え


  1. MySQLのバックアップを取り、ダンプされたmysql.dumpをエディタで開く
  2. 内部の、EUCの記載のある部分を、UTF8に置き換え
      例:
    • japanese-euc→japanese-utf8
    • charset=EUC-JP→charset=UTF8
    • encoding="EUC-JP"→encoding="UTF-8"
    • ja_JP.eucJP→ja_JP.utfJP
    • euc→utf8
  3. 文字コードをUTF8に変更して保存
  4. サーバに新しくUTF8でデータベースを作成
  5. 4で保存したmysql.dumpファイルをphpMyAdminなどでインポート
  6. プラグインなど、文字コードがEUCのものをUTF8に変換してサーバにアップロード(ファイルを上書き)
 
 この手順で、この「農場主の日常」をUTF化して復帰できた。

 サーバスペックがそろったので、使ってるサーバ代を下げるためにも、サーバの移動も合わせて行った。
» 続きを読む



xrea内でのサーバの移転

 私の借りているレンタルサーバxreaでは、大規模なサーバのアップデートが行われている。2つのサイトではそれが終了したのだけれど、もうあと4つのサイトはそれが5月の中旬以降になるようだ。
 それらのサイトの入っているサーバは、最近どうもとても重い感じで、更新が億劫になるほどだった。そういう状況じゃあ、サーバが新しくなっても負荷は変わらないだろうし、GWには作業を終えてしまいたいなと思っているので、GW前にサーバの移動をすることに。

 xrea内でのサーバの移動は、xrea側でも想定しているようで、方法が準備されている。
xreaでのサーバ移転・移動

 まず、xreaのサーバの管理画面から1つ無料サーバを借りる。
 その後、その無料サーバのアカウントを、7日間お試し有料アカウントにして、そのサーバの管理画面に入る。
 管理画面から、サーバ間コピーで古いサイトから新しいサイトにファイルをコピーする。

 最後に、データベースを古いサーバでダンプして、新しいサーバにインポート。
 データベースのアカウントやサーバのアカウントの名前やパスワードは、古いサーバと同一にしておくと楽。

 そんな感じで移転してみると、古いサーバとは雲泥の差。かなり表示が早くなった。
 移転したのは、以下の4サイト。
不況にトクトレ!
農場主の食道楽
農場主の漫遊記
駅から3分

 ついでにNucleusのアップデートもしようとしたら、1箇所のサイトで失敗。その前にフルバックアップをとっておいてよかった。
 バックアップは、Nucleus本体の機能として付いているデータベースバックアップはいまいち。本体のテーブルはいいのだけれど、あまりうまく作っていないプラグインのテーブルがバックアップされない場合がある。
 バックアップは、サーバのDBバックアップ、phpMyadminとやったけれど、古いサーバのやつは負荷が重い時間だとうまく行かなかった。phpMyadminのやつが使えた。ただ、レンタルサーバーで準備されてるやつはサーバごとにバージョンが違うので、新しいのをインストールしてやって、揃えてやる必要があるかも。

 しかし、Nucleusをすべて最新の3.64に揃えたのはいいけれど、プラグインはずいぶん更新されてるものが。アップデートマンドクサ。
 GWにまとめてやるのも今やるのもかかる時間は一緒だけれど、今はリストアップだけしておこう。


サーバのNucleusのアップデート

 うちが借りているサーバはすべてxreaなのだけれど、大幅なアップデートが行われた。
お知らせ(2012-XREA-NEW) - VALUE DOMAIN:バリュードメイン

 実はこれまで、借りている3箇所のサーバのうち2ヶ所のサーバのPHPのバージョンが4系だったため、Nucleusのアップデートが出来なかった。そういうわけで、Nucleusをアップデートしてみようと思う。
"必要なシステム
PHP5以上(Version 5.0.6以上)が稼動しているWebサーバー
そのWebサーバーからアクセスできるMySQLデータベース(Version 4.x以上)"
downloads - Nucleus CMS Japan

 サーバーがアップデートされてパワーアップしたのはいいけど、FTP が不定期に切れるのは相変わらず。フルバックアップするのに付ききりで数時間かかった。
 バックアップは、サーバの全ファイルとデータベース。データベースは、Nucleusのバックアップはプラグインによって信用出来ないので、phpMyAdminやサーバのバックアップ機能を使う。

 それが終わったら、nucleus本体とデータベースのアップデート。
 ちなみに、古いバージョンから最新の3.64にアップデートする場合、文字化けが発生することがあるらしい。確かに、新しいサーバに古いサーバからコピーしたときは、文字化けの問題があったのでドキドキ。
 
 手順は、アップグレードスクリプトを動かして、そのあと新しくなったファイルを上書きするだけ。実に簡単。
 そしてアクセスしてみると、今までと同じトップページが。なんだか拍子抜け。

 ただ、一部URLがおかしくなる問題が出たので、これを機会にNP_MagicalURLからNP_CustomURLに変更。URLがわかりやすくなったかも。その制限で、古いURLでアクセスできなくなったものがかなり。Googlebotが連続で持って行っているよ。

 GoogleSitemapでエラーが出なければこれで行くか。どうせ、あんまり影響のないページばかりだし。

Google Maps APIを使うプラグインをV3対応に

 基本的に、うちのサイトで使用しているGoogleMapsAPIを使うプラグインは、V2をベースで使っている。
 V2はまだ使えるけど、1年くらいまえに廃止になってて、今はV3だそうだ。
 じゃあ、いきなり使えなくなる前に、置き換えをしようかなと調査。コードに互換性が無いようなので、使うなら書き換えないといけない。

 しかし、宣言方法が変わるだけで、使えなくなった機能はなさそうな感じ。
 関数の大まかな流れは変更しないで、V3仕様に書き方を換えるだけ。

 一番良かったのは、四角の範囲指定すると、その範囲が入るようにズームを調整してくれる機能は素晴らしい。別に計算してたルーチンを削除できる。

 たとえば、
sort($xarray);
$maxgap = count($xarray)-1;
if($maxgap==0){
$centerx = $xarray[$maxgap];
$centery = $bottom + ($top - $bottom);
$viewmap .= " var center = new google.maps.LatLng($centery,$centerx);\n";
$viewmap .= " map.setCenter(center);\n";
} else {
$viewmap .= " var bosw = new google.maps.LatLng($bottom,$xarray[0]);\n";
$viewmap .= " var bone = new google.maps.LatLng($top,$xarray[$maxgap]);\n";
$viewmap .= " var bounds = new google.maps.LatLngBounds(bosw,bone);\n";
$viewmap .= " map.fitBounds(bounds);\n";
}

 のように、範囲の最大値と最小値を指定してやれば、アイコンを含んだその範囲がマップ内に表示されるように調整してくれる。
 NP_GoogleMapsなんかでは、大体1.1倍とか1.2倍とか計算してズームを指定していたんだけどね。
 使い勝手としては、表示が速くなったのと、ストリートビューが使えるようになったことか。住所変換と経路表示機能はまだ試してないけれど、できたら面白そう。

 そんな感じで、旅行ブログをGoogleMAPSAPI V3に対応させた。ストリートビューを表示すると、写真撮った場所周辺が見回せておもろい。

久々にサブカテゴリの調整

 どうもずっと前から、たぶんNucleusのバージョンをアップデートしたときから、MagicalURLを使っているサイトでサブカテゴリの絞込みが行われていなかった模様。

 MagicalURLでは、.htaccessファイルで変数にサブカテゴリーのIDが入るように細工をしているのだけれど、NP_ MultipleCategories側で、正しく受け取れて居なかった模様。
 ちなみに、NP_CustomURLを使ってるサイトは正しく表示される。

 修正はNP_ MultipleCategories側で、サブカテゴリIDを変数に入力している部分に細工をして終了。これで正しく表示されるようになった。

 しかし、何で気づかなかったんだろう。

«Prev || 1 | 2 | 3 |...| 17 | 18 | 19 || Next»

↑ PAGE TOP