mod_rewriteが有効になっているかどうかをテストするにはどうすればよいですか?


17

ubuntu 12.04の新規インストールで、apache2にwordpress用の環境を設定しています。

わかりやすいURLを機能させるために、mod_rewriteを設定しようとしています。私はネットで見つけたいくつかの指示に従い、a2enmodを使用しました。

今。Apacheを再起動した後、モジュールが実際にロードされているかどうかを確認したいと思います。

ロードされたモジュールのリストを取得するために見つけたコマンドは次のとおりです。

apache2 -t -D DUMP_MODULES

ただし、これはエラーを返します。

apache2:不正なユーザー名$ {APACHE_RUN_USER}

だから、実際にロードされたすべてのモジュールをリストする方法、またはmod_rewriteが有効になっているかどうかを確認するにはどうすればよいですか?

回答:


18

KM01の意味ですapachectlが、必要なものは提供されません。これにより、サーバーの起動/停止/再起動が制御され、ステータス情報が提供されます。phpファイルオプションは機能しますが、一部の追加作業が必要です。代わりに、コマンドラインからphpを実行してみてください:$ php -i。これphpinfo()は、コマンドラインでのみ出力を出力します。

を実行すると$ apache2 -l、コンパイル済みモジュールのリストを取得できますが、LoadModule(またはその他の)ディレクティブを使用して動的にロードされたモジュールを表示するのには役立ちません。

のエントリを調べると、どのモジュールが動的にロードされているかを確認できます/etc/apache2/mods-enabled/。同じディレクトリに設定用の追加のconfファイルがあるものもあります。これらのモジュールは2回ロードされません。を見て、動的にロードできる利用可能なモジュールのリストを見ることができます/etc/apache2/mods-available/。コマンドラインでを有効にできます$ a2enmod <module_name>。でそれらをアンロードできます$ a2dismod <module_name>

有効化/無効化が完了したら、$ service apache2 restartまたはでapacheを再起動する必要があります$ apachectl graceful。この作業のすべてではないにしても、ほとんどを行うには、ルート(sudo)特権が必要です。


4

1)<?php phpinfo(); ?>phpファイルを入力して保存し、サーバーでそのファイルを実行します。

2)これで、情報のリストを表示できます。ブラウザの検索メニューから「mod_rewrite」という単語を検索するだけです

3)「Loaded Modules」セクションで見つかった場合、このモジュールは下の図に示すようにすでにロードされています。それ以外の場合は、mod_rewriteモジュールを有効にする次のステップに進む必要があります。

ソース:http : //roshanbh.com.np/2008/04/check-enable-mod_rewrite-apache.html


4

apache2コマンドを使用する代わりに、コマンドがありますapachectlか?と同じ場所にある必要がありますapache2。または、次を使用して昇格した権限でコマンドを実行できますsudo apache2 -t -D DUMP_MODULES


2

@Richardが説明したとおりですが、それを実現するために実際に行う必要があるのは、次の内容のファイルを持つことです。

<?php
    phpinfo();
?>

これにより、apache / php設定に関するさまざまな情報が出力されます。imagickがインストールされているかどうかによって、他の便利なものが見つかるでしょう。ロードされたすべてのApacheモジュールもそこにあります。


2

PHP情報は、有効になっているかどうかを常に表示するわけではありません。ごめんなさい!

しかし、スタックオーバーフロー上のオーバーこのページでは ない、あなたは正しい方向に向けます。

または、すべてを一覧表示するphpを次に示します。

<?php foreach( apache_get_modules() as $module ) echo "$module<br />";  ?>

2
そうです、phpinfo(またはapache拡張機能を使用)ソリューションは、PHPがApacheモジュールとしてコンパイル/使用されている場合にのみ機能します。* CGI、FPMなどではありません。さらに、mod_rewriteを読み込むことができます(LoadModule)が、AllowOverrideやオプションに従って、書き換えが拒否される可能性があります。
julp

2

mod_rewrite.phpルートディレクトリにファイルを作成し、その中に以下のコードを配置するだけです。

<?php 
echo
"Mod_rewrite is activated!"
; ?>

古い.htaccessファイルの名前を変更します

新しい.htaccessファイルを作成して、以下のコードを配置するだけです。

RewriteEngine On
RewriteRule ^.*$ mod_rewrite.php

今、保存をクリックします。

その後、サイトにアクセスするとメッセージが表示されます。


2

ターミナルタイプでのCentOS 6.5以降

httpd -M | grep 'rewrite'

答えにrewrite_module(共有)が表示されている場合、インストールされていることを意味します。grep 'rewrite'を削除し、Apacheインストールのすべてのモジュールのリストを取得できます。


0

ターミナルhttpd2 -Mでsuseタイプにrootとして入力すると、ロードされたモジュールのリストが表示されます。httpd2 -lコンパイルされたモジュールのみを提供します。これはApache 2.4で機能します

弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.