apache2.2.25を2.2.29にアップデート(WindowsPC)したときのメモ
同時にPHP5.3.28をPHP5.4.37にアップデート
20141222


coskx
1.Apache2.2の退避

C:\Apache2.2\conf\httpd.confを安全な場所にコピーしておく
安全のためC:\Apache2.2をそのままコピーして「C:\Apache2.2 - コピー」を作っておく


2.Apache2.2.29


ApacheはWWWサーバを実現するソフトであり,WindowsPCでも動作させることができる。

2-1.Apache2.2.29をダウンロード

msiのインストーラがApache HTTP Server Project から公開されなくなったので
次のようにzipをダウンロード

http://httpd.apache.org

において,
Apache HTTP Server 2.2.29 (httpd): 内の •Binaries に進み

Index of /pub/apache//httpd/binaries

win32
に入ると,Apache HTTP Server Project はbinaryファイルは配布しないので,個々のサイトで配布している
と書いてある。その中に「•Apache Lounge」というところがあるので,

http://www.apachelounge.com/download/
ここで,ダウンロードする。左側の四角の中にAdditional+VC9に入ると
(http://www.apachelounge.com/download/additional/)

「Apache 2.2.29 (legacy) Same as above, except build with OpenSSL 0.9.8zc instead of 1.0.1j 」があるので

httpd-2.2.29-win32-ssl_0.9.8-VC9.zip 

をダウンロード。


2.Apache2.2.29をインストール

解凍するとApache2というディレクトリが作られている。
この中身すべてを既存のC:\Apache2.2に上書きコピーする。
C:\Apache2.2\conf内のhttpd.confをhttpd_org.confに名前変更
「1.」で退避したhttpd.confをC:\Apache2.2\confにコピーする。

★OpenSSLが使われている時
C:\Apache2.2\conf\extra内のhttpd-ssl.confのオリジナルコピーを作ってから
httpd-ssl.confの中身を修正
文字列 apache2/ を apache2.2/ に全置換

★PHPのバージョンによっては,libssh2.dllがないと叱られることがある。
その場合はphpのディレクトリ内の libssh2.dll を
C:\Apache2.2\bin にコピーすれば良い。

2-3.apache2.2の再起動

タスクトレイ内のApacheMonitorで再起動する。

ブラウザで「http://localhopst/」
「It works!」が表示されたら成功


3.PHP 5.4

3-1.PHP5.4.37をインストール(PHP 5.4 (5.4.37))
 
 http://php.net/downloads.php
 Windows downloads
http://windows.php.net/download#php-5.4
 PHP 5.4 (5.4.37)
 VC9 x86 Thread Safe (2015-Jan-21 21:04:23)
Zip [16.28MB]
sha1: 778b8e37fcaaf64fbce1fa087995ce5465732969

(x64ではなく,x86でthreadsafeのものを選ぶ ★重要★)
 「VC9 x86 Thread Safe zip」
  php-5.4.37-Win32-VC9-x86.zip


解凍したものをすべてc:\phpへ


3-2.PHP.iniを設定

c:\php\php.ini-development またはc:\php\php.ini-production を
コピーし,php.iniに名前を変更する。
(開発向けはは前者を,実用上は後者を使う)

ファイル: c:\php\php.ini

 ------------------------------------------------------
(略)
 
; On windows:
 ; extension_dir = "ext"
 
 extension_dir = "C:\PHP\ext"  ディレクトリextの場所を設定
 
 (略)
 
[Date]
 ; Defines the default timezone used by the date functions
 ; http://php.net/date.timezone
 ;date.timezone =
 date.timezone ="Asia/Tokyo"
 
php.iniにアップロードできるファイルサイズの制限が記述されているので、それを変更する。
 
upload_max_filesize = 512M
 post_max_size = 512M
 memory_limit = 512M
 max_execution_time = 0
 
 extension=php_mbstring.dll ; mbxxxxの関数を使うため
extension=php_exif.dll      ; Must be after mbstring as it depends on it
 
 extension=php_mysql.dll ←文頭のコメントアウト(;)をはずす mysqlを使うため
extension=php_mysqli.dll ←文頭のコメントアウト(;)をはずす mysqlを使うため


3-3.apache2.2の再起動

タスクトレイ内のApacheMonitorで再起動する。

無事にApacheを再起動できたら、テスト用のPHPファイルを作ってみます。
中身は以下のように書きます。


ファイル: C:\Apache2.2\htdocs\info.php ←新しく作る

<?php

phpinfo();

?>


そしてこのファイルにアクセスしてみます。

http://localhost/info.php

青っぽい表がずらーっとある、phpinfoの画面が表示されたら成功。