2014年01月

CentOS6.4におけるPHP5.3からPHP5.5への移行方法について

CentOSのバージョン確認方法についてはCentOSのバージョン確認コマンドとアーキテクチャ確認コマンド | mawatari.jpを参照

$ cat /etc/redhat-release
CentOS release 6.4 (Final)
PHP5.5への移行方法についてはPHP 5.5 on CentOS/RHEL 6.4 and 5.9 via Yum | Webtatic.comを参照

# yum install php55w
とすると、 php-commonがconcliftしていると怒られますので、私は
# yum remove php-common

========================================================================================================================
 Package                     Arch                  Version                               Repository                Size
========================================================================================================================
Removing:
 php-common                  x86_64                5.3.19-1.el6.remi                     @remi                    6.3 M
Removing for dependencies:
 php                         x86_64                5.3.19-1.el6.remi                     @remi                    7.7 M
 php-cli                     x86_64                5.3.19-1.el6.remi                     @remi                    6.7 M
 php-devel                   x86_64                5.3.19-1.el6.remi                     @remi                     10 M
 php-gd                      x86_64                5.3.19-1.el6.remi                     @remi                    672 k
 php-ldap                    x86_64                5.3.19-1.el6.remi                     @remi                    105 k
 php-mbstring                x86_64                5.3.19-1.el6.remi                     @remi                    4.1 M
 php-mysql                   x86_64                5.3.19-1.el6.remi                     @remi                    448 k
 php-pdo                     x86_64                5.3.19-1.el6.remi                     @remi                    353 k
 php-pear                    noarch                1:1.9.4-12.el6.remi                   @remi                    2.2 M
 php-pgsql                   x86_64                5.3.19-1.el6.remi                     @remi                    315 k
 php-xml                     x86_64                5.3.19-1.el6.remi                     @remi                    630 k
 phpmyadmin                  noarch                2.11.11.3-2.el6.rf                    @rpmforge                 13 M

Transaction Summary
========================================================================================================================
Remove       13 Package(s)
で、php-common他5.3のphpのパッケージを消してから
# yum --enablerepo=remi,epel,rpmforge install php55w-devel php55w-pear php55w-xml php55w-pgsql php55w-gd php55w-ldap
php55w-opcache php55w-mbstring php55w-mysql php55w-pdo php55w-snmp php55w-soap php55w-xmlrpc phpmyadmin ======================================================================================================================== Package Arch Version Repository Size ======================================================================================================================== Installing: php55w-devel x86_64 5.5.3-1.w6 webtatic 2.5 M php55w-gd x86_64 5.5.3-1.w6 webtatic 134 k php55w-ldap x86_64 5.5.3-1.w6 webtatic 31 k php55w-mbstring x86_64 5.5.3-1.w6 webtatic 930 k php55w-mysql x86_64 5.5.3-1.w6 webtatic 106 k php55w-opcache x86_64 5.5.3-1.w6 webtatic 85 k php55w-pdo x86_64 5.5.3-1.w6 webtatic 91 k php55w-pear noarch 1:1.9.4-7.w6 webtatic 389 k php55w-pgsql x86_64 5.5.3-1.w6 webtatic 83 k php55w-snmp x86_64 5.5.3-1.w6 webtatic 29 k php55w-soap x86_64 5.5.3-1.w6 webtatic 193 k php55w-xml x86_64 5.5.3-1.w6 webtatic 142 k php55w-xmlrpc x86_64 5.5.3-1.w6 webtatic 41 k phpmyadmin noarch 2.11.11.3-2.el6.rf rpmforge 2.7 M Installing for dependencies: php55w x86_64 5.5.3-1.w6 webtatic 2.5 M php55w-cli x86_64 5.5.3-1.w6 webtatic 2.4 M php55w-common x86_64 5.5.3-1.w6 webtatic 1.2 M Transaction Summary ======================================================================================================================== Install 17 Package(s)
で、全部入れ直したのですが、
# yum replace php-common --replace-with=php55w-common
というコマンドで置き換えができるのですね。
私は試していないのでなんとも言えないのですが。

インストールが終わったら/etc/php.iniを書き換えます。

pgpool_switch_xlogを実行してもアーカイブログファイルを生成しない

要旨

pgpool でオンラインリカバリを使用する際にインストールするC言語関数は、pg_dumpallの吐き出しを新しくinitdbしたDBにインストールするだけでは移行されません。
initdbしたDBに対して個別にC言語関数のインストールをしましょう。


詳細

新しいverのPostgreSQLにデータを移行する場合、pg_dumpを利用したダンプとリストア、あるいはpg_upgradeの利用が必要です

例えば、古いVerのPostgreSQLが5432で動いていて、新しいVerのPostgreSQLが5434で動いている場合
pg_dumpall -p 5432 | psql -d postgres -p 5434
とすることでデータを移行できます。

しかし、pgpool_switch_xlog関数は中途半端に移行されてしまうので、データを移行する前か後にC言語関数のインストールが必要です。

pg_dumpall -p 5432 | psql -d postgres -p 5434とすることで、pgpool_switch_xlog関数自体はインストールされます。\dfで表示されることを確認しました。
しかし、実際に pgpool_switch_xlog関数を実行するといつまでたっても応答が返ってこず、またアーカイブログも所定のフォルダに生成されませんでした。

C言語関数のインストールを再度実施することで解決しました。

※なぜ、再度インストールする必要があるのかは分かりません…
 

性別をデータベースで持つ場合のコードについて

性別の情報をデータベースに持つことはよくあることかなと思います。
ErogameScapeでもユーザーさんの情報のテーブルとキャラクターの情報のテーブルに性別の情報を持っています。

ユーザーさんの情報テーブルの性別はBOOLEAN型で、TRUEが男性、FALSEが女性、NULLが未設定となっています。
キャラクターの情報テーブルの性別はTEXT型で、男性/女性/両性/不明/公式情報なし、となっています。

先日、みんなビックデータビックデータって言ってるけど 名寄せとかどうしてんの?を読み、ヒトの性別の表記のためのコードの標準がISOで定められていることを知りました。
ISOでは
  • 0 = not known(不明)
  • 1 = male(男性)
  • 2 = female(女性)
  • 9 = not applicable(適用不能)
と設定することになっています。

次に何か作る際にはISOにあわせておこう…と思いました。 

中井悦司 『プロのための Linuxシステム・10年効く技術』 技術評論社 2012 を読みました

プロのための Linuxシステム・10年効く技術を読みました。
発売時に買ったのですが、本が厚いし、内容が重そうなので、今まで放置していました。
最近、本を読むためのまとまった時間を確保できましたので、読みました。



とてもよい内容でした。買って良かったです。この本は3部作で、3部作の最後の本でしたので、他2冊も早速購入しました。いつ読めるか分かりませんが…

私は仕事でLinuxを使うことは一切なくて、ErogameScapeを運用するためだけにLinuxを使っています。
どの分野もそうですが、初心者向けの本はあふれかえっていますが、初心者からステップアップして次に読んだ方がいいという本はなかなかない…と思っています。

この本は、仕事でLinuxを使っていないから他人から学ぶ機会はないけど、Linuxを長年扱っている…方が読むととても知見に溢れていて学ぶ事が多いと思います。

以下、章立てと内容です。

第1章 知らないと損するぞ! 押さえておきたいLinux内部構造

「ディスク管理」「メモリ管理」「プロセス管理」について記載されています。今までなんとなくしか知らなかったことが「ああ、そうだったのか」とすっと入ってきます。他の章もそうですが、一つの項目が滅茶苦茶丁寧に書いてあることと、まるで説明を受けているかのような感覚になります。


第3章 10番勝負! 自作スクリプトでコマンド活用

Linuxを扱っているのであれば自作スクリプトを書くことはつまにあると思いますし、一度はbashの本を読んだりしているんじゃなかろうと思います。この章はスクリプトの書き方について、実践的にとても丁寧に説明がなされます。Linuxを私用で10年以上使っていますし、スクリプトの書き方の本も読んだ…あー、もう何年も前になりますが…のですが、「あー、そうやって書くのかー」とか「あー、そういう書き方もできるんだー」と発見がありました。

第4章 最後の砦! カーネルソースを読む

カーネルのソースを読むことは多分ない…と思いますが、カーネルに限らず何かのソースを読むことはあるのかなあと思います。PHPではじめてフレームワークを使ったとき、マニュアルに全部書いてあるわけじゃないので、フレームワークを使う際にはソースを読むことは必要かなと思います。
この章は、どうやってソースを読むのか?が非常に丁寧に書かれています。
よく「わからなかったらソースを読め」と書いてありますが、じゃあ具体的にどうやってソースを読むのか…というドキュメントはなかったんじゃなかろうか…と思います。
この章は、「ああ、こうやってソースは読むんだ…」ということが、よく分かります。
仕事で出来る先輩がいたら「どうやって読むんですか」と聞けますが、仕事でもないとなかなか聞く機会はないと思いますが、この章を読めばいけると思います。

第5章 一歩先を行く! RHEL6新機能の総まとめ

Upstartとanacron、この文書を読んで全貌を理解しました。
anacronは「なんかcrontabのところ見るとあるけど、なんなのかなー」程度にしか思っていませんでした…
PHPとかPostgtreSQLはVerUPのたびに、何が変わったのかを追っていますが、CentOSは何がかわったのか等を追っていなかったので助かりました…

本当に一つ一つの項目が丁寧で、まるで誰かに教えて貰っているような感覚に陥る本です。
お勧めです。
 
記事検索