インストール

※Apache2.2が「C:\Opt\Apache2.2」にインストールされている前提

  • バイナリのダウンロード

http://windows.php.net/download/

  • 注意点
phpのバージョンが新しすぎると動かないので、少し古いものを入れる
アーキテクチャはapacheと合わせる。apacheがx86なのにphpをx64にすると動かない

現在最新はPHP 5.3 (5.3.28)
なので、x86版のスレッドセーフ版を利用

http://windows.php.net/downloads/releases/php-5.3.28-Win32-VC9-x86.zip

  • ダウンロードしたZIPを解凍
ダウンロードした「php-5.3.28-Win32-VC9-x86.zip」を解凍する。

  • フォルダのリネーム&移動
解凍したフォルダ名を「php」にリネームし、「php」フォルダごと「C:\Opt」に移動する。
C:\Opt\php

  • php.iniファイルの準備
「php」フォルダ内にある「php.ini-development」ファイルを「php.ini」にリネームし、「C:\WINDOWS」フォルダ内にコピーする。

  • php.iniの編集
ソースが表示されてしまう場合は以下を実施
short_open_tag = Off
↓
short_open_tag = On

;output_handler =
↓
output_handler = mb_output_handler

;default_charset = "UTF-8"
↓
default_charset = "UTF-8"

;include_path = ".;c:\php\includes"
↓
include_path = ".;c:\Opt\php\includes"

doc_root =
↓
doc_root = "C:\Opt\Apache2.2\htdocs"

; extension_dir = "ext"
↓
extension_dir = "ext"

;extension=php_mbstring.dll
↓
extension=php_mbstring.dll

;extension=php_gd2.dll
↓
extension=php_gd2.dll

;date.timezone =
↓
date.timezone = "Asia/Tokyo"

;sendmail_from = me@example.com
↓
sendmail_from = 管理者メールアドレス

;mbstring.language = Japanese
↓
mbstring.language = Japanese

;mbstring.internal_encoding = UTF-8
↓
mbstring.internal_encoding = UTF-8

;mbstring.http_input = UTF-8
↓
mbstring.http_input = auto

;mbstring.http_output = pass
↓
mbstring.http_output = utf-8

;mbstring.encoding_translation = Off
↓
mbstring.encoding_translation = On

;mbstring.detect_order = auto
↓
mbstring.detect_order = auto

;mbstring.substitute_character = none
↓
mbstring.substitute_character = none

;mbstring.func_overload = 0
↓
mbstring.func_overload = 0

postgreSQLを使う場合
;extension=php_pgsql.dll
↓
extension=php_pgsql.dll

;extension=php_pdo_pgsql.dll
↓
extension=php_pdo_pgsql.dll


  • apacheのhttpd.confを編集
C:\Opt\Apache2.2\conf\httpd.confをメモ帳などで開く

#LoadModule rewrite_module modules/mod_rewrite.so
↓
LoadModule rewrite_module modules/mod_rewrite.so

追加
↓
LoadModule php5_module "C:\Opt\php\php5apache2_2.dll"
LoadModule php5_module "C:\Opt\php\php5ts.dll"

<IfModule dir_module>
    DirectoryIndex index.html
</IfModule>
↓
<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

<IfModule alias_module>
    ScriptAlias /cgi-bin/ "C:/Opt/Apache2.2/cgi-bin/"
</IfModule>
↓
<IfModule alias_module>
    ScriptAlias /cgi-bin/ "C:/Opt/Apache2.2/cgi-bin/"
    # PHPフォルダの場所
    ScriptAlias /php/ "C:/Opt/php/"
    PHPIniDir "C:\Windows"
</IfModule>
※PHPIniDirが正しくないと、phpinfo()の結果に反映されないので、ここを疑うこと!

<Directory "C:/Opt/Apache2.2/cgi-bin">
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>
↓
<Directory "C:/Opt/Apache2.2/cgi-bin">
    AllowOverride None
    Options Indexes FollowSymLinks ExecCGI
    Order allow,deny
    Allow from all
</Directory>

<IfModule mime_module>
    #AddHandler cgi-script .cgi
    #AddType text/html .shtml
↓
<IfModule mime_module>
    # コメントを外す
    AddHandler cgi-script .cgi
    AddType text/html .shtml
    # 以下を追加する
    AddHandler server-parsed .shtml
    AddHandler server-parsed .html
    AddHandler application/x-httpd-php .php
    AddType application/x-httpd-php-source .phps

アクセス権をきちんとしない場合は、以下はやらなくてもいい。逆に見れなくなってしまう。。。
# Virtual hosts
#Include conf/extra/httpd-vhosts.conf
↓
# Virtual hosts
Include conf/extra/httpd-vhosts.conf

  • システム変数に登録
以下のパスをPATHに追加する
C:\Opt\php;C:\Opt\php\ext

  • apache再起動

  • 確認

phpinfo.phpというファイルをapcheのhtdocsに置く。中身は以下のとおり

<?
phpinfo();
?>

ブラウザで以下にアクセスする
http://localhost/phpinfo.php

※ソースが表示されてしまう場合は、php.iniのshort_open_tagがonかどうかを確認する

2014/8/6
最終更新:2014年08月10日 13:02