Windows用のApache

オペレーティングシステムの要件

実行中のApacheのWindows 2.4プラットフォームは、Windows 2000以降でなければなりません。常にエラーを回避するために、オペレーティングシステムの最新バージョンを入手してインストールします。

Apache HTTPサーバのバージョンの220以上のは、Windows 2000の前に任意のオペレーティングシステム上で実行されません。

最適

Windows用のApacheをダウンロード

Apache HTTPサーバプロジェクト自体は、ソフトウェアのバイナリバージョン、のみ利用可能なソースコードを提供していません。シングル提出者は、できる利便性のバイナリパッケージを提供し、それは成果物のバージョンではありません。

あなたがあなた自身のApache HTTPサーバをコンパイルすることができない場合は、使用可能なバイナリパッケージから、インターネット上で提供することができ、多くのバイナリ配布。

ApacheはMicrosoft Windowsおよび上に展開HTTPD(オプション)PHPとMySQLの一般的なオプションは次のとおりです。

最適

Windows用のApacheをカスタマイズします

Apacheの構成プロファイルconf子目录下これらのプロファイルは、通常、Unixのバージョンですが、ApacheのWindowsコマンドにいくつかの違いがあります。利用可能なすべての命令を参照してください。命令インデックスを

Windows用のApacheの主な違いは以下のとおりです。

  • Windows用のApacheはマルチスレッドなので、ApacheはUnix上で使用することができますよう、それは、要求ごとに別々のプロセスを使用していないため。リクエストを処理するために、親プロセスと子プロセス:逆に、通常は2つだけApacheが実行を処理します。サブプロセスでは、各要求を別個のスレッドによって処理されます。

    プロセス管理命令も異なります。

    MaxConnectionsPerChild:サービスを終了する前に、単一の子プロセスへの接続数を制御Unixコマンドと同様に。しかし、Unixのとは違って異なり、置換処理がすぐに利用できません。MaxConnectionsPerChild 0場合を除き、サードパーティ製のモジュールやアプリケーションのプロセスでのメモリリークを克服する、またはデフォルト値を使用するために、動作を変更するように指示。

    警告:新しい子プロセスを開始し、それはサーバーの設定ファイルを再読み込みします。あなたが変更した場合httpd.conf、新しい子プロセスが起動しないこと、または予期しない結果を受け取ることができます。

    ThreadsPerChild:このコマンドは新しいです。それは使用する必要がありますどのように多くのスレッドをサーバーに指示します。これは、サーバーが同時に処理できる接続の最大数であるので、あなたは、クリックの多くを得る場合には、この数が十分に高く設定されていることを確認してください。デフォルト値が推奨され  ThreadsPerChild 150ますが、この値は最大同時接続数を受け入れることを反映するように調整されなければなりません。

  • コマンドパラメータは、代わりにUnixのファイル名のWindowsのファイル名を使用する必要がありますように、それはファイル名を取ります。Apacheはバックスラッシュ「エスケープ文字」シーケンスとして解釈される可能性がありますので、しかし、あなたは常に前方に使用する必要がありますので、代わりにバックスラッシュを、パス名にスラッシュ。

  • Windows上のファイル名の間には、一般的に大文字と小文字を区別しませんが、ファイルシステムにマッピングされた前に、URLはまだ、大文字と小文字を区別した領域内に分割されています。たとえば、  <Location>、、  AliasProxyPassの命令は、大文字と小文字を区別したパラメータを使用しています。したがって、<Directory>ディレクティブは関係なく、彼らの訪問の、任意のコンテンツディレクトリに適用されるため、ファイルシステムの内容へのアクセスを制限しようとすることは、特に重要であるときコマンドを使用します。あなたはURLでのみ下ケースを使用して確認するには、次のように使用することができます。

    RewriteEngine On
    RewriteMap lowercase int:tolower
    RewriteCond "%{REQUEST_URI}" "[A-Z]"
    RewriteRule "(.*)" "${lowercase:$1}" [R,L]
  • Runtimeは、Apacheはログのみディレクトリとすべての設定されたキャッシュディレクトリツリーへの書き込み権限が必要です。問題は敏感と短い8.3形式の名前をそうではありませんので、Apacheはすべて与えられたパス名を検証する必要があります。これは、各ディレクトリにApacheのアセスメント、ディレクトリの葉へのドライブのルートから、読んでいなければなりませんが、リストやディレクトリのパーミッションを通過することを意味します。Apache2.4がCにインストールした場合:\プログラムファイルは、ルートディレクトリ、プログラムファイルやフォルダApache2.4は、Apacheに見えなければなりません。

  • Windows用のApacheは、サーバーを再コンパイルせずに、ランタイム関数でロードされたモジュールが含まれています。通常は、Apacheをコンパイルする場合、それはなります\Apache2.4\modulesオプションのモジュールディレクトリの数をインストールします。これらまたは他のモジュールを有効にするには、LoadModule あなたがこの命令を使用する必要があります。例えば、状態モジュールをアクティブにするために、(起動指示の状態を設定する必要性に加えて、以下を使用access.conf):

    LoadModule status_module modules/mod_status.so

    また、情報提供ロード可能なモジュールを作成するための情報を。

  • ApacheはISAPI(インターネットサーバーアプリケーションプログラミングインターフェイス)の拡張、例えばマイクロソフトIISおよびその他のWindowsサーバをロードすることができます。より詳しい情報Apacheは、注意してください  することができない  ISAPIフィルタをロードし、マイクロソフトの特定の拡張子を持つISAPIハンドラ関数は動作しません。

  • CGIスクリプトは実行されている、Apacheのスクリプトインタプリタを使用することができます方法を見つけるために使用されるScriptInterpreterSource 構成された命令を。

  • それはしばしばあるので難しい管理が持っている.htaccess后缀と、他のWindowsファイル名なので、あなたは、この使用していることを見つけるかもしれAccessFilename コマンドは、コンフィギュレーション・ファイルの各ディレクトリの名前を変更すると便利です。

  • Windowsイベントログへのブートレコード中にWindows NT、Apacheのすべてのエラーで実行しているとき。Apacheは、まだ使用する準備ができていないので、このメカニズムが機能しerror.logた場合のファイルのバックアップを。「設定」 - - 「コントロールパネル」 - 「管理ツール」 -あなたは、このような「スタート」として、Windowsアプリケーションのイベントログを表示するには、イベントビューアを使用することができます「イベントビューア」

最適

サービスとしてApacheを実行します

ApacheはApacheのサービス・モニターと呼ばれるユーティリティが付属しています。これを使うと、任意のコンピュータ上で見ることができますし、ネットワークの状況にインストールされているすべてのApacheサービスを管理します。Apacheの監視サービスを管理できるようにするには、まず(自動または手動をインストールすることによって)サービスをインストールする必要があります。

あなたは、Apacheから選ぶことができ  bin、次のように、Windows NTサービスのサブディレクトリとしてApacheコマンドプロンプトをインストールします:

httpd.exe -k install

あなたがインストールするサービスの名前を指定する必要がある場合は、次のコマンドを使用します。お使いのコンピュータにインストールされている複数の異なるApacheサービスがある場合は、この操作を行う必要があります。インストール時に名前を指定する場合は、動作中の他の-kの名前を指定する必要があります。

httpd.exe -k install -n "MyServiceName"

あなたが専門という名前の設定ファイルと異なるサービスが必要な場合は、次のコマンドを使用する必要があります。

httpd.exe -k install -n "MyServiceName" -f "c:\files\my.conf"

あなたは特別なパラメータなしで最初のコマンドを使用している場合は  -k install、サービスが呼び出されるApache2.4 と、設定され想定しますconf\httpd.conf

Apacheサービスを削除するのは簡単です。ただ、使用します。

httpd.exe -k uninstall

あなたはアンインストールする特定のApacheサービスを指定するには、次のコマンドを使用することができます。

httpd.exe -k uninstall -n "MyServiceName"

通常の起動、シャットダウンして使用することにより、Apacheのサービス・モニターにより、通常のApacheサービスを再起動NET START Apache2.4/および  NET STOP Apache2.4コマンドを完了するか、通常のWindowsサービス管理を通じて。どのような方法でサービスとしてApacheを起動する前に、設定ファイルサービスをテストするには、次のメソッドを使用する必要があります。

httpd.exe -n "MyServiceName" -t

また、コマンドラインスイッチを介してApacheサービスを制御することができます。Apacheサービスがインストールされて起動するには、次のコマンドを使用します。

httpd.exe -k start -n "MyServiceName"

コマンドラインスイッチを経由してApacheサービスを停止するには、次のコマンドを使用します。

httpd.exe -k stop -n "MyServiceName"

若しくは

httpd.exe -k shutdown -n "MyServiceName"

また、実行中のサービスを再起動して、その設定ファイルを再読み込みすることを強制するために、次のコマンドを使用することができます。

httpd.exe -k restart -n "MyServiceName"

デフォルトでは、すべてのApacheサービスは、システムの利用者(として登録されているLocalSystem実行しているアカウント)のステータス。 LocalSystem(ファイルシステム、名前付きパイプ、DCOM、またはセキュアRPCを含む)任意のWindowsのセキュリティメカニズムによってアカウントは、ネットワークへのアクセスを持っていません。しかし、それは地面に広範な権限を持っています。

あなたは付与することはありませんLocalSystem任意のネットワーク権限のアカウントを!あなたがネットワークリソースにアクセスするようにApacheが必要な場合は下記のように、Apacheの別のアカウントを作成します。

私たちは、あなたがApacheサービスを実行するために別のアカウントを作成することをお勧めします。あなたは、Apacheを経由してネットワークリソースにアクセスする必要がある場合、あなたはそうする必要があります。

  1. 通常のドメインユーザーアカウントを作成し、自分のパスワードを忘れないようにしてください。
  2. 新しく作成された付与するユーザーのためのLog on as a service権限とAct as part of the operating systemWindows NT 4.0では、これらの権限は、ドメインユーザーマネージャを介して付与されますが、Windows 2000およびXP上で、あなたはこれらの設定を伝播するために、グループポリシーを使用することもできます。また、ローカルセキュリティポリシーMMCスナップインで手動で設定することができます。
  3. アカウントの作成を確認してUsersグループのメンバーです。
  4. スクリプトファイルとフォルダ(へ(RX)権限を読み取りと実行アカウントを付与htdocsし、cgi-bin 一例)。
  5. アカウントの変更(RWXD)Apacheのに権限  logsディレクトリ。
  6. 読んでアカウントを付与し、(RX)実行httpd.exe権限のバイナリ実行可能ファイルを。

通常に加えて、全体Apache2.4ディレクトリ(RX)アクセス権を読み取りおよび実行Apacheのユーザーとしてサービスを許可することをお勧めlogsユーザーは、少なくとも変更(RWXD)権限サブディレクトリに持っている必要があります。

ユーザーアカウントを許可し、サービスがログオンしている場合は、そのアカウントを使ってログインし、アカウントがスクリプトを実行する権限を持っていることをテストし、あなたはコンソールウィンドウでページを読み込むことができます。あなたは、あなたが上記の手順に従っている場合は、Apacheはサービス実行として何の問題もないでしょう。

エラーコード2186を使用すると、Apacheが必要なネットワークリソースにアクセスできないため、サービスが構成「とログオン」を参照してくださいする必要が優れた指標です。また、ユーザーのランニングのApacheの設定権限に細心の注意を払ってください。

Apacheのは、Windowsサービスコントロールマネージャからのエラーメッセージが発生する可能性があり、サービスとして開始します。Apacheを起動するには、Windowsのコントロールパネルの「サービス」アプレットを使用しようとする場合たとえば、あなたは次のメッセージを受け取ることがあります。

Could not start the Apache2.4 service on \\COMPUTER 
Error 1067; The process terminated unexpectedly.

ご質問はApacheサービスを開始する場合は、この一般的なエラーを受け取ることになります。問題の本当の原因を確認するには、Windowsのコマンドプロンプトの説明の下で実行するためのApacheに従ってください。

あなたがサービスの問題が発生している場合、我々はあなたがコンソールウィンドウからhttpd.exeを起動しようとするためには、次の手順に従い、サービスがエラーを解決開始する前と、再びそれを試みることをお勧めします。

最適

Apacheはコンソールアプリケーションとして実行されます

サービスは、一般的にそのメソッドを使用することをお勧めしますが、時には簡単には特に初期設定およびテスト中に、コマンドラインから動作するようにApacheが実行されます。

コンソールアプリケーションとしてコマンドラインからのApacheを実行するには、次のコマンドを使用します。

httpd.exe

Apacheは実行され、そしてそれを停止するには、Control-Cを押してまで実行し続けます。

あなたもできるStart Menu --> Programs --> Apache HTTP Server 2.4.xx --> Control Apache ServerのApacheを実行するために、Apacheを起動するには、コンソールのショートカットのインストール時にインストールします。これは、コンソールウィンドウを開いているApacheを起動します。あなたはApacheがサービスとしてインストールされていない場合は、Apacheのコンソールウィンドウを実行して、Apacheのを停止するには、Control-Cを押すまで、ウィンドウが表示されたままになります。サーバーは、数秒後に終了します。Apacheをサービスとしてインストールする場合ただし、ショートカットがサービスを開始します。Apacheサービスがすでに実行されている場合は、ショートカットは、何もしません。

Apacheをサービスとして実行する場合は、別のコンソールウィンドウを開いて、それを伝えると、次の停止を入力することができます。

httpd.exe -k shutdown

それはApacheは現行の操作を終了し、適切にクリーンアップすることができますよう優先順位は、コンソールウィンドウで実行するサービスとして実行する必要があります。

サーバーは、コンソールウィンドウで実行されている場合は、あなたはそれを止めるために同じウィンドウは、Ctrl + Cで渡すことができます。

また、再起動するようにApacheを伝えることができます。これは、その設定ファイルを再読み込みすることを強制します。進行中の操作は中断することなく完了することができます。Apacheの再起動、してくださいApacheのコンソールウィンドウは、Ctrl-ブレークを開始するため、または入力するには

httpd.exe -k restart

サーバがサービスとして実行されている場合。

アパッチのUnixのバージョンに慣れている人に注意を払う:これらのコマンドは、Windowsのに相当を提供します。コマンドラインオプションを使用することを選択してUNIX上で使用されるコマンドのリマインダーです。kill -TERM pidkill -USR1 pid-kkill

Apacheのコンソールウィンドウが起動直後または予期せず終了した場合は、「スタート」メニューから- >「プログラム」は、コマンドプロンプトを開きます。Apacheのインストールフォルダ、typeコマンドに切り替えhttpd.exe、その後、エラーメッセージを読んでください。次に見るためにログフォルダに切り替えてerror.log 、構成ファイルにエラーが発生した場合。インストールのhttpdを仮定しC:\Program Files\Apache Software Foundation\Apache2.4\、あなたが次のことを行うことができます:

c: 
cd "\Program Files\Apache Software Foundation\Apache2.4\bin" 
httpd.exe

Apacheが停止して待つか、Ctrl + Cです。そして、次のように入力します。

cd ..\logs 
more < error.log

それは、設定ファイルを見つける方法を理解するためには、Apacheを使用している場合は非常に重要です。次の2つの方法で、コマンドラインで設定ファイルを指定することができます。

  • -f 特定のプロファイルまたは相対パスの絶対パスを指定します。

    httpd.exe -f "c:\my server files\anotherconfig.conf"

    若しくは

    httpd.exe -f files\anotherconfig.conf

  • -n あなたがインストールApacheサービスを利用したい。その設定ファイル:

    httpd.exe -n "MyServiceName"

どちらの場合も、ServerRootそれは設定ファイルで正しく設定する必要があります。

あなたが使用していない場合は-f 指定されたコンフィギュレーションファイルをや-n、Apacheは例えば、サーバーにコンパイルしたファイル名を使用しますconf\httpd.confこれは、インストールディレクトリに関してパスを構築しました。あなたは、から選択することができますSERVER_CONFIG_FILE使用して-V、以下のように、コンパイルされたファイル名の値を確認するために、通話を切り替えるには目印にApacheを:

httpd.exe -V

その後、ApacheはしようとしServerRoot、それを決定するために、次の順序で、次の試してください。

  1. A ServerRoot命令を介して-C、コマンドラインスイッチ。
  2. -dコマンドライン上のスイッチ。
  3. 現在の作業ディレクトリ。
  4. あなたがバイナリをインストールすると、レジストリエントリが作成される実行します。
  5. サーバーのルートには、サーバにコンパイル。これは、 /apacheあなたが確認するために使用することができ、デフォルト httpd.exe -V値としてラベル付け見えます  HTTPD_ROOT

あなたがバイナリのインストールをお持ちでない場合は、Apacheは、特定の状況でのレジストリエントリを行方不明に文句を言うでしょう。サーバーは、その設定ファイルを見つけることができる場合は、この警告を無視することができます。

このキーの値がすることです  ServerRoot含まれているconfディレクトリのサブディレクトリを。Apacheは起動すると、httpd.confこのディレクトリからファイルを読み取ります。このファイルが含まれている場合はServerRoot 別のディレクトリ上で得られたディレクトリからレジストリエントリに含まれている説明書を、Apacheは、レジストリキーを忘れて、設定ファイルのディレクトリを使用します。あなたは新しい場所にApacheのディレクトリや設定ファイルをコピーする場合、ファイルが更新されるServerRoot指示に従って  httpd.conf、新しい場所が不可欠である反映するが。

最適

インストールをテスト

アパッチその後、それがポート80(あなたが変更しない限り聞きます(コンソールウィンドウまたはサービスとして)を起動しListen、現在のユーザーのプロファイルをのみ、インストール手順またはApacheを)。サーバーに接続し、デフォルトページにアクセスし、ブラウザを起動し、以下のURLを入力します。

http://localhost/

Apacheはあなたが表示されるはずです、ウェルカムページで応答しなければならない「それは働きます!」。何も起こらないか、エラーが発生した場合は、サブディレクトリを参照してください  error.logファイルをlogsあなたのホストがネットワーク、または重大な問題がある、あなたのDNS(ドメインネームサービス)構成に接続されていない場合は、次のURLを使用する必要がある場合があります

http://127.0.0.1/

あなたが代替ポート上でApacheを実行するために起こる場合は、URLで明示的に必要があります。

http://127.0.0.1:8080/

基本的な後正しくインストールされ、あなたが編集して必要があるconfサブディレクトリ内のファイルを適切に設定します。同様に、あなたは、Windows NT Apacheサービスの設定を変更した場合、最初のサービスの起動時にエラーがないことを確認するために、コマンドラインから起動してみてください。

Apacheがあるので  できません別のTCP / IPアプリケーションと同じポートを共有し、あなたは、Apache、アンインストールを実行する前に停止したり、特定の他のサービスを再設定する必要があるかもしれませんので。これらの競合するサービスは、他のWWWサーバ、ファイアウォールの一部、および(Skypeなど)も、いくつかのクライアントアプリケーションが含まれ、彼らはポート80でファイアウォールの問題を回避しようとします。

最適

ネットワークリソースへのアクセスを構成します

Windowsは、二つの機構がファイルによるネットワークアクセスを指定するために使用することができます提供しています。

マップされたドライブ文字

たとえば、  Alias "/images/" "Z:/"

UNCパス

たとえば、 Alias "/images/" "//192.168.1.1(文件服务器IP)/www/images/"

マッピングにマップされたドライブ文字は、管理者は、Apacheのhttpd構成以外の特定のマシンとパスを維持することを可能にします。しかし、これらのマップは唯一の対話型セッションに関連する、直接サービスとして開始のhttpdのApacheで使用することはできません。 、ネットワークリソースなどのhttpd.conf UNCパスでのみ使用していないので、関係なくApacheはあなたが同じリソースにアクセスすることができ、起動httpdの方法。(秘儀とエラーが発生しやすいプログラムでは、マップされたドライブ文字の制限を解決することができるが、これは推奨されません。)

例のDocumentRootは、UNCパスを有します

DocumentRoot "//dochost/www/html/"

例のDocumentRootは、UNCパスでIPアドレスを持っています

DocumentRoot "//192.168.1.50/docs/"

例エイリアスと対応するディレクトリは、UNCパスを有します

Alias "/images/" "//imagehost/www/images/"

<Directory "//imagehost/www/images/">
#...
<Directory>

Apacheは上記のようにあなたは、ネットワークリソースにアクセスするために別のアカウントを作成する必要があり、サービスとして実行しているhttpdが。

おすすめ

転載: blog.csdn.net/QWERTY1994/article/details/88853787