Live Mixを作りました

liveってついてますが、特に曲順決めずに、
その場で考えてつないでいったので、こういう名前にしてます。

ときどき、こうやって練習してるのを録音して出してみようかなって思ってます。
いつまで続くかは不明ですが、できるだけやっていこうかと。

お聞き苦しいところもあるかもしれませんが、
よかったら聞いてみてください。

ここ数か月で買った曲が中心です。

PDTとかいうもの

http://www.thinkit.co.jp/article/73/3/

ラインデバッグができるのは、便利だと思う。
特にZendだと、例外がthrowされたら、全部Error_Controllerに行くから、
どこでエラーが起こったかを特定するのに、データ取得用の処理が必要。
(サービスとしてリリースするときは必ず必要だけれど)

ラインデバッグができたら、開発中は手間が低減される。
そこが魅力的。どのくらい使えるものなのか、試してみる価値はありそう。

ムームーDNS

このブログは、hetemlというサーバで運用しています。
co-hey.comのドメインは、ムームードメインで管理しています。

そのムームードメインで、ムームーDNSという機能が使えるようになりました。
今までは、co-hey.comにサブドメインを作っても、ヘテムルのページしか表示されなかったですが、
ムームーDNSを使うと、paperboy&co.のサービスなら、
co-hey.comのサブドメインを設定できるようになったのです。

言葉で説明するとわかりづらいですね。自分でも読んでてわかりづらいと思いました。
違うサービスを、同じサイトのURLのようにあつかえるのです。これも微妙ですね。

こういうことです。
https://life.co-hey.com (ヘテムル)
http://photo.co-hey.com (プチ)

やろうと思えば、http://blog.co-hey.comをJUGEM PLUSにすることも、
http://shop.co-hey.comを、Color Me Shop! Proにすることもできます。(売る物がないですが。)

MTもいいですが、JUGEM PLUSだと機能が随時追加されていくし、ポータルがあるから、
ブログを見に来る人の数も違ってきます。
私もJUGEMで、また趣旨の違ったブログを書き始めようかと考えています。
何について書くかがさっぱり浮かばないので、いつになるかは未定です。

ヘテムル、Color Me Shop! Pro、JUGEM PLUS、Grouptubeは
初期費用無料キャンペーンもやってるみたいです。
キャンペーンページはこちら



Zend Frameworkバージョンアップ

今まで使っていた、Zend Framework 1.0.3を、1.5.1にバージョンアップしました。

まだ細かいところは検証してませんが、最初に引っかかった問題を書いておきます。

今まで、下記の【1】のように書いていた index.php を、
【2】のように書き換えないと動かなかったです。
不便だなと感じましたが、1行の修正なので大した修正ではないです。
※ /xxx/yyy/xxx/ 配下に contrllersディレクトリが存在します

【1】

$add_path = . '/xxx/yyy/ZendFramework/library' . PATH_SEPARATOR
      . '/xxx/yyy/zzz';

ini_set('include_path', ini_get('include_path') . PATH_SEPARATOR . $add_path);

require_once('Zend/Loader.php');
Zend_Loader::loadClass('Zend_Controller_Front');

$front = Zend_Controller_Front::getInstance();
$front->setControllerDirectory('controllers')
         ->dispatch();

【2】

$add_path = . '/xxx/yyy/ZendFramework/library' . PATH_SEPARATOR
       . '/xxx/yyy/zzz';

ini_set('include_path', ini_get('include_path') . PATH_SEPARATOR . $add_path);

require_once('Zend/Loader.php');
Zend_Loader::loadClass('Zend_Controller_Front');

$front = Zend_Controller_Front::getInstance();
$front->setControllerDirectory('/xxx/yyy/zzz/controllers')
    ->dispatch();

相対パス、絶対パスでの指定では動作したのですが、
パス設定をした後に、パスを利用したディレクトリ指定ではNGでした。

.htacessでRewriteを可能にする

今作っているプログラムは、Zend Frameworkを利用しているので、
.htaccessが利用できる必要があります。

前回の記事で書いたphpMyAdminを設置した後、作りかけのプログラムを
サーバからダウンロードしてきて設置したところ、見事に動きません。
調べていくと、RewriteEngineが動いてない様子。

Apacheの設定に問題がありました。
configureのオプションも、httpd.confの記述も不足していました。
以下のサイトを参考に、Apacheのmakeをやりなおして解決!!

こちらの記事に書いていた configureの内容も修正してあります。
一番最後の “–enable-rewrite=shared” の部分が付け足したところです。

mod_rewriteを有効にする方法
http://memorva.jp/memo/linux/mod_rewrite.php

htaccessを有効にする方法
http://www.site-cooler.com/tips/apache_htaccess.htm
http://httpd.apache.org/docs/2.2/ja/mod/core.html#allowoverride

fetchRowとfetchAllの違い

fetchRow、fetchAllどちらもDBから行を取得するメソッドです。

相違点は以下

fetchRow
 1. 単一の行を取得
 2. 返り値の型は、Zend_Db_Table_Row
 3. 0件取得の場合は、nullを返却

fetchAll
 1. 複数の行を取得
 2. 返り値の型は、Zend_Db_Table_Rowset
 3. 0件取得の場合は、Zend_Db_Table_Rowsetを返却

注目するところは、3です。
fetchAllは、0件でもZend_Db_Table_Rowsetを返却します。
なので、取得の有無で、nullかどうかでは判定できません。

私はどちらもnullが返ってくると勘違いしていたので、ミスりました。

phpMyAdmin 2.11.6をインストール

Mac OS X (Leopard)に、phpMyAdmin 2.1.16をインストールしました。

普段は、ターミナルからコマンドラインで、DBは扱うのですが、
データのインポート、エクスポートは、phpMyAdminが楽だと思っているので。
たまに、alterコマンドで、カラムの型変換等のコマンドラインを忘れますが、
phpMyAdminがあれば、ど忘れしたときでも平気です。

簡単にインストールできたので、開発環境構築時についでに
インストールしておいて損はないと思います。

参考にさせていただいたページはこちらです。
http://www.kadoppe.net/2007/12/mac-os-xleopardphpmyadmin.html

VirtualHost設定

作成するサイトのURLを決め、hosts、VirtualHostにサーバ名を追加して、Apache再起動。

今回は、3つのVirrualHostを設定したのですが、この3つのドメイン名を打ち込んでも、
一番最初に記述してあるVirtualHostのDocumentRootを見にいってしまっている。

なんでだろう?30分くらい調べてたけど、よくわからなかったのです。
さきほど、再度調べていたら、もしかしたら NameVirtualHost の記述忘れな気がしてきました。

<VirtualHost xx>~</VirtualHost>の部分ばかり調べてて、頭から抜けてました。
そして、多分これ基本ですよね。自分のサーバ周りの知識のなさが浮き彫りに。。

早速、時間が取れたときに試してみます。

==== 追記 2008/05/03 ===
NameVirrualHostの記述を追記して、Apache再起動したら正常に動作しました。

環境構築一区切り

Apache2.0.61、mysql-5.1.23-rc、php-5.2.4のインストール終了。
http://localhost/でphpinfo();を表示できるところまで確認。
mysqlもターミナルからコマンドラインでなら接続可能なことも確認。

次は、phpプログラムからmysqlに接続できることを確認しよう。
あんまり理解は深まってはいないけど、前に進んでいる感じがうれしい。
configureのオプションって、迷いますね。

参考にさせていただいたのは、このあたりです。
http://www.kadoppe.net/2007/12/mac-os-xleopardxcode.html
http://www.kadoppe.net/2007/12/mac-os-xmysql5051.html
http://www.kadoppe.net/2007/12/mac-os-xleopardapache-2061-1.html
http://www.kadoppe.net/2007/12/mac-os-xleopardphp-512.html
http://hivelogic.com/articles/2007/11/installing-mysql-on-mac-os-x
http://d.hatena.ne.jp/heavenshell/20071114

configureは以下のとおりです

【mysql】

CC=gcc CFLAGS=”-O3 -fno-omit-frame-pointer” CXX=gcc CXXFLAGS=”-O3 -fno-omit-frame-pointer -felide-constructors -fno-exceptions -fno-rtti” ./configure –prefix=/opt/local/mysql –enable-assembler –with-mysqld-ldflags=-all-static -with-charset=utf8 –with-extra-charsets=complex –enable-thread-safe-client –enable-local-infile –disable-shared

【apache】

./configure –prefix=/opt/local/apache2 –enable-force-cgi-redirect –with-gd –enable-ftp –enable-memory-limit –with-ttf –enable-track-vars –enable-trans-sid –enable-zend-multibyte –enable-mbstring –enable-mbstr-enc-trans –enable-mbregex –enable-exif –with-curl –enable-soap –enable-so –enable-rewrite=shared

【php】

./configure –prefix=/opt/local/php –with-apxs2=/opt/local/apache2/bin/apxs –with-zlib=/opt/local –enable-calendar –enable-exif –enable-zend-multibyte –enable-mbstring –enable-mbregex –with-libxml-dir=/opt/local –with-mysql=/opt/local/mysql –with-jpeg-dir=/opt/local –with-png-dir=/opt/local –with-t1lib=/opt/local –with-iconv –with-iconv-dir=/usr –with-mcrypt=/opt/local –with-curl=/opt/local –with-freetype-dir=/opt/local –with-gettext=/opt/local –with-xmlrpc –with-pear –enable-soap –with-pdo-mysql=/opt/local/mysql –enable-cli