Windows への Apache インストール方法

最終更新日: 公開日: 2019年04月

ホームページの確認をする際にいちいちサーバーにファイルをアップロードするより,自分のパソコンで出来たほうが早い.
備忘録として,Windows パソコンに Apache をインストールして,設定する方法を書いておく.

ダウンロード

apache

https://www.apachelounge.com/download/
から最新のものをダウンロード
Win64 か Win32 は自分の OS に合わせる.

解凍したら適当なディレクトリに移す.

仮に
C:\apache24
に移したと仮定する.

php

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

ここから使用するバージョンの php をダウンロードする.
OS の 32/64bit を合わせて,Thread Safe の Zip というリンクからダウンロードする.

解凍して好きな場所に置く.

以下,
c:\php
にインストールしたと仮定する.

設定方法

c:\home\test にファイルが置いてあり,それを

http://test/

でアクセスできるようにすることを目標とする.(ホスト名は何でもよい.)
test 以外に複数のホストを動かせるように vhost.conf を設定する.

httpd.conf

設定ファイルである
C:\apache24\conf\httpd.conf
を編集する.
php用の設定など,まだ書かれていないものは追記する.
php用の設定はインストールしたバージョンに注意して,バージョンに応じて追記する.

「# コメントを外す」と書いてある部分は左端に # でコメントアウトされている場合にそれを外して有効化するということです.

Define SRVROOT "c:/apache24"

Include conf/extra/httpd-vhosts.conf # コメントを外す

ServerName test # コメントを外す

# php 用
AddHandler application/x-httpd-php .php

# php5用の設定
LoadModule php5_module "c:/php/php5apache2_4.dll"
PHPIniDir "c:/php"

# php7用の設定
LoadModule php7_module "c:/php7/php7apache2_4.dll"
PHPIniDir "c:/php7"

# php8用の設定
LoadModule php_module "c:/php8/php8apache2_4.dll"
PHPIniDir "c:/php8"

php はバージョンに応じてどれかを設定

PHP8.2 の場合

WordPress インストール目的で PHP8.2 を入れる場合はこれでは終わらない.
WordPress のサイトヘルスで以下のような「1つ以上の推薦モジュールが存在しません」警告が出る.

サイトヘルスの1つ以上の推薦モジュールが存在しません

つまり,curl や intl のモジュールも必要になってくる.
apache の logs/error.log に以下のようなエラーが記録されてしまう.

PHP Warning:  PHP Startup: Unable to load dynamic library 'curl' (tried: c:/php8/ext/curl (\xe6\x8c\x87\xe5\xae\x9a\xe3\x81\x95\xe3\x82\x8c\xe3\x81\x9f\xe3\x83\xa2\xe3\x82\xb8\xe3\x83\xa5\xe3\x83\xbc\xe3\x83\xab\xe3\x81\x8c\xe8\xa6\x8b\xe3\x81\xa4\xe3\x81\x8b\xe3\x82\x8a\xe3\x81\xbe\xe3\x81\x9b\xe3\x82\x93\xe3\x80\x82), c:/php8/ext/php_curl.dll (\xe6\x8c\x87\xe5\xae\x9a\xe3\x81\x95\xe3\x82\x8c\xe3\x81\x9f\xe3\x83\xa2\xe3\x82\xb8\xe3\x83\xa5\xe3\x83\xbc\xe3\x83\xab\xe3\x81\x8c\xe8\xa6\x8b\xe3\x81\xa4\xe3\x81\x8b\xe3\x82\x8a\xe3\x81\xbe\xe3\x81\x9b\xe3\x82\x93\xe3\x80\x82)) in Unknown on line 0

(特にプラグインやテーマのアップデート時には curl が必要)
path を通せばよいと書いてあるサイトもあったが,php8.2.11 の場合はダメだった.
以下のように直接読み込ませる必要があった.これも httpd.conf に記述する.

# curl
LoadFile "c:\php8\libssl-3-x64.dll"
# intl
LoadFile "c:\php8\icuio71.dll"

8.3 の時はこれも入れる必要があった.(上のファイルは少しバージョンが上がっている.)

# ssh
LoadFile "c:\php8\libssh2.dll"

以下のページを参考にさせていただいた.こちらは php8.1.6

httpd-vhosts.conf

C:\apache24\conf\extra\httpd-vhosts.conf

ここでサイトの設定を行う.
こちらも以下のように追記する.
test というホストで,ファイルが c:/home/test/ にある場合は以下のようになる.

<VirtualHost *:80>
  ServerName test
  DocumentRoot "c:/home/test/"
  ErrorLog "logs/test-error.log"
  CustomLog "logs/test-access.log" common
  <Directory "c:/home/test">
    AllowOverride All
    Require all granted
  </Directory>
</VirtualHost>

php.ini

php をインストールしたディレクトリに php.ini を置く

php.ini-development を php.ini に変更
必要なら設定を変更する.

拡張ライブラリのディレクトリは指定しないとモジュールが使えないかもしれない.

extension_dir = "c:/php8/ext/"

hosts

http://test/ でアクセスできるように設定する.

Windows の hosts ファイルである
c:\Windows\System32\drivers\etc\hosts
を管理者でエディタを開いて編集する.

127.0.0.1		localhost test

と記述する.

不明な場合は「hosts ファイルの変更方法」を参照してください.

.htaccess

以下は特定のディレクトリで php ファイルを実行できるようにする設定
c:\home\test\.htaccess

この設定で
c:\home\test\php
のディレクトリだけ php が動く.

拡張子は html でも動くように設定.

AddType application/x-httpd-php .php .html
#php_value include_path '.:/home/test/php' # これは unix 用の設定
php_value include_path ".;C:\\home\\test\\php"

linux や bsd など unix の本番サーバーに上げるときは記述が違うので要注意.

起動テスト

コマンドプロンプトで

cd C:\apache24\bin
httpd

とすると起動されるが,エラーの場合はここにメッセージが表示される.

エラーが出る場合はこのメッセージを見て,設定を修正する.

c:\home\test\index.html
を中身が空でも構わないので作成.

ブラウザの URL バーに下記を入れて検索。

http://test/

で白紙が表示されれば設定はOK.

サービスとして登録

httpd -k install

これでサービスとして組み込まれるので,パソコンを起動すれば Apache が立ち上がるようになる.

 

Contact

ご質問等ありましたら,お手数ですが弊社の個人情報保護方針をお読み頂いた上でフォームからお願い致します.
※このページと無関係な内容のセールスはご遠慮ください.

 
   
contact
Pagetop