web-dev-qa-db-ja.com

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

Ubuntu 12.04の新規インストールで、Apache2のwordpressの環境をセットアップしています。

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

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

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

Apache2 -t -D DUMP_MODULES

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

Apache2:不正なユーザー名$ {Apache_RUN_USER}

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

17
user124130

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_または_$ apachectl graceful_を使用してApacheを再起動する必要があります。この作業のすべてではなくてもほとんどを行うには、root(Sudo)特権が必要です。

18
Chris Smola

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

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

3)「ロードされたモジュール」セクションにある場合、このモジュールは下の図に示すようにすでにロードされています。そうでない場合は、mod_rewriteモジュールを有効にするために次の手順に進む必要があります。

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

4
Richard

Apache2コマンドを使用する代わりに、apachectlコマンドはありますか? Apache2と同じ場所にある必要があります。または、Sudo Apache2 -t -D DUMP_MODULESを使用して管理者特権でコマンドを実行することもできます

4
KM.

端末タイプのCentOS 6.5以降

httpd -M | grep 'rewrite'

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

3

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

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

古い.htaccessファイルの名前を変更してください

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

RewriteEngine On
RewriteRule ^.*$ mod_rewrite.php

保存します。

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

2
Awais

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

<?php
    phpinfo();
?>

これにより、Apache/php構成に関するさまざまな情報が出力されます。 imagickがインストールされているかどうかに関係なく、他にも便利なものがあります。ロードされたすべてのApacheモジュールもそこにあります。

2
Borislav Sabev

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

ただし、 スタックオーバーフローのこのページdoesを使用すると、正しい方向に向けることができます。

または、それらをすべてリストするいくつかのphpを次に示します。

<?php foreach( Apache_get_modules() as $module ) echo "$module<br />";  ?>
2
misterich

端末でルートとしてのsuseタイプhttpd2 -M、ロードされたモジュールのリストを提供します。 httpd2 -lは、コンパイルされたモジュールのみを提供します。これはApache 2.4で動作します

0
Richard