PHPLIBのインストールでエラーが発生する

このQ&Aのポイント
  • PHPLIBのインストール後にサンプルページを稼動させる際にエラーが発生しています。エラーメッセージには「Warning: This compilation does not support pg_cmdtuples()」と表示されます。
  • 私の環境はPHP4とPostgres7.1です。db_pgsql.incファイル内でSQLをコールするときにエラーが発生していますが、その原因がわかりません。
  • 同じような経験をされて解決できた方がいらっしゃいましたら、教えていただけないでしょうか。
回答を見る
  • ベストアンサー

PHPLIBについて

お世話になります。 PHPLIBのインストールについて教えてください。 参考資料の通りにインストールしましたが、サンプルページを稼動させると以下のようなエラーが出ます。 Warning: This compilation does not support pg_cmdtuples() in /usr/local/apache/phplib-7.2c/php/db_pgsql.inc on line 177 当方の環境はPHP4 Postgres7.1です。 db_pgsql.incの中でSQLをコールしたときにエラーが出ているのは判りますが、その根本原因が判りません。 どなかた、同じような経験をされて、解決できた方がいらっしゃったら教えてください。 宜しくお願いします

  • burn
  • お礼率43% (20/46)
  • PHP
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • alfeim
  • ベストアンサー率58% (114/195)
回答No.1

# phplib自身はPHP4に対応したんですか?私が使ってた頃はまだ4に対応してなかったんですが・・・ 動かない理由は http://www.php.net/manual/ja/ref.pgsql.php にある通りpg_cmdtuples()関数名が変わっているからでしょう。 もっとも正式サポートしてないのなら対応は自身でやるしかないでしょうけど・・・ 一番手っ取り早いのは正式サポートしているphp3系の上で使う事です。 でなければ、内部ロジックを読み、自分でポーティングする必要があるでしょう まぁ、DBサポートの部分はそれほどでかくなかったのでポーティングの手間はそれほどでもないと思いますが・・・

burn
質問者

お礼

ご回答有難うございました。 PHP4の教本には無理やりPHP4に対応させる手法が載っていて、それに沿ってやったんですが、上手く行きませんでした。 php3対応で再度インストールした結果上手く行きました。 有難うございました。

関連するQ&A

  • PHPlib インストールエラー

    どなたか、ヘルプお願いします。 PHPlib(PHPlib-7.4-pre2)をインストールするべく、設定を終え、動作確認(login & password画面で)したところ、以下のようなエラーメッセージで行き詰まっているところです。 Warning: pg_connect(): Unable to connect to PostgreSQL server: could not connect to server: Connection refused Is the server running on host localhost and accepting TCP/IP connections on port 5432? in /usr/local/apache/phplib-7.4-pre2/php/db_pgsql.inc on line 51 Database error: connect() failed. PostgreSQL Error: 0 () Session halted. 設定の際、設定の書き込みをしたのは、  ・local.inc の $Database、$Userの設定  ・prepend.php で db_pgsql.inc の指定 のみです。 ネットでこのエラーを調べたところ「pg_hba.conf」や「postgresql.conf」に関係するエラーのようですが、PHPlibを利用するにあたり、何か設定しなければならないのでしょうか? また、エラーが表示されている「db_pgsql.inc」にも何か設定が必要なのでしょうか? ちなみに、自作PHPファイルから該当データベースへの接続には成功しています。 [環境]FreeBSD、Apache1.3、PHP4.3、PosgreSQL7.4

    • 締切済み
    • PHP
  • PHPでredeclareのエラーがでるのですが...

    こんにちわ、 現在PHP4でweb作成をしています。それで認証はPHPLIBを使用しているのですが、 「Fatal error: Cannot redeclare class db_sql in /usr/local/apache/phplib-7.4/php/db_pgsql.inc on line 12」 というエラーがでます。 ただ、DB_Sqlというクラスはこのdb_pgsql.incでのみしか使用しておらず(class DB_Example extends DB_Sqlはlocal.inc内で使用しています)、原因が解りません。 おそらく、.htaccess内でprepend.phpをauto_prepend_fileと指定していて、そのprepend.phpのなかで、 (前略) require($_PHPLIB["libdir"] . "db_pgsql.inc"); require($_PHPLIB["libdir"] . "ct_sql.inc"); require($_PHPLIB["libdir"] . "session4.inc"); require($_PHPLIB["libdir"] . "session4_custom.inc"); require($_PHPLIB["libdir"] . "auth4.inc"); require($_PHPLIB["libdir"] . "perm.inc"); require($_PHPLIB["libdir"] . "user4.inc"); require($_PHPLIB["libdir"] . "menu.inc"); require($_PHPLIB["libdir"] . "local.inc"); require($_PHPLIB["libdir"] . "page4.inc"); : (後略) としているために、毎回db_pgsqlがよみこまれるためだとおもいますが、よくわかりません。 質問として漠然としていますが、もしもエラーについてすこしでもなにかしっている方、アドバイスの方、宜しくお願いします。 ちなみにphplib-7.4をインストールしてからかえたのは、 -- .htaccessをかえた(auto_prepend_fileをかえた) -- prepend.phpのdb_mysqlをdb_pgsqlにかえた くらいです。 宜しくお願いします。

    • ベストアンサー
    • PHP
  • データベースに接続できない

    postgresql-7.2.3.tar.gzインストール時には、下記内容でデータベースに接続できていました。 <?php $con = pg_connect("dbname='database_6' user='postgres' password='xxx'") if(!$con){ print "DB connection failed!!\n"; }else{ print "DB connection successful!!\n"; } ?> ところが、postgresql-8.0.26.tar.gzをインストールしたら、上記内容でデータベースに接続できなくなり、 Fatal error: Call to undefined function: pg_connect() in /usr/local/apache/htdocs/sql.php on line 2 というエラーメッセージが表示されます。 phpinfo();で確認もしましたが、ない感じです。Additiional Modulesのどこかを見れば、いいのでしょうか? pgsql.soは/usr/local/lib/php/extentions/pgsql.soにあります。/usr/local/lib/php.iniのextention_dir = ./を以下のように修正し、 extention_dir = /usr/local/lib/php/extentions extention=pgsql.so /usr/local/apache/bin/apachectl restart も実行しています。

  • phpのインストールについて

    phpで別サーバ(DBのみ)のpostgresqlに接続しようとした場合、接続できませんでした。 php-pgsql?かpgsql.soが無いのが原因ぽいのですが、検索してもyumでインストールとかばかりでソースからインストールした際の記述がみつけられませんでした… phpインストール時にpostgres(php-pgsql?)を有効するにはどうしたらいいのでしょうか? ちなみにpostgresqlとphpが同一サーバ内にインストールされているサーバ(現環境)からこのDBのみのサーバにTCP/IPで接続はできました。 OS:CentOS4.5(共に) apache2.2.6 php:5.2.5 postgres8.2.5 php cofigureオプション ./configure --with-apxs2=/usr/local/apache2/bin/apxs --enable-mbstring --enable-mbregex よろしくお願いします。

    • ベストアンサー
    • PHP
  • PHPLIBでのエラー

    こんばんわ, 現在自分のHPをPHPLIBを使用したセッション認証を取り入れようとしているのですが,エラーがでてしまいます。 エラーの内容は, Warning: main(db_pgsql.inc): failed to open stream: No such file or directory in /XXXXXXXXXXX/prepend.php on line 30 Fatal error: main(): Failed opening required 'db_pgsql.inc' (include_path='.:./include:./template') in /XXXXXXXXXXX/prepend.php on line 30 という内容が出ています。 そのprepend.phpの中は, 25 #ORIGINAL 26 $_PHPLIB["libdir"] = ""; 27 28 29 30 require($_PHPLIB["libdir"] . "db_pgsql.inc"); となっています。 また,同ディレクトリにある.htaccessには 3 DirectoryIndex index.php 4 5 <IfModule mod_php4.c> 6 php_value include_path ".:./include:./template" 7 8 php_value auto_prepend_file "prepend.php" 9 </IFModule> 10 11 AddType application/x-httpdphp .php .inc .ihtml となっています。 おそらく初歩的な質問だとは思いますが, よろしくお願いします。

    • ベストアンサー
    • PHP
  • PostgreSqlインストールで

    Linux環境にPostgreSqlをインストールしたいのですが以下のエラーがでて困ってます; 手順としては 1, ./configure 2, gmake 3, su 4, gmake install 5, mkdir /usr/local/pgsql/data 6, chown postgres /usr/local/pgsql/data 7, su - postgres 8, /usr/local/pgsql/bin/initdb -D /usr/local/pgsql/data 9, /usr/local/pgsql/bin/postgres -D /usr/local/pgsql/data >logfile 2>&1 & 10, /usr/local/pgsql/bin/createdb test 11, /usr/local/pgsql/bin/psql test まず手順8で以下のエラーが出ます database "postgres" does not exist その後、手順9を実行すると以下のエラーがでます createdb: could not connect to database template1: could not connect to server: そのようなファイルやディレクトリはありません Is the server runnning locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"? 解決策等ご存知でしたら教えて頂けないでしょうか? よろしくお願い致します。

  • CentOS5でLAPPを構築したいのですが・・・

    CentOS5にApacheとPostgreSqlとPHPをインストールしたいんですがうまくいきません。 httpd-2.2.14 postgresql-8.2.6 php-5.2.6 を入れようと思っています。 CentOS5をインストールして、IPアドレスやホスト名などの設定後、もともとインストールされているApacheなどを # rpm -qa | grep 'httpd' # rpm -e httpd などのコマンドで削除ごに #/usr/local/src/ に上記のApcheやPHPなどのファイルを持ってきてApache→Postgresql→PHPの順番にインストールしました。 Apcheの場合 # cd /usr/local/src # tar xfz /usr/local/src/httpd-2.2.14.tar.gz # cd httpd-2.2.14 # /configure # make # make install Postgresqlの場合 # /usr/sbin/adduser postgres # chown postgres:postgres /usr/local/pgsql # mkdir /usr/local/src/postgres-8.2.6 # chown postgres:postgres /usr/local/src/postgresql-8.3.7 # su - postgres # cd /usr/local/src # tar xfz /usr/local/src/postgres-8.2.6.tar.gz # cd /usr/local/src/postgres-8.2.6 # ./configure # make # make install PHPの場合 # cd /usr/local/src # tar xfz /usr/local/src/php-5.2.6.tar.gz # cd /usr/local/src/php-5.2.6 # ./configure --with-apxs2=/usr/local/apache2/bin/apxs --enable-mbstring --enable-mbregex --with-pgsql # make # make install 上記の様なコマンドでインストールしましたがうまくいきません 詳細な設定もしているつもりですがいまいちうまくいきません どうか皆さまの知識をどうかお貸しくださいm(_ _)m

  • PHPからpostgresコマンド

    redhatLinux7.1にphp4.0.6をインストール(--with-pgsqlはなし)でインストールしました。プログラムから外部のpostgresデータベースを操作したいのですが、Undefined functionとなってpg_connectなどの関数が使えません。--with-pgsqlをつけてconfigureするとエラーが出たっぽいので外したんですが・・・。pgsql関数を使うにはpostgres本体もインストールしないとダメなんでしょうか??関数だけ使う方法はないでしょうか??教えてください。

  • あとから追加でpostgres関数

    redhatLinux7.1にphp4.0.6を「--with-pgsql」はなしでconfigureしてインストールしました。プログラムから外部のpostgresデータベースを操作したいのですが、Undefined functionとなってpg_connectなどの関数が使えません。--with-pgsqlをつけてconfigureするとエラーが出たっぽいので外したんですが・・・。pgsql関数を使うにはpostgres本体もインストールしないとダメなんでしょうか??関数だけ使う方法はないでしょうか??教えてください。

    • 締切済み
    • PHP
  • PostgreSQL8.1とPHP5でwebアプリをつくりたいのに環境設定がわかりません…

     Linuxの初心者です。PostgreSQLとPHP5でwebアプリをつくりたいのですが、環境が構築できずに困っています。現時点での環境を以下に記します。 OS ; Fedora Core 6 server ; apache 2.2.3 DB ; PostgreSQL 8.1.4 言語 ; PHP 5.1.6 Fedora Core 6 をインストールする時に apache と PostgreSQL と PHP はインストールされていました。そして以下の様に設定ファイルを書き直しました(今回の質問に関わりのなさそうなものは省いていますが、なにぶん初心者のため、なにか足りないものがありましたら教えていただきたいと思います)。 ・apache /etc/httpd/conf/httpd.conf    265 ServerName localhost:80 748 AddDefaultCharset EUC-JP ・PHP /etc/php.ini 777 pgsql.allow_persistent = On 781 pgsql.auto_reset_persistent = 0 784 pgsql.max_persistent = -1 787 pgsql.max_links = -1 791 pgsql.ignore_notice = 0 795 pgsql.log_notice = 0 ・PostgreSQL /var/lib/pgsql/data/postgresql.conf       49 listen_addresses = '*' 52 port = 5432 ・PostgreSQL /var/lib/pgsql/data/pg_hba.conf local all all ident sameuser host all all 127.0.0.1/32 ident sameuser host all all ::1/128 ident sameuser host all 0.0.0.0 0.0.0.0 trust  スクリプト内で pg_connect() 関数を使って PostgreSQL に接続しようとすると、  Warning: pg_connect() [function.pg-connect]: Unable to connect to PostgreSQL server: could not connect to server: Permission denied Is the server running on host "localhost" and accepting TCP/IP connections on port 5432?  Warning: pg_last_error() [function.pg-last-error]: No PostgreSQL link opened yet  というエラーが出てしまうのです。  調べてみたら php-pgsql という拡張モジュールがインストールされていたにも関わらずに、phpinfo() の configure に --with-pgsql が見当たらないのです。パッケージでインストールしたためにオプションが付いていなかったのでしょうか。 こちらのサイトで似たような質問があって読んだのですが、どこのディレクトリで configure をやり直したらいいのか、make clean コマンドで一回オプションを全て消さないとだめなのかがわからなくて困っています。  どなたか詳しい方がいらしたら、教えてください。  よろしくお願いいたします。

専門家に質問してみよう