Windows への Apache インストール方法
ホームページの確認をする際にいちいちサーバーにファイルをアップロードするより,自分のパソコンで出来たほうが早い.
備忘録として,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つ以上の推薦モジュールが存在しません」警告が出る.
つまり,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 が立ち上がるようになる.
ご質問等ありましたら,お手数ですが弊社の個人情報保護方針をお読み頂いた上でフォームからお願い致します.
※このページと無関係な内容のセールスはご遠慮ください.