前に書いた、PHPのインストール方法「だけしか、しない」で、MySQLをいれただけだと
PHP4.0+MySQL4.0ならうまくいくけど、ほかのバージョンだとうまくいかない。
(MySQLのバージョンをあげると、エラーになる。PHPを5.0にすると、暴走する)
そこで、この、PHP5.0+MySQL5.0のインストールメモ。
前提:
以前のPHPの入れ方のところまでは、できているとして、そのつづき
1.ファイルの存在の確認
PHPを解凍してできたフォルダ(ここではC:phpにおいてあるとする)の下に、以下のファイルとフォルダがあることを確認します(ほかにもいっぱいある)
libmysql.dll
ext
さらに、そのextというフォルダがあり、そのフォルダに以下のファイルがある(ほかにもいっぱいファイルがある)ことを確認します。
php_mysql.dll
php_mysqli.dll
2.php.iniの修正
■■2-1.extension_dir修正
前の作業で、C:WINDOWSにおいた、php.iniのなかにあるextension_dirに、extフォルダのパスを指定します。以下のようなかんじ
extension_dir = "C:¥php¥ext"
なお、¥は、(ここでは全角になっているが)本当は、半角(くわしくは、コメントの2番目参照)
■■2-2.extensionにphp_mysql、php_mysqli追加
以下のように書いてある行があるので
;extension=php_mysql.dll
前の;をはずして、こうします
extension=php_mysql.dll
ついでに(??)php_mysqliも追加してしまいます。以下の行を追加してください(php_mysqlのあとiがついているのがちがうところ)
extension=php_mysqli.dll
3.libmysql.dllをいれる
1で指定したlibmysql.dllを、WINDOWS¥SYSTEM32 (¥は半角)の下にコピーします。
4.Apache再起動
Apacheを再起動します。
ここで、前のとき同様、動作確認。
5.MySQL5.0をインストール
MySQL5.0をここからダウンロードして、インストール。インストールのとき、サインアップはしなかった(スキップした)configureのほうは、やって、SJISにした以外は、基本的にデフォルト。
で、ルートのパスワードはrootにしたら、一回目はうまくいった(気がした、失敗してたのかも。。)けど、再インストール(2度目)以降は、うまくいかなくなった。
けど、失敗しても、パスワードはルートに設定されていたので、まいっか。
(追加11月13日)
→よくない。場合によっては、登録されないようだ。
configureの最初の画面で、2つでてくる。このとき、下のStanderdだったかな??を設定して、最後のパスワードのところに、適当にパスワードを設定してあげると、正常終了した。
6.動作確認する
ユーザーテーブルを見るこんなPHPを書いて、みた。
<HTML> <BODY> <?php print("<H1>結果</H1>"); //DBへ接続開始 サーバー名--localhost ユーザー名--root パスワード--root $dbHandle = mysql_connect('localhost','root','root'); //DBの接続に失敗した場合はエラー表示をおこない処理中断 if ($dbHandle == False) { print ('can not connect dbn'); exit; } $db = 'mysql'; //db名:システムにある //SQL文 tab1表から全行を取り出し、number列の昇順に整列する $sql = 'select * from user'; //SQL文を実行する $rs = mysql_db_query($db,$sql); if (!$rs) { print("SQLの実行に失敗しました。"); exit; } //列数を取得する $num = mysql_num_fields($rs); //HTML文を出力 テーブルの開始を指定 print("<table border=1>"); //test表の列数と同じ回数を繰り返す for ($i=0;$i<$num;$i++) { //HTML文を出力 列名を <td>で囲んで出力 print("<td>".mysql_field_name($rs,$i)."</td>"); } //test表の行数と同じ回数を繰り返す while($row=mysql_fetch_array($rs)) { //HTML文を出力 表の行の開始<tr> を出力 print("<tr>"); //test表の列数と同じ回数を繰り返す for($j=0;$j<$num;$j++) { //HTML文を出力 列の内容を <td>で囲んで出力 print("<td>".$row[$j]."</td>"); } //HTML文を出力 表の改行</tr> を出力 print("</tr>"); } //HTML文を出力 テーブルの終了を指定 print("</table>"); //結果レコードをメモリから開放 mysql_free_result($rs); //DBへの接続を切断 mysql_close($dbHandle); ?> </BODY> </HTML> |
(なお、<>は、本当はすべて半角)
rootのパスワード(インストールの最後、configureで設定したもの)が"root以外だったら、
$dbHandle = mysql_connect('localhost','root','root');
の3番目の引数をパスワードにする。たとえば、パスワードが、HappyBirthdayだとしたら、
$dbHandle = mysql_connect('localhost','root','HappyBirtyday');
となる
これで、ユーザー(すくなくともルートはいるはず)が登録されていればOK