web-dev-qa-db-ja.com

使用されていて削除できるApacheモジュールを特定できますか?

私は、多くの人と同じように、デフォルトの "LoadModule"行が多数ある比較的標準のApacheインストールを持っています。

最初から多くのソフトウェアをインストールしてきましたが、正直なところ、どのソフトウェアがどのモジュールを使用しているかはわかりません。

Apacheインスタンスのメモリフットプリントを削減したいと思います。そのために、使用されているモジュールを削除します。モジュールが使用中かどうかを判断するために知っている唯一の方法は、構成からモジュールを削除して、何かが壊れていないかどうかを確認することです。これは、私が説明する時間よりも多くの点で悪いです。

Apacheにどのモジュールが使用されたかを報告させる方法を誰かが知っているかどうか使用済み、またはモジュールが安全であるかどうかをプログラムで判断する別の方法があるかどうか知りたいn-設定

18
Matt Simmons

私が行った方法は、テストサーバーを構築し、 documentation を読んで、空白のページから始めます。

次のモジュールは必須です。

  • mod_authz_Host
  • mod_auth_basic
  • mod_authn_file
  • mod_dir
  • mod_log_config
  • mod_mime

次に、残りのすべてのモジュールをコメント化して、Apacheを再起動します。何かが壊れると音が鳴ります、例えば:

Starting httpd: Syntax error on line 10 of /etc/httpd/conf.d/squid.conf:
Invalid command 'order', perhaps misspelled or defined by a module not included in the server configuration

他のモジュールについても同じようにします。この方法を使用することにより、いくつかのモジュールがしばしば必要になります不要

  • mod_authn_alias
  • mod_authn_anon
  • mod_authn_dbm
  • mod_authn_default

  • mod_authz_user
  • mod_authz_owner
  • mod_authz_groupfile
  • mod_authz_dbm
  • mod_authz_default

  • mod_include
  • mod_logio
  • mod_ext_filter
  • mod_usertrack
  • mod_dav
  • mod_info
  • mod_dav_fs
  • mod_speling
  • mod_suexec
  • mod_cgi

認証にLDAPを使用していない場合は、これを無効にすることができます。

  • mod_ldap
  • mod_authnz_ldap

有効にする場合は、以下のモジュールを考慮する必要があります。

  • mod_proxy
  • mod_proxy_balancer
  • mod_proxy_ftp
  • mod_proxy_http
  • mod_proxy_connect

  • mod_cache
  • mod_disk_cache
  • mod_file_cache
  • mod_mem_cache
7
quanta

以前の投稿は、何かが壊れるまでモジュールを無効にすることを提案しています。実動システムではそれは間違いなく無茶苦茶ですが、とにかく回帰テストを行う必要があるので、人は正しい道にいます。

したがって、この場合:

  1. 実行しているものと同じテストサーバーをサイト構成まで構築します。
  2. モジュールを無効にします。
  3. サイトで回帰テストを実行します。
  4. 何かが壊れるか、すべてのモジュールが終了するまで、手順2と3を繰り返します。
  5. モジュールを再度有効にします。
  6. 手順2と3を繰り返します。
  7. 新しく更新されたApacheを使用して、構成に対してフラッシュカット構成を実行し、Apacheサービスを再起動します。
  8. 失敗した場合は、構成バスを元に戻し、ログをプルして分析し、ステップ2(または必要に応じてステップ1)から開始します。

これがおそらく、Apache設定を合理化する最も簡単な方法です。それ以外の場合は、各モジュールを調べて機能を決定し、サイトを検索して、その機能を使用しているモジュールを確認する必要があります。それはもっと時間がかかります。

あるいは、これは何かに切り替える良い機会になるかもしれません morelightweight

4
Rilindo

私はあなたがApacheについて質問しているのを知っていますが、システムのメモリの制約を考えると、Nginx、Lighthttpd、または他のフットプリントの小さいWebサーバーのApacheを交換する方がはるかに良いでしょう。 Apacheはモジュールのサポートに最適ですが、very Nginx、Lighthttpd、Cherokee、G-WANなどの新しいWebサーバーと比較すると、メモリを大量に消費します。

0
Robert Munn

私はあなたの質問に直接答えることはできませんが、インターネット上には多くの「小さな」AMPパッケージがあり、私の知る限りでは、ほとんどのプリインストールモジュールが含まれていません。それで、私はそれらを参考例として見ることから始めます。

次の2つのリンクから始めることができます。

  1. http://en.wikipedia.org/wiki/List_of_Apache%E2%80%93MySQL%E2%80%93PHP_packages
  2. http://en.wikipedia.org/wiki/Comparison_of_WAMPs
0
user99300