アプリ版:「スタンプのみでお礼する」機能のリリースについて

OSはFedoraCore3を使用しています。
PHP5で作成したプログラムでPostgresqlへアクセスするのですが,全く応答がありません。

ブラウザで表示後、ソースを見ると
<html><body></body></html>
としか出ません。
ということはpg_connect("host=****...")がエラーの原因と考えています。
上記のプログラムの上にecho"ああ"と入力すると、ソースには「ああ」と表示があります。

PHPでFTP接続のプログラムを作成して実行するとこれは問題なく動きます。

やはり,Postgresqlの設定がおかしいのでしょうか?それともアクセスの方法が間違っているのでしょうか?

ホント困っています。よろしくお願いします。

A 回答 (5件)

>Call to undefined function pg_connect()



定義されていないpg_connectという関数が呼ばれてます(使われてます)って意味ですね。

PHPでのpostgresql操作用モジュールが入っていない可能性が高いです。
ちょっとパッケージ名がそのものズバリはFedoraのは分かりませんが、pgsql.soがインストールされていないか、pgsql.soを読み込む設定になっていないのでしょう。

pgsql.soがまずあるかどうか確認してください。
なければ、インストールしてください。
あった場合、またはインストールした場合、php.iniに
extension = pgsql.so
を追記してください。

その後、apacheを再起動するなりして、php.iniの変更を適用させてください

この回答への補足

詳しくありがとうございます。
;extension=php_pgsql.dll
はあったので、「;」を外し有効にしました。

検索コマンドでpgsql.soを調べましたら出てきませんでした。検索にはfindを使いました。

補足日時:2005/09/09 21:31
    • good
    • 1

pg_connect()が定義されていないというのなら、必要なコンポーネントが入ってないので、


 yum install php-pgsql
を実行してみてください。

この回答への補足

yum install php-pgsqlを実行しましたが、エラーが出ました。
下記の通りです.
You have enabled checking of packages via GPG keys. This is a good thing.
However, you do not have any GPG public keys installed. You need to download
the keys for packages you wish to install and install them.
You can do that by running the command:
rpm --import public.gpg.key
For more information contact your distribution or package provider.

補足日時:2005/09/09 21:50
    • good
    • 0

直接の回答ではありませんが、エラーの内容が表示されないのであれば、php.iniの「display_error = Off」を「display_error = On」に変更されてみてはいかがでしょうか。


外部に公開しているのであれば、いくらか問題があるかもしれませんが、ローカルでテストするのにはエラーを表示してくれる状態で開発を行ったほうが楽だと思います。

この回答への補足

[display_error = On]にしました。
下記のエラーが出ました。

Call to undefined function pg_connect()

これって、php.iniのPostgresの設定が有効になっていないから出ると解釈していいのでしょうか?

補足日時:2005/09/09 11:22
    • good
    • 0

Fedoraは使っていないので、微妙に違うところがあるかもしれません。



postgresqlのログは、/var/log/内にpostgres.logなどpostgresとファイルネームに含まれるログファイルがあるか、/var/log/内にpostgresという名前のディレクトリがあり、その中に格納されているかのはずです。
(たぶん前者)

PHPのエラー詳細は、/var/log/内にhttpdまたはapacheが含まれるログファイルがあるか、httpdまたはapacheというディレクトリがありその中にログファイルが生成されているはずです。

また、Fedoraは3からデフォルトでseLinuxが有効になっているはずですが、有効のままでしょうか?


別に初心者なのはかまいませんが、マニュアルを見ればログファイルなんかはすぐに分かるはずです。
またgoogleなどの検索エンジンを使うって方法もあるかと。

この回答への補足

logのある場所、勉強になりました。ありがとうございます。

seLinuxを無効にしました。ディフォルトでは有効になっていました。seLinuxについてはもう少し勉強が必要です。セキュリティが良くなっているみたいのなのですが、理解に苦しみます。

補足日時:2005/09/09 11:24
    • good
    • 0

サーバのログにはなんと出力されていますか?

この回答への補足

サーバのログの見方がわかりません。
Linux自体が初心者で、初めてサーバを立ち上げているものです。
手がかかり本当にすみません。

補足日時:2005/09/07 20:49
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!