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が存在するので、修正方法がわかりません。
どんな助けでも大歓迎です
シェルからsetup_xampp.bat(XAMPPコントロールパネルからのシェル)を実行するだけで、XAMPP for Windowsのポータブルバージョンのパスが自動的に設定されます。それは私のために働いた。
apache24のconfディレクトリにあるhttpd.confファイルまたは使用しているApacheファイルに移動します。
ServerRoot = ".."行に移動し、値をApacheが "C:\ Program Files\Apache24"のような場所にあるパスに変更します。
エディターを開いて、エラーメッセージ(ファイル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
で設定された値です。 ServerRoot
はhttpd.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
Httpd.confファイルの以下のパスをセットアップに変更します。これで問題が修正されます。
Define SRVROOT "C:\Apache24"
ServerRoot "${SRVROOT}"
開始するにはドライブ文字とスラッシュを使用します(c:/ Apache/...)。
「setup_xampp.bat/.sh」を実行し、最後に「\」を削除します。ServerRootは「C:.....\Apache」のようになります[〜#〜] no [〜#〜 ] "C:.....\Apache \"
ServerRoot "xampp\Apache"
ServerRoot "D:\Hacking Tools 2\Programs\XAMPP V2\Apache"
ServerRoot "D:\XAMPP\Apache"
私にとってはうまくいきましたが、うまくいかない場合は、xampp_start.exeを開いた後にエラー値でコメントしてください
Httpd.confのServerRoot
がApacheパスを正しく指していることを確認してください。そうしないと、以降のモジュールごとにこのメッセージが表示されます。
ServerRootは絶対である必要があると思います。 「/ Apache/docroot」のようなものを使用します
実際のバージョンを使用する場合、ルートディレクトリに「setup xampp.bat/.sh」スクリプトがあります。パスは絶対パスでなければなりませんが、スクリプトは必要なすべてのパスを現在の場所に変更します。
私はxampp/Apache/conf/httpd.confの35行目をチェックしました。
ServerRoot "/ xampp/Apache"
存在しません。 ...
ディレクトリを作成するか、ハイパーテキストドキュメントを含むディレクトリへのパスを変更します。
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をクリックします。
これがうまくいくとは言えませんが、私にとってはうまくいったので、この議論に加えました。また、ファイアウォールが他のドライブ文字を許可していなかったのかもしれません。