Windows 11 Apache24 環境が今も起動できるかを確認する手順

Views: 0

1. Apache の配置場所を確認

まず Apache24 のある場所へ移動します。たとえば:

PS C:\Users\nobuy> cd \Apache24
PS C:\Apache24> Get-ChildItem C:\ -Directory -Filter Apache*


    ディレクトリ: C:\


Mode                 LastWriteTime         Length Name
----                 -------------         ------ ----
d-----        2023/07/31     12:28                Apache24

もし場所が曖昧なら:

Get-ChildItem C:\ -Directory -Filter Apache*

2. 設定ファイルの文法チェック

起動前に、まず設定が壊れていないかを見ます。

PS C:\Apache24> .\bin\httpd.exe -t
Syntax OK

Syntax OK が出れば、設定ファイルの文法は通っています。

もし httpd.conf が標準位置でないなら:

PS C:\Apache24> .\bin\httpd.exe -t -f "C:\Apache24\conf\httpd.conf"
Syntax OK

3. どのポートを使う設定か確認

Listen の設定を見ます。

PS C:\Apache24> Select-String -Path .\conf\httpd.conf -Pattern "^\s*Listen\s+"

conf\httpd.conf:67:Listen 80

たとえば Listen 80Listen 8080 が見えるはずです。

4. Apache を起動

サービスとして登録済みなら

まずサービス名を確認します。

PS C:\Apache24> Get-Service *Apache*

Status   Name               DisplayName
------   ----               -----------
Running  Apache2.4          Apache2.4

よくある名前は Apache2.4 です。

起動はたとえばこうです(管理者としてPowerShell実行)。

.\bin\httpd.exe -k start

またはサービス名を明示して:

.\bin\httpd.exe -k start -n "Apache2.4"

サービスではなく、まず手元で直接起動確認したいなら

フォアグラウンド確認用に:

.\bin\httpd.exe -X

この場合、別のコンソールを開いてブラウザ確認します。
終了は Ctrl + C です。

5. 起動できたか確認

ブラウザ

Listen が 80 なら:

http://localhost/

8080 なら:

http://localhost:8080/

PowerShell

HTTP 応答を見るなら:

PS C:\Apache24> Invoke-WebRequest http://localhost/ | Select-Object StatusCode

セキュリティ警告: スクリプトの実行リスク
Invoke-WebRequest は Web ページのコンテンツを解析します。Web ページ内のスクリプト
コードは、ページ解析時に実行される可能性があります。
      おすすめの操作:
      -UseBasicParsing スイッチを使用してスクリプト コードの実行を回避します。

      続行しますか?

[Y] はい(Y)  [A] すべて続行(A)  [N] いいえ(N)  [L] すべて無視(L)  [S] 中断(S)  [?] ヘルプ (既定値は "N"): Y

StatusCode
----------
       200

または 8080 の場合:

Invoke-WebRequest http://localhost:8080/ | Select-Object StatusCode

200 が返れば起動確認はできています。

6. ポート待受を確認

Apache が本当に待受しているかを見るには:

PS C:\Apache24> netstat -ano | findstr :80
  TCP         0.0.0.0:80             0.0.0.0:0              LISTENING       5856
  TCP         192.168.0.8:51449      192.168.0.14:80        SYN_SENT        3032
  TCP         192.168.0.8:59939      184.87.172.98:80       CLOSE_WAIT      2704
  TCP         [::]:80                [::]:0                 LISTENING       5856
  TCP         [240f:106:f857:1:d973:5ff1:a5a4:ba1f]:50161  [2404:6800:4004:800::2005]:443  ESTABLISHED     23728
  UDP         [::]:49805             [2404:6800:4004:807::200a]:443                  23728
  UDP         [::]:57586             [2404:6800:4004:80a::200e]:443                  23728
  UDP         [::]:59607             [2404:6800:4004:80d::200a]:443                  23728

8080 の場合:

netstat -ano | findstr :8080

7. 起動しないときは error.log を確認

ここがいちばん重要です。

Get-Content .\logs\error.log -Tail 50

典型的な原因は次です。

  • ポート競合

  • httpd.conf のパス誤り

  • LoadModule の参照先不一致

  • DocumentRootScriptAlias のパス不一致

  • CGI 用インタプリタのパス不一致

8. CGI まで確認したいとき

CGI も有効なら、まず cgi-bin の場所を確認します。

PS C:\Apache24> Select-String -Path .\conf\httpd.conf -Pattern "ScriptAlias|ExecCGI|AddHandler"

conf\httpd.conf:274:    Options +ExecCGI
conf\httpd.conf:379:    ScriptAlias /cgi-bin/ "${SRVROOT}/htdocs/wu_wei/server/"
conf\httpd.conf:398:    Options +ExecCGI
conf\httpd.conf:399:    AddHandler cgi-script .cgi .pl

テスト用 CGI を 1 本置いて確認するのが早いです。たとえば cgi-bin/test.cgi に:

#!C:/Strawberry/perl/bin/perl.exe
print "Content-Type: text/plain\r\n\r\n";
print "CGI OK\n";

そのうえで:

http://localhost/cgi-bin/test.cgi

または 8080 なら:

http://localhost:8080/cgi-bin/test.cgi

CGI OK が出れば、CGI まで通っています。

あるいは、Perlのときには、cgi-bin/test.pl に:

#!C:/Strawberry/perl/bin/perl.exe
print "Content-Type: text/plain\r\n\r\n";
print "Perl(CGI) OK\n";

そのうえで:

http://localhost/cgi-bin/test.pl

Perl(CGI) OK が出れば、Perl(CGI) まで通っています。

9. 起動・停止

管理者としてPowerShellを実行します。

Apache の起動

通常起動は次です。

.\bin\httpd.exe -k start

サービス名を明示するなら次です。

.\bin\httpd.exe -k start -n "Apache2.4"

フォアグラウンドで確認したいときは次です。終了は Ctrl + C です。

.\bin\httpd.exe -X

Apache の停止

.\bin\httpd.exe -k stop

サービス名を明示するなら次です。

.\bin\httpd.exe -k stop -n "Apache2.4"

再起動は次です。

.\bin\httpd.exe -k restart

起動確認

80番で待受しているなら次です。

Invoke-WebRequest http://localhost/ | Select-Object StatusCode

8080番なら次です。

Invoke-WebRequest http://localhost:8080/ | Select-Object StatusCode

StatusCode 200 なら HTTP 応答は通っています。

ブラウザで見るなら次です。

待受確認

80番ポート確認:

netstat -ano | findstr :80

8080番ポート確認:

netstat -ano | findstr :8080

ログ確認

エラー確認:

Get-Content .\logs\error.log -Tail 50

アクセス確認:

Get-Content .\logs\access.log -Tail 50

自動起動開始・停止

開始:

PS C:\WINDOWS\system32> Set-Service -Name "Apache2.4" -StartupType Automatic
PS C:\WINDOWS\system32>

停止:

PS C:\WINDOWS\system32> Set-Service -Name "Apache2.4" -StartupType Manual
PS C:\WINDOWS\system32>


投稿日

カテゴリー:

,

投稿者:

タグ:

コメント

コメントを残す

メールアドレスが公開されることはありません。 が付いている欄は必須項目です