回答:
Ubuntuを使用しているので、試してみてください。
apache2ctl -M
apache2: bad user name ${APACHE_RUN_USER}
sudo apache2ctl -M | sort
apache2ctl
がありますが、それらはマンページにもにもリストされていませんapache2ctl --help
。それは彼らがに引き継がれているからhttpd
です。それらはhttpdのドキュメントにのみリストされています。
httpd -M
どのモジュールが組み込みまたは共有されているかがわかります。
httpd
実行可能ファイルへのフルパスを指定します。
apache2
でなくhttpd
であるため、見つかりません。
リモートサーバーでコマンドを実行できない場合、上記の回答は機能しません。「ユーザー」権限のみを持っているか、まったく持っていない場合は、test.php
スクリプトを作成してみてください。
<pre>
<?php
print_r(apache_get_modules());
?>
</pre>
ただし、PHPがとしてインストールされてmod_php
いる場合にのみ機能します。
多分これはなしにアクセスできる共有ホスト上で一部の人のために役立つhttpd
、apachectl
またはプロセス:
有効なモジュール: ls /etc/apache2/mods-enabled/
利用可能なモジュール: ls /etc/apache2/mods-available/
また、apachectlを使用することもできます
apachectl -t -D DUMP_MODULES
ここには3つの質問があると思います。どちらを尋ねているのかわかりません。
これは(通常)apacheディストリビューションのモジュールディレクトリ、通常は/ etc / httpd / modules /にあります。
これは、少なくともベースシステムのApacheについては、/ usr / sbin / httpd -Mで確認できます。特定の構成ファイル/ usr / sbin / httpd -M -f / path / to / config / fileを確認する場合
多くの情報を取得するには、http:// machinename / server-info /で表示 できます。これはデフォルトでは設定されていません。設定する必要があります。少し情報が漏れているので、設定してください。地元の人だけが見ることができます。
マシン上にいて、実行中のユーザーになるためのアクセス権がある場合は、プロセスを確認することでロードされているものを確認することもできます。親プロセスを見つけるには:
ps -ef | gawk '/httpd/ && $3 == 1{print $2}'
それからチェックアウト
cat /proc/PID_FROM_ABOVE/maps
Redhat / CentOS httpd
を使用している場合は、の代わりに使用されapache2ctl
ます。
これは、使用する必要があることを意味します
httpd -M
ただし、httpd
期待するパスにはほとんどありません。
CentOS 5.8では、実際のパスがであることが確認できます/usr/sbin/httpd
。
/usr/sbin/httpd -M
しかし、それがパスではない場合、あなたはそれを発見することができます。これが私がそうすることができた方法です。
最初に、制御に使用されているデーモンを確認しました。
less /init.d/httpd
約40インチ
# Path to the apachectl script, server binary, and short-form for messages.
apachectl=/usr/sbin/apachectl
httpd=${HTTPD-/usr/sbin/httpd}
prog=httpd
どこにあるのか正確に教えてくれました。お役に立てれば。
私のgentooでは、apache2ctl modules
リストされているモジュールを実行して見ることができます。
phpスクリプト内からのチェック(mod_xsendfileの場合):
if (in_array(PHP_SAPI, array('apache','apache2filter','apache2handler'))
&& in_array('mod_xsendfile', apache_get_modules()))
\\doSomething();
PHPがCGIとして実行されている場合、apache_get_modules()はそのコンテキストでは機能しないため、PHP_SAPIのチェックは除外されます。さらに、これがphp <5.0.0で実行される場合、apache2handler
コンテキストのみが期待される結果を生成します。
それを支援するために小さなPythonスクリプトを作成しました。見ていてくださいhttps://github.com/zioalex/unused_apache_modulesを
これはあなたがそれから期待できるものです:
curl http://localhost/server-info > http_modules_test.txt
cat http_modules_test.txt| python find_unused_apache_mod.py
1
Module name mod_python.c
Configuration Phase Participation: 4
Request Phase Participation: 11
Current Configuration: 3
2
Module name mod_version.c
Configuration Phase Participation: 0
Request Phase Participation: 0
Current Configuration: 1
3
Module name mod_proxy_connect.c
Configuration Phase Participation: 0
Request Phase Participation: 0
Current Configuration: 0
To remove safely:
['mod_proxy_connect.c']
POPPED: mod_proxy_connect.c
To KEEP: ['mod_python.c', 'mod_version.c', 'mod_proxy_connect.c']