再生履歴集計システム、開発環境構築

先日、Zend Frameworkの設定を見直して、アクセスURLを変更したiTunes/iPodの再生履歴集計システムだけれども、出力(ビュー)のレイアウトを大きく変えたくなった。

これまでは、公開サーバ上で、細々と、直接公開しているソースを触ってきたけれども、それも効率の問題があるし、開発中に最新の情報が見れなくなるのも困る。

ということで、開発環境を構築してしまった。

まずは、ソースをSubversionのリポジトリに登録する。これはサーバにSubversion一式をインストールして、使っているファイルをリポジトリに登録するだけ。外からのアクセスは今のところ考えていないので、Webアクセスの必要はないから、RapidSVNをクライアントで使うことにしたので、リモートからSVNプロトコルでアクセス出きるよう、xinetdの設定だけした。

開発環境は、Apache, PHP5, Zend Framework, Smarty, PostgreSQLが必要になる。まぁ、Windowsでも無理ではないけれども、互換性と、インストールの楽さ、本番環境との同一性を考えてubuntuにした。ノートとデスクトップが手元にあるが、ノートにセットアップした。

一つ一つ、足りないものをapt-getでインストールして、足りないファイルをリポジトリに追加して、アクセス権設定して、などなど、いろいろやったが、最後の課題が、PHPからPostgreSQLにアクセスできない問題。

ググると、自分がubuntuのメーリングリストに質問していたスレッドがヒットした。当時はubuntu9.10。その時は、PostgreSQLのメジャーバージョンアップがあったりして、バージョンアップ環境と、クリアインストール環境の違いで設定の違いがあったようだ。PostgreSQLのエラーメッセージが日本語化されているはずなのにubuntuでは化けて読めないのは当時と変わらない現象。

結局、pg_hba.confでの認証設定をローカルネットワークに対して、trustに一つ一つ空けていく。公開サーバではないから問題はないであろう。で、最後、IPv6ローカルネット以外をtrustにした状態でもアクセスできず、まさかとは思ったけれども、IPv6ローカルネットに対するアクセスをtrustにしてPostgreSQLをリスタートしたところ、なぜかアクセスできた。内部はIPv6化されているってことか?

一つ勉強になった。ちなみに、リポジトリの中身は、公開ディレクトリ構造とは関係なくフラットにディレクトリを作った。ここに、apacheの公開ディレクトリからシンボリックリンクを貼ることできっちりアクセスできた。便利なものだ。Windowsだと無理だろう。Smartyテンプレートのコンパイル出力ディレクトリも、シンボリックリンクの先に、アクセス権777のディレクトリを作っておいたらビューが出力された。

とりあえず、ローカルの開発環境としては問題なさそうだ。DBは本番サーバから最新バックアップをpgAdminIIIで取ってレストアした。この時も、pgAdminIIIでレストアできず、ネットワーク関連オプションを消していってコマンドラインからpg_restoreを実行したのだから、IPv6が必要だったのかもしれない。本番サーバではIPv6ローカルネットワークも許可していた。ルータでブロックしているから問題ないのだが。

最初の変更は、ビューのテンプレートとCSS。プログラミングとはほど遠い。

コメント