本来はPHPよりもColdfusionを使っているのですが、Wordpressなどを利用する必要がある為、IISでPHPをインストールする手順をメモしておきます。
PHPのサイトからダウンロード
http://windows.php.net/download
個人的にはインストーラーはあまり信用していない為、基本的にZIPファイルでバイナリデータをダウンロードして使用します。
非スレッドセーフ(Non Thread Safe )を推奨
ダウンロードにある、スレッドセーフ(Thread Safe)はマルチスレッド間の共有データの処理を考慮したバージョン、非スレッドセーフ(Non Thread Safe )は、マルチスレッド間の共有データの処理を考慮しないパフォーマンス優先とも言えるバージョン。
IIS を使う場合は、非スレッドセーフ版の PHP を推奨します。非スレッドセーフ版は » PHP for Windows: Binaries and Sources Releases. で取得できます。
上記のように公式サイトではIISを使う場合は非スレッドセーフ版の PHPを推奨していますので、Non Thread Safeを使用。基本的に64bit環境なので、32bit環境の人はx86をダウンロードして利用。
ダウンロードしたPHPを設置
PHPのインストールには3つ方法があります。
- php5ts.dllをWindowsのシステムディレクトリ(例:C:\Windows\System32)にコピーする
- php5ts.dllをWebサーバのディレクトリにコピー
- phpのインストールディレクトリ(C:\php)にパスを通す
今回はわたしは3番目のパスを通すやり方でやっていきます、将来的にメンテナンスも含めてわかりやすいのが、個人的に3番目。
ダウンロードしたzipを「PHP」のフォルダーを作成して、そこに移動。PHPのディレクトリを「c:¥PHP」へ移動する、移動先はどこでもいいと思いますがわかりやすいのはC:直下。
php.iniファイルを作成
php.ini-developmentを同じディレクトリにコピーしてファイル名を”php.ini”に変更し、その中身を変更する。
extension_dir
拡張モジュールのディレクトリへのパスを絶対もしくは相対パスで指定します。
extension_dir = "C:\PHP\ext"
log_errors
PHPのログ出力機能の有効化・無効化を設定します。php.ini-developmentではデフォルトでONの設定になっています。ログは基本的に残しておいた方がいいと思います。
log_errors = On
error_log
PHPのエラーログの書き出し場所。指定した場所に保存します。
error_log = "C:\php\logs\php_errors.log"
date.timezone
PHPのタイムゾーンの設定
date.timezone = Asia/Tokyo
cgi.force_redirect
PHPのディレクトリセキュリティ機能の有効化・無効化を設定します。IISでは無効化にする必要あり。
cgi.force_redirect = 0
open_basedir
クライアントがアクセスできる範囲を設定、wwwrootのみを使う場合はパスを入力する
open_basedir = none
cgi.fix_pathinfo
cgi.fix_pathinfo=1
upload_tmp_dir
phpでformからファイルを受け取る時の一時保存場所。php内にtempフォルダを作成し追加しましたが、場所はおそらくどこでもいいはずです。
upload_tmp_dir= ""C:\php\temp\"
php_mysql.dll、php_pdo_mysql.dll
PHPからMySQLなどデータベースを利用する場合
extension = php_mysql.dll
extension=php_pdo_mysql.dll
IISでPHPのパスを設定する
IIS での FastCGI を有効化し、「ハドラーマッピング」を選択しから「モジュールマップを追加」を選択。
要求パス:*.php
モジュール:FastCgiModule
実行可能ファイル:C:\PHP\php-cgi.exe
名前:PHP(わかりやすいので)
PHPフォルダにアクセス権を追加
IIS_IUSRSのユーザーを追加しアクセス権をPHPのフォルダに追加する
IISを再起動しphpinfoで確認
PHPの拡張子でファイルを作成し以下のソースで保存
<? phpinfo();?>
そして、そのファイルにアクセスすして画面が表示されれば成功となります。
注意点
php.iniの設定はしっかりやっておかないと、500エラーでかなり苦戦することになります、使用後もWordpressなどを使用する際は、アップロード先の一時保管のフォルダのアクセス権を設定しておかなければ後に結構ハマったりもしました。要注意です。