W.I.S. Laboratory
menu-bar

Apache PHP MySQL


Windowsで Apache + PHP + MySQL のサーバー構築

Windowsマシンに Apache + PHP + MySQL の組み合わせでサーバーを構築するときにてこずったので備忘録です。

私が使用した環境

OS: Windows7 Professional 32bit
仮想マシン: .NET4.0
Webサーバ: Apache 2.2.27
インタプリタ: PHP 5.4 (5.4.37)
データベース: MySQL 5.5.42

押さえるポイント

1. PHPを使うためにApacheのconfファイル書き換えが必要。
2. MySQLを使うためにPHPのiniファイル書き換えが必要。
3. MySQLはmsiインストーラーからインストールしたほうが無難。(rootのパスワード設定、my.iniの設定などしてくれる)
4. Apacheはインストールコマンドと常駐コマンドを一度ずつ実行しておく(cmd起動時に管理者モードで実行するのを忘れないように)
 c:\apache2\bin\httpd -k install
 c:\apache2\bin\httpd -k start
5. MySQLはbin下にパスを通しておく
 path c:\mysql\bin\;
6. MySQLはrootでログインしてからリモートアクセスできるようにコマンドを入力しておく
 mysql -u root -p
 grant all on *.* to root@"%" identified by '自分で設定したパスワード' with grant option;

Apacheのインストール

Apacheのサイトから適当なバージョンをダウンロードしておく。
C:\apache2\ に解凍する。
コマンドプロンプト(cmdまたはWindowsPowerShell)を管理者として実行する。
以下のコマンドを入力する。
c:\apache2\bin\httpd -k install
c:\apache2\bin\httpd -k start

動作チェック

ブラウザを立ち上げて、http://localhost/ へアクセスし、「It works!」と表示されたらOK。

PHPのインストール

PHPのサイトから適当なバージョン(Thread Safe版)をダウンロードしておく。(Windows downloads リンクから)
C:\PHP\ に解凍する。
C:\PHP\php.ini-development を php.ini にリネームする。

ApacheとPHPを繋げる

C:\Apache2\conf\httpd.conf を開き、以下の場所を探す。
<IfModule dir_module>
DirectoryIndex index.html
</IfModule>

下のように書き換える。
<IfModule dir_module>
DirectoryIndex index.html index.php
</IfModule>

最終行に以下を追加する。
PHPIniDir "C:\PHP"
LoadModule php5_module "C:\PHP\php5apache2_2.dll"
AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps

PCを再起動する。(またはApacheを再起動する)

動作チェック

C:\Apache2\htdocs\ の中に、index.php を作成する。
index.phpの中身は以下のようにする。
<?php
phpinfo();
?>

ブラウザを立ち上げて、http://localhost/index.php へアクセスし、PHPinfoが表示されたらOK。

MySQLのインストール

MySQLのサイトから適当なバージョンをダウンロードしておく。(zipではなくmsi版)
.NET4.0が必要なので、PCにインストールされていなかったらマイクロソフトのサイトからダウンロードし、あらかじめインストールしておく。
ダウンロードしたmsiファイルを実行する。
「Setup type」は「Custom」を選択。
「Location」内の「Browse」をクリックし、「C:\MySQL\」にインストールするように変更。

コンフィグ設定は以下の手順で進めていく。

1. Deteiled Configuration を選択
2. Developer Machine を選択
3. Multifunctional Database を選択
4. データファイルの置き場所は C:\MySQL Datafiles\ を選択
5. Decision Support(DSS)/OLAP を選択
6. Enable TCP/IP Networking の チェックON
7. Enable Strict Mode の チェックON
8. Best Support For Multilingualism を選択
9. Install As Windows Service の チェックON
10. Include Bin Directory in Windows PATH の チェックON
11. Modify Security Settings の チェックON
12. 設定したいパスワードを New root password と Confirm の2カ所に入れる
13. Execute をクリック
14. Finish をクリック

コンフィギュレーションは、英語を読みながら進めれば大体OK。
TCP/IPのファイアウォール設定はパスを通すようにチェックを入れ、Windowsのパスを通すためのチェックを入れておく。
サーバー用途は開発用(Developer)、DBはunicode(「日本語」とあるもの)を選択。
最後にrootのパスワードを設定。

PHPとMySQLを繋げる

C:\PHP\php.ini を開き、以下を追加する。(またはコメントアウトしてある行の「;」を外す)
extension_dir = "C:\PHP\ext"
extension=php_mbstring.dll
extension=php_mysql.dll
extension=php_mysqli.dll

PCを再起動する。(またはApacheを再起動する)
※php.iniを書き換えたときはApacheの再起動が必要

リモートアクセスの設定

コマンドプロンプト cmdを管理者として実行する。(WindowsPowerShellではダメ)
以下のコマンドを入力する。
mysql -u root -p

設定したパスワードを入力する。
以下のコマンドを入力する。
grant all on *.* to root@"%" identified by '自分で設定したパスワード' with grant option;

動作チェック

ブラウザを立ち上げて、http://localhost/index.php へアクセスし、PHPinfo内にMySQLの表示が確認できたらOK。

※実際にPHPからMySQLへアクセスする際は、「localhost」ではなく、IPアドレスで指定しないとうまくいかない。

[ 戻る ]
saluteweb