最速怪談選手権

vi sql.phpで
<?
$con = pg_connect("dbname=ishihara");
if(!$con){
print "DBへの接続に失敗しました!\n";
exit;
}else{
print "DBへの接続に成功しました!\n";
}
?>
というスクリプトをつくって
ブラウザでテストしたところ
<?
$con = pg_connect("dbname=ishihara");
if(!$con){
print "DB�吾��・膓���け�����障����!\n";
exit;
}else{
print "DB�吾��・膓����������障����!\n";
}
?>
という風に出てしまいます。
これってphpがインストール不完全なのでしょうか?

A 回答 (6件)

phpのインストールがうまくいっていない&文字コードが違っているのだと思います。



LINUXで普通にインストールすると、標準文字コードがEUCになっていると思います。
しかし、Fedoraの場合、UTF-8が標準なので、php.iniを編集する必要があると思います

# configureに--enable-mbstring付けてありますよね?
# httpd.confは編集済みですか?

この回答への補足

アドバイスありがとうございます。
文字コードEUCーJPに変更しました。
--enable-mbstringも付けてあります。

文字コードはEUCで保存し、EUCでブラウザへ出力という
設定でよろしいでしょうか?
もしかして出力はSHIFTーJIS?

補足日時:2004/05/25 16:03
    • good
    • 0
この回答へのお礼

fedoraがUCFー8でないと文字化けすることを知りませんでした。
php.iniをUCFー8にすべて書き換えたら
ちゃんと表示されるようになりました。
ありがとうございました。

お礼日時:2004/05/26 17:14

日本語を使うときは、ちゃんとcharsetを指定しましょう。



私の場合は、httpd.confで指定をOFFにして、html側のmetaタグでcharsetを
指定する方法が好みです。
あなたのsql.phpで使用している日本語にあわせた指定をしてください。
(euc-jp utf-8 など)


(httpd.conf)
AddDefaultCharset OFF


<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=euc-jp">
</head>
<body>
<?
  $con = pg_connect("dbname=ishihara");
  if(!$con){
    print "DBへの接続に失敗しました!\n";
    exit;
  }else{
    print "DBへの接続に成功しました!\n";
  }
?>
</body>
</html>


ブラウザ上には、以下のように表示されます。
(Postgresの設定をしていないので当然エラーがでますが)

Warning: pg_connect(): Unable to connect to PostgreSQL server: could not
connect to server: No such file or directory Is the server running locally
and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
in /usr/local/apache2/htdocs/test.php on line 7
DBへの接続に失敗しました!
    • good
    • 0
この回答へのお礼

fedoraがUCFー8でないと文字化けすることを知りませんでした。
php.iniをUCFー8にすべて書き換えたら
ちゃんと表示されるようになりました。
ありがとうございました。

お礼日時:2004/05/26 17:13

>phpが二つ入ってしまっているということで


>不具合が生じているのでしょうか?

PHPをソースからコンパイルした場合は、デフォルトで
/usr/local/ 配下にインストールされますから、パッケージ版の
PHPとはぶつかりません。


ソース版のPHPをコンパイルするときは、Apache2に含まれるapxsコマンドを
指定してください。

# ./configure --with-apxs2=/usr/local/apache2/bin/apxs
# make
# make install


httpd.conf には以下の3行を追加して、Apache2を再起動してください。

「/usr/local/apache2/conf/httpd.conf」

LoadModule php4_module modules/libphp4.so
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps


いきなり、postgresに接続する前に、簡単なスクリプトを実行して
phpの動作確認をしましょう。

<?
phpinfo();
?>

ブラウザで読み込んで、PHPの情報が表形式で表示できたら、とりあえず
動いています。

この回答への補足

アドバイスありがとうございます。

<?
phpinfo();
?>
は、テスト済みでちゃんと起動します。
<?
print "<pre>";
print'whoami';
print "</pre>
?>
もブラウザで確認すると
whoami
と出てしまいます。

補足日時:2004/05/26 00:24
    • good
    • 0

phpをソースからインストールされたのなら、インストール前にすでにパッケージでphpがインストールされていないことを確認されましたか?



webサーバーはおそらくapacheで、apacheをインストール後phpをインストールされたと思いますがhttpd.confに
Load Module php4_module libexec/libphp4.so
というような行がありますか?

この回答への補足

Load Module php4_module libexec/libphp4.so
これは確認したのですが
入っています。

>phpをソースからインストールされたのなら、インストール前にすでにパッケージでphpがインストールされていないことを確認されましたか?

phpが二つ入ってしまっているということで
不具合が生じているのでしょうか?
確認してみます。

補足日時:2004/05/25 19:39
    • good
    • 0

こんばんは。


自分は↓ここをお気に入りに入れてます。
(まだまだPHP勉強中です)

参考URL:http://wiz.syscon.co.jp/Lnxphp.html
    • good
    • 0
この回答へのお礼

アドバイスありがとうございます。
道のりはまだまだ遠いようです。
仕事が手に付かないほど
熱中してやっています。
視力低下かもです。

お礼日時:2004/05/24 23:28

sql.phpが、PHPファイルとして認識されていませんね。


インストールが不完全なのか、設定が不完全なのかは、ちょっとこの情報では分かりかねますが、どちらかでしょう。

この回答への補足

設定方法とかって詳しく載ってるHPってありますか?

補足日時:2004/05/24 21:13
    • good
    • 0

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