インフォメーション
自宅サーバー設置方法(Apache24/PHP80)



ごく普通のご家庭では、いまどき、自宅サーバーなんて全く必要ありません。Webやブログをやるなら廉価なレンタルサーバーとWordPressの組み合わせで何でもできてしまいます。でも、私はかれこれ20年以上、自宅サーバーでWebサイトを書き、レンタルサーバーに転送して公開しています。PHPやCGIで動的なWebサイトを作るには、自宅サーバーは必須です。このページではWindowsパソコンに、自宅サーバーを設置する方法について解説しています。ちなみに、Perlを使用しないのであれば、WAMPシステムを使えばより簡単に自宅サーバーを設置できます。多分このページは、誰も必要ないかも。(2021年2月1日)


ファイルのダウンロード元はネットで再確認し、Apache、PHP、Perlの最新バージョンを取得する。
下記は2021年2月現在のDL先。DL後、以下の設定ファイルを参考にApacheとPHPを設定する。

Windows10(Home or Pro)のディレクトリは以下の通り。

   C:/Apache24、    Apache2.4.46 		アパッチサーバーフォルダ
    ...
    Perl      	ActiePerl5.24.3 	CGI動作用Perlフォルダ
    php5      	php5.2.17    	2020年まで使用していた旧バージョンPHP
    php56     	php5.6.40    	段階的にアップグレードするための確認用
    php74     	php7.4.14    	段階的にアップグレードするための確認用
    php80     	php8.0.1    	現在使用中のPHPフォルダ
    ...
    usr        CGIを動作させるための偽usrサイト、スペルはuserではない
    ...
   D:/Website     	PHPドキュメントルートフォルダ → ここにWebサイトを設置する。

PATHの設定

  コントロールパネル → システムの詳細設定 → 環境変数 → システム環境変数内のPATHを選び、編集
  → PATHの一覧表示 → 新規をクリック → 一覧に C:\php80 を追加する。
  → Perlも同様に、C:\Perl\bin、C:\Perl\site\bin の2つのPATHを追加。

Apache2.4.46  https://www.apachelounge.com/download/

  Windows版は本家の apache.com サイトでは配布していないため、上記アパッチラウンジから取得。
  x64-Windows版ダウンロードファイル:httpd-2.4.46-win64-VS16.zip

  設定ファイル:C:/Apache24/conf/httpd.conf の内容を以下の通り書き換え設定する。

      36行:Define SRVROOT "c:/Apache24"    		#が付いていれば外す
    103行:LoadModule cgi_module modules/mod_cgi.so	#が付いていれば外す
    250行:# DocumentRoot "${SRVROOT}/htdocs"  	#でコメントアウト
    251行:# <Directory "${SRVROOT}/htdocs">   		#でコメントアウト
    252行:DocumentRoot "D:/Website"       		追加して、HPのルートDIRを自宅urlに変更
    253行:<Directory "D:/Website">        		追加して、HPのルートDIRを自宅urlに変更
    286行:DirectoryIndex index.html         		index.htm index.php を追加
    369行:ScriptAlias / cgi-bin / "D:/Website"    		cgiのルートDIRを自宅urlに変更
    385行:<Directory "${SRVROOT}/cgi-bin">     	<... "D:/Website"> 自宅urlに変更する
    389行:<Directory...>               	の下にOptions +ExecCGI を追記
    434行:AddHandler cgi-script .cgi .pl        	#を外し、.pl を追加
    540行:末尾行に以下の3行を追加し、PHP80と同期させる

      LoadModule php_module "C:/php80/php8apache2_4.dll"
      PHPIniDir "C:/php80"
      AddHandler application/x-httpd-php .php

  C:/Apache24/bin/ApacheMonitor.exe でタスクバーにApacheServiceMonitorを設置し、
  タスクバーからServiceMonitorを起動し、Apacheの起動、再起動、停止を行える様になる。

  Apacheの自動起動は、コマンドプロンプトを管理者として起動し、cd C:\Apache24/bin へ
  ディレクトリを移動後、C:\Apache24\bin>httpd -k install でWinサービスに登録する。
  正常に登録されると、Win管理ツール「サービス」で、Apach2.4が「実行中 自動」と表示される。
  
  注:ポートを公開しない限り、外部からサーバーの中を見られたり、攻撃される事はありません。

Visual C++ 2015-2019  クリックでダウンロード → https://aka.ms/vs/16/release/vc_redist.x64.exe

  PHP80の動作には、上記の最新版のVisual C++ 再配布可能パッケージが必要。

PHP8.0.1    https://windows.php.net/download/

  Windows版のApache用は、VS16 x64 TreadSafe(非NTS)、php-8.0.1-Win32-vs16-x64.zip

  設定ファイルは、C:/php80/php.in.developmentをコピーし、ファイル名を php.ini に書き換える。
  その後、C:/php80/php.ini の内容を以下の通り書き換え設定する。

    719行:default_charset = "UTF-8"        	;を外し、"SJIS"に書き換える
    745行:include_path = ".;c:\php\includes"    	Win用の;を外し、phpをphp80に書き換える
    767行:extension_dir = "c:\php\ext"       	Win用の;を外し、c:\php80\ext に書き換える
    918行以下の ; を外し、必要に応じて拡張モジュールを追加する

      extension=ftp			FTP操作関数
      extension=gd2			画像処理関数
      extension=mbstring		日本語文字列操作、●必須です
      extension=exif			デジカメ撮影情報操作、mbstringの後に記述する事
      extension=mysqli		データベース操作
      extension=openssl		SSL/TSL化に必要

      970行:date.timezone = "Asia/Tokyo"      	;を外し、Aisa/Tokyoを追記
    1627行:mbstring.language = Japanese      	;を外す
    1665行:mbstring.detect_order = auto      	;を外し、SJIS,UTF-8,EUC-JP,JISに変更

  設定完了後、Apacheをstartまたはrestartし、ブラウザから http://127.0.0.1/ を呼び出すと
  「It Works!」と表示される。

ActivePerl5.24  https://www.activestate.com/products/perl/downloads/

  自己解凍ファイルを開き、インストールする、PATHの設定以外は、特に設定は必要ない。

  CGIを外部サーバー(我が家はXrea.com)と共通の #!/usr/local/bin/perl で動く様にするために、
  C:/usr/local/bin/ を作成し、中にperl.exeだけをコピーして入れておく。
  本体のPerlへのPathが通っていれば、Perl.exeはどこに置いていても動作する。