「プログラミングのお勉強Blog/2005年09月24日/PHP 5.0.4 から Firebird 1.5 へのアクセス環境構築」の編集履歴(バックアップ)一覧はこちら

プログラミングのお勉強Blog/2005年09月24日/PHP 5.0.4 から Firebird 1.5 へのアクセス環境構築」(2009/09/26 (土) 11:45:25) の最新版変更点

追加された行は緑色になります。

削除された行は赤色になります。

#blognavi PHPはFirebirdへの接続機能が組み込まれているらしい。 ということで、環境を構築してみた。 ** PHPバージョンの確認 まずは、test.php をつくりバージョンを確認。 test.phpの内容: <?php phpinfo(); ?> test.phpを /var/www/htmlに保存する。 これでブラウザからtest.phpをアクセスすることで、 バージョンが5.0.4ということがわかる。 RPMコマンドで確認する場合は、下記のとおり。 # rpm -q php php-5.0.4-10 ** ソースパッケージのダウンロード&編集 まずはこのPHPのソースパッケージをダウンロードする。 # wget http://ftp.riken.go.jp/Linux/fedora/core/updates/4/SRPMS/php-5.0.4-10.3.src.rpm --16:05:10-- http://ftp.riken.go.jp/Linux/fedora/core/updates/4/SRPMS/php-5.0.4-10.3.src.rpm => `php-5.0.4-10.3.src.rpm' ftp.riken.go.jp をDNSに問いあわせています... 134.160.38.1 ftp.riken.go.jp[134.160.38.1]:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 6,078,201 [application/x-wais-source] 100%[==============================================>] 6,078,201 8.79M/s 16:05:11 (8.78 MB/s) - `php-5.0.4-10.3.src.rpm' saved [6,078,201/6,078,201] 次にソースファイルをインストール。 # mkdir /usr/src/redhat # mkdir /usr/src/redhat/SOURCES # rpm -ivh php-5.0.4-10.3.src.rpm 1:php ########################################### [100%] # /usr/src/redhat/SPECS/php.spec を下記のとおり編集する %{?_with_ibase:--with-interbase=shared,/opt/interbase} \ 上記を %{?_with_ibase:--with-interbase=shared,/opt/firebird} \ に編集。 ここでパッケージをリビルド ところが、パッケージをリビルドするrpmbuildコマンドがインストールされていなかった。 ** rpmbuild のインストール 下記コマンドでrpmbuildをインストール # yum -y install rpm-build ログ Setting up Install Process Setting up repositories updates-released 100% |=========================| 951 B 00:00 extras 100% |=========================| 1.1 kB 00:00 base 100% |=========================| 1.1 kB 00:00 Reading repository metadata in from local files Parsing package install arguments Resolving Dependencies --> Populating transaction set with selected packages. Please wait. ---> Downloading header for rpm-build to pack into transaction set. rpm-build-4.4.1-22.i386.r 100% |=========================| 13 kB 00:00 ---> Package rpm-build.i386 0:4.4.1-22 set to be updated --> Running transaction check Dependencies Resolved ============================================================================= Package Arch Version Repository Size ============================================================================= Installing: rpm-build i386 4.4.1-22 updates-released 513 k 中略 Installed: rpm-build.i386 0:4.4.1-22 Complete! これでインストールされた。 **PHPパッケージのリビルド 下記コマンドでパッケージのリビルドテスト # rpmbuild -bc /usr/src/redhat/SPECS/php.spec cat: /usr/include/httpd/.mmn: そのようなファイルやディレクトリはありません エラー: Failed build dependencies: bzip2-devel is needed by php-5.0.4-10.3.i386 curl-devel >= 7.9 is needed by php-5.0.4-10.3.i386 db4-devel is needed by php-5.0.4-10.3.i386 expat-devel is needed by php-5.0.4-10.3.i386 gmp-devel is needed by php-5.0.4-10.3.i386 aspell-devel >= 0.50.0 is needed by php-5.0.4-10.3.i386 httpd-devel >= 2.0.46-1 is needed by php-5.0.4-10.3.i386 libjpeg-devel is needed by php-5.0.4-10.3.i386 libpng-devel is needed by php-5.0.4-10.3.i386 pam-devel is needed by php-5.0.4-10.3.i386 libstdc++-devel is needed by php-5.0.4-10.3.i386 openssl-devel is needed by php-5.0.4-10.3.i386 pcre-devel >= 4.5 is needed by php-5.0.4-10.3.i386 libtool >= 1.4.3 is needed by php-5.0.4-10.3.i386 gcc-c++ is needed by php-5.0.4-10.3.i386 krb5-devel is needed by php-5.0.4-10.3.i386 libc-client-devel is needed by php-5.0.4-10.3.i386 cyrus-sasl-devel is needed by php-5.0.4-10.3.i386 openldap-devel is needed by php-5.0.4-10.3.i386 mysql-devel >= 4.1.0 is needed by php-5.0.4-10.3.i386 postgresql-devel is needed by php-5.0.4-10.3.i386 unixODBC-devel is needed by php-5.0.4-10.3.i386 libxml2-devel is needed by php-5.0.4-10.3.i386 net-snmp-devel is needed by php-5.0.4-10.3.i386 libxslt-devel >= 1.0.18-1 is needed by php-5.0.4-10.3.i386 libxml2-devel >= 2.4.14-1 is needed by php-5.0.4-10.3.i386 ncurses-devel is needed by php-5.0.4-10.3.i386 gd-devel is needed by php-5.0.4-10.3.i386 freetype-devel is needed by php-5.0.4-10.3.i386 これだけのパッケージが足りないらしい。。。。。。。 それぞれyumでインストール。 例) # yum -y install bzip2-devel パッケージのリビルドにはFirebird(interbase)のオプションが有効になるようにしなくてはならないがSPECファイルの内容からどう引数を書けばよいかがわからなかった。 そこで、探したのが下記。 https://bugzilla.redhat.com/bugzilla/long_list.cgi?buglist=164286 ここを参考に下記コマンドでリビルド # rpmbuild --define '_with_ibase 1' -bb /usr/src/redhat/SPECS/php.spec ここで約30分程度かかった。 /usr/src/redhat/RPMS/i386 の下にRPMファイルが作成される。 php-interbase-5.0.4-10.3.i386.rpm も作成されているので成功しているようだ。 ** パッケージのインストール まずは、依存関係の問題等があるといやなので、インストール済みのPHPをアンインストールする。 # yum remove php OK。つぎにリビルドしたパッケージをインストールする。 # rpm -ivh /usr/src/redhat/RPMS/i386/php*.i386.rpm エラー: Failed dependencies: libfbclient.so.1 is needed by php-interbase-5.0.4-10.3.i386 エラー発生。libfbclient.so.1が無いというエラー。 しかし、実際は存在している。 # find / -name libfbclient.so.1 /opt/firebird/lib/libfbclient.so.1 /usr/lib/libfbclient.so.1 libfbclient.so.1の参照もとのlibfbclient.so.1.5.2 に実行権限が無いので実行権限を付与。 # cd /opt/firebird/lib # chmod guo+x * 再度インストールしたが同様のエラー。 そこで、ちょっと乱暴だが、依存性を無視してインストールしてみる。 # rpm -ivh --force --nodeps /usr/src/redhat/RPMS/i386/php*.i386.rpm これで一応インストールだけは出来た。 次にApacheを起動する。 # cd /etc/init.d # ./httpd start httpd を起動中: [ OK ] # 前にバージョンチェックした test.phpに再度アクセス。無事バージョンが表示される。 次にsample.phpを作成。 内容: <? $host="localhost:/opt/firebird/examples/employee.fdb"; $user="SYSDBA"; $password="Password"; $command="SELECT * FROM JOB"; $conn = ibase_connect ($host,$user,$password); $result = ibase_query ($conn,$command); while ($row = ibase_fetch_object ($result)) { print "$row->JOB_CODE, $row->JOB_COUNTRY, $row->JOB_TITLE, $row->MAX_SALARY<br>\n"; } ibase_free_result($result); ibase_close ($conn); ?> これで無事interbaseオプションが有効になっていれば、sample.phpは動くはず。 ブラウザから、sample.phpにアクセス。 下記の結果が表示される。 CEO, USA, Chief Executive Officer, 250000.00 CFO, USA, Chief Financial Officer, 140000.00 VP, USA, Vice President, 130000.00 Dir, USA, Director, 120000.00 Mngr, USA, Manager, 100000.00 Mngr, USA, Manager, 60000.00 Admin, USA, Administrative Assistant, 55000.00 Admin, USA, Administrative Assistant, 40000.00 Admin, England, Administrative Assistant, 26800.00 PRel, USA, Public Relations Rep., 65000.00 Mktg, USA, Marketing Analyst, 80000.00 Mktg, USA, Marketing Analyst, 50000.00 Accnt, USA, Accountant, 55000.00 Finan, USA, Financial Analyst, 85000.00 Eng, USA, Engineer, 110000.00 Eng, USA, Engineer, 90000.00 Eng, Japan, Engineer, 9720000.00 Eng, USA, Engineer, 65000.00 Eng, England, Engineer, 43550.00 Eng, USA, Engineer, 35000.00 Doc, USA, Technical Writer, 60000.00 Doc, USA, Technical Writer, 40000.00 Sales, USA, Sales Co-ordinator, 70000.00 Sales, England, Sales Co-ordinator, 46900.00 SRep, USA, Sales Representative, 100000.00 SRep, England, Sales Representative, 67000.00 SRep, Canada, Sales Representative, 132000.00 SRep, Switzerland, Sales Representative, 149000.00 SRep, Japan, Sales Representative, 10800000.00 SRep, Italy, Sales Representative, 168000000.00 SRep, France, Sales Representative, 591000.00 OK! 一部依存関係のところが解決できていないが無事に PHP5.0.4からFirebird1.5へアクセスできた。 依存関係等無事にクリアした方がいらしたら是非コメントをいただけると助かります。 以上。 #right{ カテゴリ: &#x5b;[[Firebird>プログラミングのお勉強Blog/カテゴリ/Firebird]]&#x5d; - &trackback() - 2005年09月24日 20:05:00 } #comment(nostyle,nsize8,size30) #blognavi
#blognavi PHPはFirebirdへの接続機能が組み込まれているらしい。 ということで、環境を構築してみた。 ** PHPバージョンの確認 まずは、test.php をつくりバージョンを確認。 test.phpの内容: <?php phpinfo(); ?> test.phpを /var/www/htmlに保存する。 これでブラウザからtest.phpをアクセスすることで、 バージョンが5.0.4ということがわかる。 RPMコマンドで確認する場合は、下記のとおり。 # rpm -q php php-5.0.4-10 ** ソースパッケージのダウンロード&編集 まずはこのPHPのソースパッケージをダウンロードする。 # wget http://ftp.riken.go.jp/Linux/fedora/core/updates/4/SRPMS/php-5.0.4-10.3.src.rpm --16:05:10-- http://ftp.riken.go.jp/Linux/fedora/core/updates/4/SRPMS/php-5.0.4-10.3.src.rpm => `php-5.0.4-10.3.src.rpm' ftp.riken.go.jp をDNSに問いあわせています... 134.160.38.1 ftp.riken.go.jp[134.160.38.1]:80 に接続しています... 接続しました。 HTTP による接続要求を送信しました、応答を待っています... 200 OK 長さ: 6,078,201 [application/x-wais-source] 100%[==============================================>] 6,078,201 8.79M/s 16:05:11 (8.78 MB/s) - `php-5.0.4-10.3.src.rpm' saved [6,078,201/6,078,201] 次にソースファイルをインストール。 # mkdir /usr/src/redhat # mkdir /usr/src/redhat/SOURCES # rpm -ivh php-5.0.4-10.3.src.rpm 1:php ########################################### [100%] # /usr/src/redhat/SPECS/php.spec を下記のとおり編集する %{?_with_ibase:--with-interbase=shared,/opt/interbase} \ 上記を %{?_with_ibase:--with-interbase=shared,/opt/firebird} \ に編集。 ここでパッケージをリビルド ところが、パッケージをリビルドするrpmbuildコマンドがインストールされていなかった。 ** rpmbuild のインストール 下記コマンドでrpmbuildをインストール # yum -y install rpm-build ログ Setting up Install Process Setting up repositories updates-released 100% |=========================| 951 B 00:00 extras 100% |=========================| 1.1 kB 00:00 base 100% |=========================| 1.1 kB 00:00 Reading repository metadata in from local files Parsing package install arguments Resolving Dependencies --> Populating transaction set with selected packages. Please wait. ---> Downloading header for rpm-build to pack into transaction set. rpm-build-4.4.1-22.i386.r 100% |=========================| 13 kB 00:00 ---> Package rpm-build.i386 0:4.4.1-22 set to be updated --> Running transaction check Dependencies Resolved ============================================================================= Package Arch Version Repository Size ============================================================================= Installing: rpm-build i386 4.4.1-22 updates-released 513 k 中略 Installed: rpm-build.i386 0:4.4.1-22 Complete! これでインストールされた。 **PHPパッケージのリビルド 下記コマンドでパッケージのリビルドテスト # rpmbuild -bc /usr/src/redhat/SPECS/php.spec cat: /usr/include/httpd/.mmn: そのようなファイルやディレクトリはありません エラー: Failed build dependencies: bzip2-devel is needed by php-5.0.4-10.3.i386 curl-devel >= 7.9 is needed by php-5.0.4-10.3.i386 db4-devel is needed by php-5.0.4-10.3.i386 expat-devel is needed by php-5.0.4-10.3.i386 gmp-devel is needed by php-5.0.4-10.3.i386 aspell-devel >= 0.50.0 is needed by php-5.0.4-10.3.i386 httpd-devel >= 2.0.46-1 is needed by php-5.0.4-10.3.i386 libjpeg-devel is needed by php-5.0.4-10.3.i386 libpng-devel is needed by php-5.0.4-10.3.i386 pam-devel is needed by php-5.0.4-10.3.i386 libstdc++-devel is needed by php-5.0.4-10.3.i386 openssl-devel is needed by php-5.0.4-10.3.i386 pcre-devel >= 4.5 is needed by php-5.0.4-10.3.i386 libtool >= 1.4.3 is needed by php-5.0.4-10.3.i386 gcc-c++ is needed by php-5.0.4-10.3.i386 krb5-devel is needed by php-5.0.4-10.3.i386 libc-client-devel is needed by php-5.0.4-10.3.i386 cyrus-sasl-devel is needed by php-5.0.4-10.3.i386 openldap-devel is needed by php-5.0.4-10.3.i386 mysql-devel >= 4.1.0 is needed by php-5.0.4-10.3.i386 postgresql-devel is needed by php-5.0.4-10.3.i386 unixODBC-devel is needed by php-5.0.4-10.3.i386 libxml2-devel is needed by php-5.0.4-10.3.i386 net-snmp-devel is needed by php-5.0.4-10.3.i386 libxslt-devel >= 1.0.18-1 is needed by php-5.0.4-10.3.i386 libxml2-devel >= 2.4.14-1 is needed by php-5.0.4-10.3.i386 ncurses-devel is needed by php-5.0.4-10.3.i386 gd-devel is needed by php-5.0.4-10.3.i386 freetype-devel is needed by php-5.0.4-10.3.i386 これだけのパッケージが足りないらしい。。。。。。。 それぞれyumでインストール。 例) # yum -y install bzip2-devel パッケージのリビルドにはFirebird(interbase)のオプションが有効になるようにしなくてはならないがSPECファイルの内容からどう引数を書けばよいかがわからなかった。 そこで、探したのが下記。 https://bugzilla.redhat.com/bugzilla/long_list.cgi?buglist=164286 ここを参考に下記コマンドでリビルド # rpmbuild --define '_with_ibase 1' -bb /usr/src/redhat/SPECS/php.spec ここで約30分程度かかった。 /usr/src/redhat/RPMS/i386 の下にRPMファイルが作成される。 php-interbase-5.0.4-10.3.i386.rpm も作成されているので成功しているようだ。 ** パッケージのインストール まずは、依存関係の問題等があるといやなので、インストール済みのPHPをアンインストールする。 # yum remove php OK。つぎにリビルドしたパッケージをインストールする。 # rpm -ivh /usr/src/redhat/RPMS/i386/php*.i386.rpm エラー: Failed dependencies: libfbclient.so.1 is needed by php-interbase-5.0.4-10.3.i386 エラー発生。libfbclient.so.1が無いというエラー。 しかし、実際は存在している。 # find / -name libfbclient.so.1 /opt/firebird/lib/libfbclient.so.1 /usr/lib/libfbclient.so.1 libfbclient.so.1の参照もとのlibfbclient.so.1.5.2 に実行権限が無いので実行権限を付与。 # cd /opt/firebird/lib # chmod guo+x * 再度インストールしたが同様のエラー。 そこで、ちょっと乱暴だが、依存性を無視してインストールしてみる。 # rpm -ivh --force --nodeps /usr/src/redhat/RPMS/i386/php*.i386.rpm これで一応インストールだけは出来た。 次にApacheを起動する。 # cd /etc/init.d # ./httpd start httpd を起動中: [ OK ] # 前にバージョンチェックした test.phpに再度アクセス。無事バージョンが表示される。 次にsample.phpを作成。 内容: <? $host="localhost:/opt/firebird/examples/employee.fdb"; $user="SYSDBA"; $password="Password"; $command="SELECT * FROM JOB"; $conn = ibase_connect ($host,$user,$password); $result = ibase_query ($conn,$command); while ($row = ibase_fetch_object ($result)) { print "$row->JOB_CODE, $row->JOB_COUNTRY, $row->JOB_TITLE, $row->MAX_SALARY<br>\n"; } ibase_free_result($result); ibase_close ($conn); ?> これで無事interbaseオプションが有効になっていれば、sample.phpは動くはず。 ブラウザから、sample.phpにアクセス。 下記の結果が表示される。 CEO, USA, Chief Executive Officer, 250000.00 CFO, USA, Chief Financial Officer, 140000.00 VP, USA, Vice President, 130000.00 Dir, USA, Director, 120000.00 Mngr, USA, Manager, 100000.00 Mngr, USA, Manager, 60000.00 Admin, USA, Administrative Assistant, 55000.00 Admin, USA, Administrative Assistant, 40000.00 Admin, England, Administrative Assistant, 26800.00 PRel, USA, Public Relations Rep., 65000.00 Mktg, USA, Marketing Analyst, 80000.00 Mktg, USA, Marketing Analyst, 50000.00 Accnt, USA, Accountant, 55000.00 Finan, USA, Financial Analyst, 85000.00 Eng, USA, Engineer, 110000.00 Eng, USA, Engineer, 90000.00 Eng, Japan, Engineer, 9720000.00 Eng, USA, Engineer, 65000.00 Eng, England, Engineer, 43550.00 Eng, USA, Engineer, 35000.00 Doc, USA, Technical Writer, 60000.00 Doc, USA, Technical Writer, 40000.00 Sales, USA, Sales Co-ordinator, 70000.00 Sales, England, Sales Co-ordinator, 46900.00 SRep, USA, Sales Representative, 100000.00 SRep, England, Sales Representative, 67000.00 SRep, Canada, Sales Representative, 132000.00 SRep, Switzerland, Sales Representative, 149000.00 SRep, Japan, Sales Representative, 10800000.00 SRep, Italy, Sales Representative, 168000000.00 SRep, France, Sales Representative, 591000.00 OK! 一部依存関係のところが解決できていないが無事に PHP5.0.4からFirebird1.5へアクセスできた。 依存関係等無事にクリアした方がいらしたら是非コメントをいただけると助かります。 以上。 #right{ カテゴリ: &#x5b;[[Firebird>プログラミングのお勉強Blog/カテゴリ/Firebird]]&#x5d; - &trackback() - 2005年09月24日 20:05:00 } - ランキングのお誘い &br()お勉強BLOGЯanK &br()http://obenkyo.1gr.jp/ &br()珈琲ブレイクに気軽に立ち寄れるランキング目指し中? -- 博士 (2009-09-26 11:45:25) #comment(nostyle,nsize8,size30) #blognavi

表示オプション

横に並べて表示:
変化行の前後のみ表示:
記事メニュー
目安箱バナー