2009 年 7 月 15 日, 12:59 AM
PHP 5.3.0が出たその3の続きです。
PHPがインストール出来たので、MySQLを入れます。最近MySQLの持ち主のSunがOracleに買収されたそうなので、OracleのメインビジネスであるデータベースであるMySQLがどうなるか(お金を取るようになるか)が注目するところですが、日本MySQLユーザ会によると、5.1.36が2009/7/3にがリリースされているのでまだ大丈夫ぽいです。
ところで、現在はLAMPなんて言葉があるように、Linux, Apache, MySQL, PHPはただで高機能が揃えられる代名詞となっています。
ローカルで色々動かすにはなんかのデータベースを入れる必要が出てきますが、MySQLがやはり使いやすい(WordPressもそうですが)ので、動かせるようにしたいと思います。
MySQLを以下サイトからダウンロードします。
http://dev.mysql.com/downloads/mysql/5.1.html#win32
現時点での最新安定版は5.1.36です。
Windows Downloadsから、Windows MSI Installer (x86)を選びダウンロードしたらインストーラを起動します。
今回は、Dドライブにインストールしたかったので、Setup Typeを「Custom」にして、MySQL Serverを
D:\Program Files\MySQL\MySQL Server 5.1\
に、MySQL Server Datafilesを
D:\ProgramData\MySQL\MySQL Server 5.1\
に設定しました。Datafilesは「MySQL Server」の子要素なので、うっかりしてるとデフォルトのCに入ってしまいます。
インストールが始まるとVistaの場合はまず「MySQL AB」というのの実行許可画面が出ますので「許可」を選択、その後MySQL Enterpriseというタイトルの画面が出るので

[Next]を何度か押下するとSetup Wizard画面が出ます。

下の「Register the MySQL Server now」は色々面倒なのでチェックを外し、finishボタンを押すと、また「MySQL AB」というのの実行許可画面が出るので許可します。
でなんかとまると思ったら、操作できないほどの小さい画面でConfig画面が出ているようだった。(原因はちょっと不明)
操作できないのでConfig画面はキャンセルして、インストール後に「MySQL Instance Config Wizard」というのがあるのでそれで設定する。
あとは以下のように設定しました。
・Detailed Configration
・Developer Machine
・Multifunctional Database
・InnoDB Tablespace SettingsはInstallation Path
・Decision Support(DSS)/OLAP
・Enable TCP/IP NetworkingとEnable Strict Modeはデフォルトのまま
・Best Support For Multilingualism
・Install As Windows Serviceはチェック(デフォルトのまま)
・Include Bin Directory in Windows PATHはコマンドラインから使うような気がするのでチェック
・Modify Security SettingsでROOTのパスワードを入力
これでExecuteを押せばやっと終わりだ!と思ったのですが、
Cannot create Windows service for MySQL. Error:0
と出て設定出来ない。サービスを見ると、そういや以前にXAMPPを入れたことがあったので、それが残っていた。とりあえずXAMPPをアンインストール。
でも「MySQL」サービスは消えてくれない。
まずはこれを消さないといかん。
2009 年 7 月 12 日, 5:33 PM
PHP 5.3.0が出たその2の続きです。
結局Windowsでは、インストーラパッケージでのインストールはあきらめて、Dドライブに「PHP」というフォルダを作成し、その中にzipで落としてきたバイナリファイルを解凍しました。
使用したのはスレッドセーフのVC6コンパイラでコンパイルしたやつ。(http://windows.php.net/downloads/releases/php-5.3.0-Win32-VC6-x86.zip)
これを上記ディレクトリ(D:\PHP)に解凍したままコピーしました。
以前とちょっと変わってるところが、PHP\binフォルダがなく、PHPの直下に「php.exe」があること、以前はbinフォルダにあったんじゃなかったっけ。
そして環境変数(Winkey + pause→「システムの詳細設定」→「環境変数」)のPATH変数に「D:\PHP」と記載してコマンドプロンプトで確認。
Microsoft Windows [Version 6.0.6001]
Copyright (c) 2006 Microsoft Corporation. All rights reserved.
C:\Users\yokoshima>php -v
PHP 5.3.0 (cli) (built: Jun 29 2009 21:25:23)
Copyright (c) 1997-2009 The PHP Group
Zend Engine v2.3.0, Copyright (c) 1998-2009 Zend Technologies
C:\Users\yokoshima>
おぉっ。やっと入った。
今回、php.iniのサンプルファイルは
php.ini-developmentとphp.ini-productionの二つがありますが、一応どんな違いがあるかdiffを取ってみました。
514c514
error_reporting = E_ALL & ~E_DEPRECATED
531c531
display_errors = Off
542c542
display_startup_errors = Off
586c586
track_errors = Off
604c604
html_errors = Off
1245a1246,1253
> ; Allow accessing, from PHP's perspective, local files with LOAD DATA statements
> ; http://php.net/mysqli.allow_local_infile
> ;mysqli.allow_local_infile = On
>
> ; Allow or prevent persistent links.
> ; http://php.net/mysqli.allow-persistent
> mysqli.allow_persistent = On
>
1294c1302
mysqlnd.collect_memory_statistics = Off
1563c1571
session.bug_compat_42 = Off
1572c1580
session.bug_compat_warn = Off
細かいぱっと見だと、名前どおり開発用と公開用みたいな感じですね。一応開発用に使うので、「php.ini-development」をコピーして「php.ini」にrenameします。
とりあえず動作確認が目的なので、マルチバイト文字列等の設定は後回しにします。
次にApacheとの連携を設定します。
Apacheのバージョンは先日入れたばかりの以下バージョン
しかし「dir」って打つのめんどくさいな。「ls」って打ちやすいよね。
D:\Program Files\Apache Software Foundation\Apache2.2\bin>httpd -v
Server version: Apache/2.2.11 (Win32)
Server built: Dec 10 2008 00:10:06
D:\Program Files\Apache Software Foundation\Apache2.2\bin>
そして突然ですが、Apache2.2以降(かな?)では、httpd.confに全部記載するのではなく、別の設定ファイルに記載(単位はいろいろあるとは思いますが)、httpd.confファイルの肥大化をできる限り防止する、というのが王道らしいです。(ちょっと参考サイトは見つかりませんでした・・・)
なので、「extra/httpd-php.conf」というファイルを新たに作成し、以下のように記載
LoadModule php5_module "D:/PHP/php5apache2_2.dll"
AddType application/x-httpd-php .php
PHPIniDir "D:/PHP"
その後、このファイルを起動時に読み込むように、httpd.confに以下を追記します。
# PHP
Include conf/extra/httpd-php.conf
[PHPIniDir]は、環境変数PHPRCに記載することも出来るらしいけど、まあ環境変数より一箇所見ればすむので、confファイルに記載してあります。
この後、お約束である以下phpファイルをDocumentRootの直下に「test.php」として作成し、アクセスしてみます。
http://localhost/test.php
そしたら真っ白い画面が。HTMLソースを見ると、とそのまま出力されている・・・。
しばらく色々やって、下記の様に変更しました。
そしたら出た。

この問題を調べているときに、以前インストールしたインストーラ版のPHPのディレクトリが存在していることに気づきました。もちろんアンインストールはしてあるはずなのですが、エクスプローラからは見えていなかった。
コマンドプロンプトからdirしたらあったので一応Windowsフォルダ等も調べたのですがもう残骸はなさそうでした。
今のところインストーラ版でPHPをVistaに入れるのはやめておいた方が無難ですね・・・。