[centos-users 982] Re: CentOS 5.2でphpの設定を行うには

hiro 164 @ saishin.jp
2009年 1月 31日 (土) 17:58:03 JST


みなさん加藤です この度は有難う御座いました。

お蔭様で無事にCentOS5.2+PHP+Firebird の環境を構築する事が出来ました。助かりました。
まだまだ疑問はあるのですが今回の皆様のご協力の成果をまとめてみました。
私のスキルではここまでにあれやこれや一週間もかかってしまいました。

OSのインストール時の環境に違いがあるかも知れませんが、同じような事を始められる初心者の参考になるように、どこかの掲示板にアップしておこうと考えております。
間違いがありましたらご指摘戴ければ幸いです。

[CentOS5_2でPHP-Firebirdを使う環境設定
の一例]
OSインストール時にApache(httpd)、MySQL、PHPを選択インストールしてあります。
また、Firebird1.5xxもOSインストール後にインストールしてあります。

1. 古いphpを削除する
yum remove php
yum remove php-devel
yum remove php-common
yum remove curl
yum remove curl-devel

2.apxsモジュールをインストール
Apacheが持っている、apxsという、モジュールをインストールするためのツール
が必要になるのでhttpd-develパッケージをインストールしておく必要がある。
httpd-develのインストール
# yum install httpd-devel

インストールの場所は/usr/sbin/apxsになった。

3.最新版のPHP tar.gz のダウンロードとインストール
http://www.php.net/downloads.php
から最新版のPHP tar.gz をダウンロード
現時点の最新版はphp-5.2.8.tar.gz

<解凍>
/usr/local/src/ に(ディレクトリ無ければ作り)php-5.2.8.tar.gzをダウンロード
# cd /usr/local/src
# tar -xzvf php-5.2.8.tar.gz

<./configureの実行とインストール>
php-5.2.8へ移動
# cd /usr/local/src/php-5.2.8

#./configure --with-apxs2=/usr/sbin/apxs --with-mysql --with-interbase=/opt/firebird
 --enable-mbstring --enable-mbregex --enable-mbstr-enc-trans --enable-zend-multibyte
 --

without-sqlite --with-odbc

<エラーの場合>
最後に
# Thank you for using PHP.で終わらず下記のようなエラーの場合
 checking for MySQL support... yes
 checking for specified location of the MySQL UNIX socket... no
 checking for MySQL UNIX socket location... /var/lib/mysql/mysql.sock
 configure: error: Cannot find MySQL header files under yes.
 Note that the MySQL client library is not bundled anymore!

MySQLの開発ツール関係(ヘッダ、ライブラリ)などが足りないと思われるので
 mysql-devel というパッケージをインストールし再挑戦
mysql-devel のインストール方法は

#yum install mysql-devel

これで./configureの実行をやり直して
#make
#make install
<php.iniの作成>
php.iniを/usr/local/lib/に作る
cp /usr/local/src/php-5.2.8/php.ini-dist /usr/local/lib/php.ini

<Apacheの設定>
/etc/httpd/conf/httpd.conf に以下を追加

LoadModule php5_module        /usr/lib/httpd/modules/libphp5.so

     <FilesMatch \.php$>
          SetHandler application/x-httpd-php
      </FilesMatch>


<検証-1>
httpdのhtmlルートに
phpinfo.phpファイルを作り
<?php phpinfo(); ?>

ブラウザで確認する
http://localhost/phpinfo.php
以下の項目があるか?
filter(Delphi for PHP2 で必要)
interbase(Firebirdの接続用)
mysql(MySQLの接続用)

<検証-2>
下記のFirebirdTest.phpを作成し実行してみる
http://localhost/FirebirdTest.php/
----------------------------------------
// FirebirdTest.php Firebird_1.5のインストール時にdefaultで入るデータベース
<?php
// データベースへの接続
$con = ibase_connect(
  "localhost:/opt/firebird/examples/employee.fdb",  "USER", "password");

if($con == FALSE) {
  echo "データベースに接続できません。<br>".ibase_errmsg()."<br>";
  exit;
}
echo "データベースに接続しました。<br>";

// SELECT文の実行
$ret = ibase_query($con,
  "select COUNTRY.COUNTRY,COUNTRY.CURRENCY from COUNTRY");
    //メタデータを見たい時は下記
  //"SELECT CURRENT_USER, CURRENT_TIMESTAMP FROM RDB$DATABASE");
if($ret == FALSE) {
  echo "データベースを検索できません。<br>".ibase_errmsg()."<br>";
  exit;
}

// 実行結果の出力
$dat = ibase_fetch_row($ret);
echo "COUNTRY = ".$dat[0].", CURRENCY = ".$dat[1]."<br>";

// 後処理
ibase_free_result($ret);
ibase_close($con);
?>
----------------------------------------
<検証-3>
下記のMySQLTest.phpを作成しMySQLへ接続してみる
Database とTableはあらかじめ作成しておく
http://localhost/MySQLTest.php/
<?php
//MySQLへ接続
$mysql_con = mysql_connect ("localhost","root");
if ($mysql_con == false) {
 print "DB_Connect Error!";
 exit;
}

//MySQLのデータベースを選択
$select_db = mysql_select_db ("sai",$mysql_con);
if ($select_db == false) {
 print "DB_SELECT Error!";
 exit;
}

//TOKUIテーブルのデータを全て取得する。
$sql = "SELECT * FROM TOKUI";

//mysql_query関数にSELECT文を記述した関数と$mysql_conのMySQLの接続情報を引数に与えてクエリを実行する
$result = mysql_query ($sql,$mysql_con);

//テーブルの内容を出力する
print "<html>";
print "<body>";
print "<table border=1>";
print "<tr><td>番号</td><td>得意先コード</td><td>名前</td><td>フリガナ</td><td>日付(datetime)</td><td>日付(varchar)</td></tr>";

//mysql_fetch_array関数を使用して、$resultのSELECTの結果から、1行ずつデータ$rowに取得します
//whileの繰り返しは、データが無くなるまで繰り返します
while ($row = mysql_fetch_array ($result)) {
 print "<tr><td>" . $row["ANO"] . "</td>";
 print "<td>" . $row["TKCODE"] . "</td>";
 print "<td>" . $row["TKNAME"] . "</td>";
 print "<td>" . $row["TKNAMEK"] . "</td>";
 print "<td>" . $row["YMD"] . "</td>";
 print "<td>" . $row["YMD_CHAR"] . "</td></tr>";
}
print "</table>";
print "</body>";
print "</html>";
?>




centos-users メーリングリストの案内