HOME
  Security
   Software
    Hardware
  
FPGA
  CPU
   Android
    Raspberry Pi
  
nLite
  Xcode
   etc.
    ALL
  
LINK
BACK
 

2018/02/17

Windowsパソコンに Apache 2.2 + PHP 4.4.9の Webサーバ環境を構築する手順(最後の砦) 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.9590秒6倍Windows XP + Atom D525
Apache 2.2.25 + PHP 4.4.9110秒1.15倍Windows 10 + Atom X5-Z8350
Apache 2.4.29 + PHP 5.2.17120秒1.25倍Windows 10 + Atom X5-Z8350
nginx 1.12.2 + PHP 5.2.1795秒-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モジュールの紹介
Apache Webサーバを過剰なアクセスや DoS攻撃から守る modモジュールの紹介

  対 DoS攻撃用の Apache2モジュール mod_evasive、mod_dosdetector、mod_limitipconn、fail2ban等の紹介

Windowsパソコンに Apache 2.4 + PHP 5.2.17の Webサーバ環境を構築する手順(最後の砦)
Windowsパソコンに Apache 2.4 + PHP 5.2.17の Webサーバ環境を構築する手順(最後の砦)

  過去のプログラム等でどうしても PHP 5.2系を Windowsで動かしたいと言う場合に

Windowsパソコンに nginx + PHP 5.2.17の高速 Webサーバ環境を構築する手順
Windowsパソコンに nginx + PHP 5.2.17の高速 Webサーバ環境を構築する手順

  nginxを使って Apacheよりも高速な Webサーバ環境を Windowsで構築する PHP 5.2系

C# .NETで ZIPファイル解凍ツール UnZipをソースリスト 1行で自作する方法、Windows .NET専用
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/