Perlの小部屋

Apacheのインストール

Apache2.4.41(64bit)をダウンロードし準備する

2014年末頃からWindows版インストーラがThe Apache Software Foundation.から配布されなくなったため WindowsへApacheをインストールする場合、ソースコードを自分でコンパイルするかサードパーティが配布しているバイナリを 使用する必要あり。

Apache

https://www.apachelounge.com/download/から
Apache 2.4.41 Win64 >「httpd-2.4.41-win64-VS16.zip」をダウンロード

Visual C++ 再頒布可能パッケージのインストール

ApacheはWindows®Visual Studio C ++でビルドされているので、WindowsでApacheを動かすにはWindowsにVisual Studio ランタイムがインストールされている必要があります。

Visual Studioがインストールされていない場合は 対応している(※)Visual Studioの Visual C++ 再頒布可能パッケージ(vc_redist_x64/86.exe)をダウンロードしてインストールしてください。

※ VC16はVisual Studio C ++ 2019でビルド ランタイム要
VC15はVisual Studio C ++ 2017でビルド ランタイム要
VC14はVisual Studio C ++ 2015でビルド ランタイム要

例)VC14の場合、Visual Studio 2015 Update 1 の Visual C++ 再頒布可能パッケージ(64bit版 vc_redist.x64.exe・32bit版 vc_redist.x86.exe)をhttps://www.microsoft.com/ja-JP/download/details.aspx?id=48145

ダウンロードした「httpd-2.4.41-win64-VS16.zip」を解凍

解凍するとhttpd-2.4.41-win64-VC16というフォルダができます。

Apache24というフォルダをまるごとC直下にコピー(「c:\apache24」フォルダへ展開)

Apacheの設定

Directoryの構成

C:\
 |
  Apache24
 |
  usr
 |
  var
     ∟ ssl
         ∟ cgi-bin
         ∟ Directory

■ httpd.confの修正 ■

C:\Apache24/conf/http.conf 修正

コメントを取る

LoadModule rewrite_module modules/mod_rewrite.so
SSL httpd-ssl.conf
LoadModule socache_shmcb_module modules/mod_socache_shmcb.so
LoadModule ssl_module modules/mod_ssl.so

ローカルサーバIP書き換える

#ServerName localhost:80
ServerName 127.0.0.1:80

ローカルのパソコン環境に合わせて変更
デフォルトのDocumentRootは"C:/Apache24/htdocs"

#DocumentRoot "${SRVROOT}/htdocs"
#<Directory "${SRVROOT}/htdocs">
DocumentRoot "C:/var/ssl"
<Directory "C:/var/ssl">

文字を追加する コメントを外す <Directory C:/var/ssl 内>
CGIを使う場合やSSIを使う場合は追加と変更
※サーバでSSIを許可するにはhttpd.confファイルまたは.htaccessファイルに次のディレクティブを指定

#↓Options Indexes FollowSymLinks
Options Indexes FollowSymLinks MultiViews ExecCGI Includes
AddType text/html .html
AddOutputFilter INCLUDES .html

<IfModule dir_module 内>
必要に応じて追加

#DirectoryIndex index.html
DirectoryIndex index.html index.shtml index.php index.cgi

cgi-binのディレクトリを変更

#ScriptAlias /cgi-bin/ "${SRVROOT}/cgi-bin/"
ScriptAlias /cgi-bin/ "C:/var/ssl/cgi-bin/"

#<Directory "${SRVROOT}/cgi-bin">
<Directory "C:/var/ssl/cgi-bin">

<Directory C:/var/ssl/cgi-bin内>に追加
/cgi-bin/ディレクトリ内の画像を処理するように設定

AddHandler image/gif .gif
AddHandler image/jpg .jpg

<IfModule mime_module 内>
PHPとCGIを使う場合は追加

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
AddType application/x-httpd-cgi .cgi
AddType application/x-httpd-cgi .pl
#↓コメントを取る
AddHandler cgi-script .cgi
#↓コメントを取る
AddHandler type-map var
#↓2行コメントを取る 拡張子htmlでもincludes (SSI)を利用できるように
AddType text/html .shtml
AddOutputFilter INCLUDES .shtml

#コメントを取る

Include conf/extra/httpd-ssl.conf

■ C:\Apache24/conf/extra/httpd-ssl.conf 修正 ■

C:/var/sslのフォルダーは用意する

#コメントを取る

#DocumentRoot "${SRVROOT}/htdocs"
DocumentRoot "C:/var/ssl"

Windows10のSSL設定

コントロールパネル>システムとセキュリティ>システム

システムの詳細設定

システム環境変数のPathをクリックして 編集を選択。

1)新規にC:\Apache24\binを追加
2)新規に追加
変数:OPENSSL_CONF
値:C:\Apache24\conf\openssl.cnf
Win32 OpenSSLでのCSR作成 コマンドプロンプトのアイコンを右クリックし「管理者として実行」を選択します。 Win32 OpenSSL Lightの場合は、setコマンドでopensslの設定ファイルを特定してから、opensslコマンドを実行します。

コマンドを実行

C:\WINDOWS\System32> set OPENSSL_CONF=C:\Apache24\conf\openssl.cnf

レジストリを修正

HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Apache2.4\ImagePath
"c:\apache24\bin\httpd.exe" -k runservice"
--->c:\apache24\bin\httpd.exe" -D SSL -k runservice
-D SSLを追加する

apache 2.4での証明書構成

sslの設定

1.秘密鍵(server.key)の生成

コマンドプロンプトのアイコンを右クリックし「管理者として実行」を選択します。

Apacheインストールディレクトリのbinに移動

2.公開鍵(server.csr)の生成

C:\Apache24\bin>openssl.exe req -new -key ..\conf\server.key -out ..\conf\server.csr -config ..\conf\openssl.cnf

Country Name (2 letter code) [AU]:JP
State or Province Name (full name) [Some-State]:Tokyo
Locality Name (eg, city) []:City
Organization Name (eg, company) [Internet Widgits Pty Ltd]:Company
Organizational Unit Name (eg, section) []:Section
Common Name (e.g. server FQDN or YOUR name) []:127.0.0.1
Email Address []:foo@bar.com

3.証明書(server.crt)の生成

C:\Apache24\bin>openssl.exe x509 -in ..\conf\server.csr -out ..\conf\server.crt -req -signkey ..\conf\server.key -days 365

これでC:\Apache24\confに証明書(server.crt)が生成

コマンドプロンプト Apache起動

c:\> c:\apache24\bin\httpd.exe

Apacheを実行すると「Windowsセキュリティの重要な警告」が表示されるので Apacheが通信できるよう ネットワーク上での通信を許可。

任意のブラウザーを起動し、アドレスに「http://localhost/」又は「http://127.0.0.1/」と入力します。 ブラウザに「It Works!」と表示されればApacheが正常に動作。

サービスへ登録 コマンドプロンプト管理者権限
ApacheをPCにインストールします。インストーラー版では無いのでコマンドプロンプトからインストールします

Apacheの起動や停止が簡単に行える[Apache Monitor]をスタートアップに登録。

ApacheMonitor.exeが[bin]フォルダの中にあるので、ショートカットを作成し、それを次のパスに配置。
< C:\Users\[ユーザ名]\AppData\Roaming\Microsoft\Windows\スタート メニュー\プログラム\スタートアップ >
これでApache MonitorがPCを起動するたびにタスクトレイに常駐。

※AppDataフォルダはデフォルトは隠しフォルダになっていますので、隠しフォルダを表示する設定。

最後にコマンドプロンプトで httpd.confエラーチェック

Windows 10でApache HTTPD Serverが起動しない場合

Windows 10 Pro

Windows Server 等を導入している場合、IISのサービスがすでに起動している状態なのでIIS を停止します

コンピュータの管理

サービスとアプリケーション>サービス
World Wide Web Publishing Service  (W3SVC) 自動-->手動へ変更
Web Deployment Agent Service  (WAS) 自動-->手動へ変更

コントロールパネル

プログラムと機能>Windowsの機能の有効化または無効化
でインターネットインフォメーションサービスにチェックを取りOKを選択
ページトップ