web-dev-qa-db-ja.com

Apacheを起動できませんでした-ServerRootは有効なディレクトリであり、指定されたモジュールを見つけられない必要があります

Xamppポータブルサーバーを使用していますが、Apache HTTPサーバーで問題が発生しています。「ServerRootは有効なディレクトリでなければなりません」と表示されます

コマンドライン出力:

Please close this command only for Shutdown
Apache 2 is starting ...
httpd.exe: Syntax error on line 35 of K:/../../../xampp/Apache/conf/httpd.conf: ServerRoot must be a valid directory

Apache could not be started

私はxampp/Apache/conf/httpd.confの35行目をチェックしました。

ServerRoot "/xampp/Apache"

存在しません。私のフォルダは次のとおりです。

K:/../../../xampp/Apache/conf     <- where the httpd.conf is
K:/../../../xampp/Apache/         <- the server root
K:/../../../xampp/Apache/modules  <- where server modules are

(行35で)に変更した場合

ServerRoot ".."

それは言います:

Please close this command only for Shutdown
Apache 2 is starting ...
httpd.exe: Syntax error on line 65 of K:/../../../xampp/Apache/conf/httpd.conf: Cannot load modules/mod_access_compat.so into server: Unable to find the specified module

Apache could not be started

チェックしたところ、modules/mod_access_compat.soが存在するので、修正方法がわかりません。

どんな助けでも大歓迎です

27
BackSlash

シェルからsetup_xampp.bat(XAMPPコントロールパネルからのシェル)を実行するだけで、XAMPP for Windowsのポータブルバージョンのパスが自動的に設定されます。それは私のために働いた。

50
Bostjan

apache24のconfディレクトリにあるhttpd.confファイルまたは使用しているApacheファイルに移動します。

ServerRoot = ".."行に移動し、値をApacheが "C:\ Program Files\Apache24"のような場所にあるパスに変更します。

20
Guru

エディターを開いて、エラーメッセージ(ファイルhttpd.conf内)に表示​​されている正確な行にジャンプすると、これが表示されます。

#LoadModule access_compat_module modules/mod_access_compat.so
LoadModule actions_module modules/mod_actions.so
LoadModule alias_module modules/mod_alias.so
LoadModule allowmethods_module modules/mod_allowmethods.so
LoadModule asis_module modules/mod_asis.so
LoadModule auth_basic_module modules/mod_auth_basic.so
#LoadModule auth_digest_module modules/mod_auth_digest.so
#LoadModule auth_form_module modules/mod_auth_form.so

モジュールへのパス、例えばmodules/mod_actions.soはすべて相対的に記述されており、relative /ServerRootで設定された値です。 ServerRoothttpd.confの上部で定義されます(ServerRoot "の場合はCtrl-F)。

ServerRootは通常、絶対に設定されます。これは、投稿ではK:/../../../xampp/Apache/になります。

ただし、relative /作業ディレクトリ( cf. )と相対的に設定することもできます。作業ディレクトリがApache binフォルダの場合、httpd.confで次の行を使用します。

ServerRoot ../

作業ディレクトリがApacheフォルダーの場合、これで十分です。

ServerRoot .

作業ディレクトリがC:フォルダー(Apacheフォルダーの1つ上のフォルダー)の場合、これを使用します。

ServerRoot Apache

Apacheサービスの場合、作業ディレクトリ C:\Windows\System32 になるため、これを使用します。

ServerRoot ../../Apache
4
Pacerier

Httpd.confファイルの以下のパスをセットアップに変更します。これで問題が修正されます。

Define SRVROOT "C:\Apache24"   
ServerRoot "${SRVROOT}"
1
Dhiraj Surve

開始するにはドライブ文字とスラッシュを使用します(c:/ Apache/...)。

1
hcupro

「setup_xampp.bat/.sh」を実行し、最後に「\」を削除します。ServerRootは「C:.....\Apache」のようになります[〜#〜] no [〜#〜 ] "C:.....\Apache \"

1
gusanare
  1. [〜#〜] xampp [〜#〜]ディレクトリに移動すると、Apacheというフォルダーが見つかります。開いて、そのパスをコピーします。私のパスは「D:\ Hacking Tools 2\Programs\XAMPP V2\Apache」です
  2. テキストエディタでApache\conf\httpd.confを開きます
  3. 30〜40行目まで下にスクロールします
  4. 次のようなコードがあります:ServerRoot "xampp\Apache"
  5. Step#1で述べたように、Apacheディレクトリに変更します。私のパスは "D:\Hacking Tools 2\Programs\XAMPP V2\Apache "なので、私のコードはServerRoot "D:\Hacking Tools 2\Programs\XAMPP V2\Apache"
  6. 次のように表示されます:ServerRoot "D:\XAMPP\Apache"
  7. [〜#〜] xampp [〜#〜]メインディレクトリに戻り、を実行しますxampp_start.exe

私にとってはうまくいきましたが、うまくいかない場合は、xampp_start.exeを開いた後にエラー値でコメントしてください

Httpd.confのServerRootがApacheパスを正しく指していることを確認してください。そうしないと、以降のモジュールごとにこのメッセージが表示されます。

1
Greg Woz

ServerRootは絶対である必要があると思います。 「/ Apache/docroot」のようなものを使用します

1
souser

実際のバージョンを使用する場合、ルートディレクトリに「setup xampp.bat/.sh」スクリプトがあります。パスは絶対パスでなければなりませんが、スクリプトは必要なすべてのパスを現在の場所に変更します。

1
0x126

私はxampp/Apache/conf/httpd.confの35行目をチェックしました。

ServerRoot "/ xampp/Apache"

存在しません。 ...

ディレクトリを作成するか、ハイパーテキストドキュメントを含むディレクトリへのパスを変更します。

0
LeeGee

Windows 10 HomeのXamppポータブルでも、これとまったく同じ問題が発生しました。私はすべての提案を行ったが、どれも機能しなかった。私はそれをWindowsファイアウォールの設定と私の側のエラーで動作させました。

ペンドライブには、ラップトップではドライブE、デスクトップではドライブFとラベル付けされています。ディスクパーティションを使用してそれを修正し、デスクトップのドライブ文字をEに変更して、ファイアウォールへのアクセスを要求するウィンドウに変更すると、すべてがクリックされました。

ドライブ文字を修正する手順は次のとおりです。1. Windowsキーを押して、Partition、 "create and format harddisks partitions "が一番上にあるはずです。Enter2を押してください。トップパネルで探しているドライブを見つけてクリックします。 3.それを右クリックして、[ドライブ文字とパスの変更]を選択し、okayをクリックします。4.xamppを開始しようコントロールパネルおよびApacheとMysql 5を起動します。Windowsファイアウォールが表示されたら、allowをクリックします。

これがうまくいくとは言えませんが、私にとってはうまくいったので、この議論に加えました。また、ファイアウォールが他のドライブ文字を許可していなかったのかもしれません。

0
Kelly