
OSはFedoraCore3を使用しています。
PHP5で作成したプログラムでPostgresqlへアクセスするのですが,全く応答がありません。
ブラウザで表示後、ソースを見ると
<html><body></body></html>
としか出ません。
ということはpg_connect("host=****...")がエラーの原因と考えています。
上記のプログラムの上にecho"ああ"と入力すると、ソースには「ああ」と表示があります。
PHPでFTP接続のプログラムを作成して実行するとこれは問題なく動きます。
やはり,Postgresqlの設定がおかしいのでしょうか?それともアクセスの方法が間違っているのでしょうか?
ホント困っています。よろしくお願いします。
No.4ベストアンサー
- 回答日時:
>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を使いました。
No.5
- 回答日時:
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.
No.3
- 回答日時:
直接の回答ではありませんが、エラーの内容が表示されないのであれば、php.iniの「display_error = Off」を「display_error = On」に変更されてみてはいかがでしょうか。
外部に公開しているのであれば、いくらか問題があるかもしれませんが、ローカルでテストするのにはエラーを表示してくれる状態で開発を行ったほうが楽だと思います。
この回答への補足
[display_error = On]にしました。
下記のエラーが出ました。
Call to undefined function pg_connect()
これって、php.iniのPostgresの設定が有効になっていないから出ると解釈していいのでしょうか?
No.2
- 回答日時:
Fedoraは使っていないので、微妙に違うところがあるかもしれません。
postgresqlのログは、/var/log/内にpostgres.logなどpostgresとファイルネームに含まれるログファイルがあるか、/var/log/内にpostgresという名前のディレクトリがあり、その中に格納されているかのはずです。
(たぶん前者)
PHPのエラー詳細は、/var/log/内にhttpdまたはapacheが含まれるログファイルがあるか、httpdまたはapacheというディレクトリがありその中にログファイルが生成されているはずです。
また、Fedoraは3からデフォルトでseLinuxが有効になっているはずですが、有効のままでしょうか?
別に初心者なのはかまいませんが、マニュアルを見ればログファイルなんかはすぐに分かるはずです。
またgoogleなどの検索エンジンを使うって方法もあるかと。
この回答への補足
logのある場所、勉強になりました。ありがとうございます。
seLinuxを無効にしました。ディフォルトでは有効になっていました。seLinuxについてはもう少し勉強が必要です。セキュリティが良くなっているみたいのなのですが、理解に苦しみます。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
Windows10がインストールできま...
-
エクセルで縦のカラムデータを...
-
Ophcrackについて
-
postgresqlのtableのカラムの型...
-
php、postgresqlを使ってwebア...
-
三段論法を真理値表で証明する
-
sqlの中で、 例えば条件句で AN...
-
tesuto 01
-
python3.12のインストール方法
-
Pythonで2つのデータ(キー無し...
-
数値が定期的にあらわれる文字...
-
終端クォート ' が必要です と...
-
PostgressからMySQL(MariaDB)...
-
【PostgreSQL】行の値の並びを...
-
列が存在しないと言われる
-
PostgreSQL14.6のSSL対応について
-
ポストグレにあるExcelファイル...
-
PostgreSQL レコードからアイテ...
-
文字切り替えの時に 中央にでる A
-
postgreSQL カラムの全ての値を...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
postgresqlの接続ポート5432か...
-
至急助けてください!!ブログ...
-
pg_connect関数
-
データベース名の取得
-
PHPでPostgresに接続
-
PHPからのpostgresDBのテーブル...
-
AS400へのphpによるJDBC接続
-
postgres に接続できない
-
PHPでPostgresqlへアクセス
-
PostgreSQLドライバの登録。 Ma...
-
PHPからPostgreSQLにアクセスす...
-
windowsから見えない
-
エラー表示
-
Postgresqlが接続できない
-
CASEの中にCASE
-
phpでpostgresに接続出来ません。
-
Mysql用のプログラムをPostgres...
-
CSEを利用して、postgreSQLの勉...
-
PostgreSQLの管理ツール
-
PHPからposgresをオープンする文法
おすすめ情報