「プログラミングのお勉強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{
カテゴリ: [[[Firebird>プログラミングのお勉強Blog/カテゴリ/Firebird]]] - &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{
カテゴリ: [[[Firebird>プログラミングのお勉強Blog/カテゴリ/Firebird]]] - &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
表示オプション
横に並べて表示:
変化行の前後のみ表示: