・2018/02/17
Windowsパソコンに Apache 2.2 + PHP 4.4.9の Webサーバ環境を構築する手順(最後の砦)
(過去の遺産等のしがらみでどうしても PHP 4.4系を Windowsで動かしたいと言う場合に)
Tags: [Windows開発]
● Windowsパソコンに Apache 2.2 + PHP 4.4.9の Webサーバ環境を構築する手順(最後の砦)
過去の遺産等のしがらみでどうしても PHP 4.4系を Windowsパソコンで動かしたいと言う場合に
Apache系と nginxの PHPスクリプトの実行速度比較
Webサーバ + PHPスクリプトの構成で動くアプリを実行した例です。
実行環境 | 処理時間 | nginx速度比(遅さ) | 実行環境 |
Apache 2.0.63 + PHP 4.4.9 | 590秒 | 6倍 | Windows XP + Atom D525 |
Apache 2.2.25 + PHP 4.4.9 | 110秒 | 1.15倍 | Windows 10 + Atom X5-Z8350 |
Apache 2.4.29 + PHP 5.2.17 | 120秒 | 1.25倍 | Windows 10 + Atom X5-Z8350 |
nginx 1.12.2 + PHP 5.2.17 | 95秒 | - | Windows 10 + Atom X5-Z8350 |
※ PHP 5.2.17は PHP 4互換モードを有効(zend.ze1_compatibility_mode = On)
※ Windows 10 + Atom X5-Z8350実行環境は Morefine M1sを使用
●用意する物
・Apache本体 Apache 2.2.25(no_ssl版と openssl版は好みで)
httpd-2.2.25-win32-x86-no_ssl.msi
httpd-2.2.25-win32-x86-openssl-0.9.8y.msi
Index of /dist/httpd/binaries/win32
・PHP 4.4.6本体
php-4.4.6-Win32.zip
PHP museum Index of /win32/
・PHP 4.4.9本体(こっちを使用した)
php-4.4.9-Win32.zip
PHP museum Index of /php4/
・Apache 2.2で PHP4を動かす為の差し替え DLL
php4apache2_2-apache2handler.zip
http://www.devside.net/download/components/php4apache2_2-apache2handler.zip
リンク切れなので Internet Archive: Wayback Machineに URLを入れて拾う。
Internet Archive: Wayback Machine
● Apache本体をインストールする。
msiファイルをダブルクリックでインストール。
好みで下記のディレクトリにインストールする。
C:\00_Web\bin\Apache22\
※ MSIファイルを解凍する場合
msiexec /a httpd-2.2.25-win32-x86-no_ssl.msi /qb TARGETDIR=C:\00_Web\bin\tmp\ /L*V "C:\00_Web\httpd.log"
※ MSIファイルを自動インストールする場合
msiexec /i httpd-2.2.25-win32-x86-no_ssl.msi /qb INSTALLDIR=C:\00_Web\bin\Apache22\ /L*V "C:\00_Web\httpd.log"
● Apacheのサービスを停止して無効にする。
※管理者権限のコマンドラインで実行する。
sc stop Apache2.2
sc config Apache2.2 start= disabled
● PHP本体をインストールする。
php-4.4.9-Win32.zip
を解凍する。
好みで下記のディレクトリにインストール(解凍)する。
C:\00_Web\bin\PHP4
● PHP差し替え DLLをインストールする。
php4apache2_2-apache2handler.zip
を解凍する。
必ず PHPと同じディレクトリに php4apache2_2.dllをコピーする。
C:\00_Web\bin\PHP4\php4apache2_2.dll
● Apacheの設定ファイル httpd.confファイルを編集する
C:\00_Web\bin\Apache22\conf\httpd.conf
をテキストエディタで開いて下記の行を追加する。
61行目あたり。
# Example:
# LoadModule foo_module modules/mod_foo.so
#
LoadModule php4_module C:\00_Web\bin\PHP4\php4apache2_2.dll
175行目あたり。
#ServerName lcoalhost:80
ServerName lcoalhost:80
※ Could not reliably determine the server's fully qualified domain name, using xxx.xxx.xxx.xxx for ServerName
httpd.confファイルの一番最後に下記をコピペする。
# PHP
<FilesMatch ".+\.ph(p[345]?|t|tml)$">
SetHandler application/x-httpd-php
</FilesMatch>
<FilesMatch ".+\.phps$">
SetHandler application/x-httpd-php-source
Require all granted
</FilesMatch>
<FilesMatch "^\.ph(p[345]?|t|tml|ps)$">
Require all granted
</FilesMatch>
<IfModule php4_module>
PHPIniDir "C:\00_Web\bin\PHP4"
</IfModule>
PHPIniDirは php.iniを C:\00_Web\bin\PHP4から読み込む設定。
(Windowsディレクトリに php.iniを置いて、C:\Windowsディレクトリを汚したくない。)
● PHPの設定ファイル php.iniファイルを編集する
C:\00_Web\bin\PHP4\php.ini-dist
または、
C:\00_Web\bin\PHP4\php.ini-recommended
のファイルを php.iniの名前にリネームする(コピーでも良い)
C:\00_Web\bin\PHP4\php.ini
をテキストエディタで開いて好みで編集する。
443行目の extension_dir = "./"行を削除するか先頭に ;を付けてコメント化する。
;extension_dir = "./"
php.iniファイルの下記の行を書き換える。(該当セクションの直下にコピペでも良い)
※先頭の ;文字を削除して「有効化」する事。
※下記の設定内容は「一例」です。
[PHP]
output_handler = mb_output_handler
extension_dir = "C:\00_Web\bin\PHP4\extensions"
extension=php_mbstring.dll
[mbstring]
mbstring.language = Japanese
mbstring.internal_encoding = UTF-8
mbstring.http_input = auto
mbstring.http_output = UTF-8
● PHPの設定ファイル php.iniファイルの読み込み先の設定
PHP - 設定ファイル
設定ファイル (php.ini) は PHP の起動時に読み込まれます。 PHP のサーバーモジュール版では、Web サーバーの起動時に 一度だけ読み込まれます。CGI 版と CLI 版では、スクリプトが呼び出される度に読み込まれます。
PHPRC 環境変数。
PHP.exe単体で動かす場合で php.iniファイルの場所を指定する場合。
(httpd.confファイルは Apache Webサーバで PHPを動かす場合にだけ有効なので)
set PHPRC=C:\00_Web\bin\PHP4
※ 上記の環境変数の設定をしなくても php.exeと同じディレクトリの php.iniを自動で読み込みました。
● Apache Webサーバの実行ファイルを手動で実行する。
C:\00_Web\bin\Apache22\bin\httpd.exe
を必要な時に実行する。
※もちろん常時必要な場合は「サービス」で「自動実行」しても良い。
おなじみの phpinfo.phpを動かして、PHPの動作を確認する。
C:\00_Web\bin\Apache22\htdocs\phpinfo.php
<?php
phpinfo();
?>
mbstring extensionの有効化をチェック
C:\00_Web\bin\Apache22\htdocs\phpmbstring.php
<?php
print_r(mb_get_info());
?>
http://localhost/
It works!
http://localhost/phpinfo.php
PHP Version 4.4.6
Build Date Feb 28 2007 21:30:43
http://localhost/phpmbstring.php
Array (
[internal_encoding] => UTF-8
[http_input] =>
[http_output] => UTF-8
[func_overload] => no overload
[mail_charset] => ISO-2022-JP
[mail_header_encoding] => BASE64
[mail_body_encoding] => 7bit
)
●コピペ実行用お気楽バッチファイル
mkdir C:\00_Web\bin\
msiexec /i httpd-2.2.25-win32-x86-no_ssl.msi /qb INSTALLDIR=C:\00_Web\bin\Apache22\ /L*V "C:\00_Web\httpd.log"
UnZip.exe php-4.4.9-Win32.zip C:\00_Web\bin\
ren C:\00_Web\bin\php-4.4.9-Win32 PHP4
UnZip.exe php4apache2_2-apache2handler.zip C:\00_Web\bin\TMP\
copy C:\00_Web\bin\tmp\mod_php4\php4apache2_2.dll C:\00_Web\bin\PHP4\
rmdir /Q /S C:\00_Web\bin\TMP\
Tags: [Windows開発]
●関連するコンテンツ(この記事を読んだ人は、次の記事も読んでいます)
Apache Webサーバを過剰なアクセスや DoS攻撃から守る modモジュールの紹介
対 DoS攻撃用の Apache2モジュール mod_evasive、mod_dosdetector、mod_limitipconn、fail2ban等の紹介
Windowsパソコンに Apache 2.4 + PHP 5.2.17の Webサーバ環境を構築する手順(最後の砦)
過去のプログラム等でどうしても PHP 5.2系を Windowsで動かしたいと言う場合に
Windowsパソコンに nginx + PHP 5.2.17の高速 Webサーバ環境を構築する手順
nginxを使って Apacheよりも高速な Webサーバ環境を Windowsで構築する PHP 5.2系
C# .NETで ZIPファイル解凍ツール UnZipをソースリスト 1行で自作する方法、Windows .NET専用
Visual Studio 2013の C# .NET 4.5で ZipFile.ExtractToDirectoryを使い、UnZip解凍ツールを作成
[HOME]
|
[BACK]
リンクフリー(連絡不要、ただしトップページ以外は Web構成の変更で移動する場合があります)
Copyright (c)
2018 FREE WING,Y.Sakamoto
Powered by 猫屋敷工房 & HTML Generator
http://www.neko.ne.jp/~freewing/software/windows_apache_22_php_449/