初心者のためのApacheチュートリアル

Apacheとは何ですか?

Apacheは、アプリケーションソフトウェアの注目すべき作品です。 商用webサーバー市場で50%以上のシェアを持つ世界で最も広く使用されているWebサーバーアプリケーションです。 ApacheはUnixライクなオペレーティングシステムで最も広く使用されているWebサーバーアプリケーションですが、Windows、OS X、OS/2などのほぼすべてのプラット アパッチという言葉は、戦争と戦略作りのスキルで有名なネイティブアメリカンの部族”アパッチ”の名前から取られています。

これは、同時接続ごとに新しいスレッドを作成するモジュール式のプロセスベースのwebサーバーアプリケーションです。 それらの多くは、別々のモジュールとしてコンパイルされ、そのコア機能を拡張し、サーバー側のプログラミング言語のサポートから認証メカニズムにすべ 仮想ホスティングは、単一のApache Webサーバーが異なるwebサイトの数を提供することを可能にするそのような機能の一つです。

初心者のためのApacheチュートリアル

Apacheをインストールする方法

パッケージやアプリケーションをイ 以下に入隊しています-

  1. このオープンソースのwebアプリケーションの特徴の一つは、誰もが自分の環境に従ってインストーラを作ることがで これにより、Debian、Red Hat、FreeBSD、Suseなどのさまざまなベンダーが許可されました。 アカウントにインストールされている他のアプリケーションやベースOSを取ってapacheのファイルの場所と設定をカスタマイズするには。
  2. ベンダーベースのインストーラからインストールするのとは別に、ソースコードからビルドしてインストールするオプションが常にあります。 ソースファイルからApacheをインストールすると、プラットフォームに依存しない&すべてのOSで動作します。

apache webサーバーは、管理者が必要な機能を選択し、彼/彼女の要件に従って異なるモジュールをインストールすることができ、モジュール化されたアプリケーシ

すべてのモジュールは、メインのapacheファイルとは別に存在する動的共有オブジェクト(DSOは、実行中に複数のアプリで共有できるオブジェクトファ サーバー構成からモジュールを追加/削除/更新するタスクを非常に簡単にします。

Install Apache:Linux Platform

On Red Hat or rpm based systems

rpmを使用している場合(RedHat Package ManagerはLinuxシステムにアプリケーションをインストールするためのユーティリティです)ベースのLinux Red Hat、Fedora、CentOs、Suseでは、ベンダー固有のパッケージマネージャーまたは利用可能なソースtarballからrpmファイルを直接ビルドすることで、このアプリケーションをインス

CentOs、Red Hat、FedoraなどのすべてのRed Hatベースのディストリビューションで利用可能なデフォルトのパッケージマネージャを介してApacheをインストールできます。

# yum install httpd

apacheソースのtarballは、次のコマンドを使用してrpmファイルに変換できます。 p>

# rpmbuild -tb httpd-2.4.x.tar.bz2

作成するために-develパッケージをサーバーにインストールする必要があります。ソースからのrpmファイル。

ソースファイルをrpmインストーラに変換したら、次のコマンドを使用してApacheをインストールできます。

# rpm –ivh httpd-2.4.4-3.1.x86_64.rpm

インストール後、サーバーが自動的に起動しないため、サービスを開始するには、Fedora、CentOs、Red Hatで次のコマンドのいずれかを使用する必要があります。

# /usr/sbin/apachectl start# service httpd start# /etc/init.d/httpd start

ソースからApacheをインストール

ソースからapacheをインストールするには、サーバーに–develパッケージをインストールする必要があります。 .利用可能な最新バージョンのApacheを見つけることができます。 ソースファイルをダウンロードしたら、/usr/local/srcフォルダに移動します。

 cd /usr/local/src gzip -d httpd-2.2.26.tar.gz tar xvf httpd-2.2.26.tar httpd-2.2.26

Apacheで利用可能なすべての設定オプションを表示するには、使用できます。/configure-helpオプション。 最も一般的な設定オプションは–prefix={install directory name}です。

./configure --help./configure –prefix=/usr/local/apache –enable-so make make install

上記の例は、DSO機能を持つ/usr/local/apacheディレクトリ内のApacheのコンパイルを示しています。 -Enable-soオプションは、再コンパイルを必要とするのではなく、DSO機構を介して実行時に必要なモジュールをapacheにロードすることができます。

インストールが完了すると、お好みのブラウザでwebサーバーのデフォルトページを参照できます。 サーバー上でファイアウォールが有効になっている場合は、OSファイアウォール上のポート80の例外を作成する必要があります。 次のコマンドを使用して、ポート80を開くことができます。

iptables -I INPUT -p tcp --dport 80 -j ACCEPT

サービスiptables save

サーバーのIPアドレスを閲覧すると、デフォルトのApache2ようこそ画面が表示されます。 初心者のためのApacheチュートリアル

仮想ホストとは何ですか?

Apache webサーバーは、同じサーバー上で複数のwebサイトをホストできます。 Webサイトごとに個別のサーバーマシンとapacheソフトウェアは必要ありません。 これは、仮想ホストまたはVHostの概念を使用して達成することができます。

webサーバー上でホストするドメインは、apache設定ファイルに別のエントリがあります。

初心者のためのApacheチュートリアル

Apache Virtualhostの種類

  1. 名前ベースの仮想ホスト
  2. アドレスベースまたはIPベースの

名前ベースの仮想ホスト

名前ベースの仮想ホストは、単一のIPアドレス上で複数の仮想サイトをホストするために使用されます。

初心者のためのApacheチュートリアル

名前ベースの仮想ホスティングを設定するには、すべての目的のwebサイトのApacheリク これを行うには、apache設定、つまりhttpd内のNameVirutalHostディレクティブを使用します。conf/apache2.confファイル。

Apache仮想ホストの例: h3>

NameVirtualHost *:80<VirtualHost 192.168.0.108:80>ServerAdmin This email address is being protected from spambots. You need JavaScript enabled to view it.DocumentRoot /var/www/html/example1.com ServerName www.example1.com</VirtualHost><VirtualHost 192.168.0.108:80>ServerAdmin This email address is being protected from spambots. You need JavaScript enabled to view it.DocumentRoot /var/www/html/example2.comServerName www.example2.com</VirtualHost>

要件に応じて、いくつでも仮想ホストを追加できます。 Web設定ファイルをチェックするには、次のようにします。

#httpd –tSyntax OK

設定ファイルの構文が間違っている場合、エラーがスローされます

# httpd -tSyntax error on line 978 of /etc/httpd/conf/httpd.conf:Invalid command '*', perhaps misspelled or defined by a module not included in the server configuration

IPベースのバーチャルホスト

IPベースのバーチャルホストを設定するには、サーバーに複数のIPアドレスが設定されている必要があります。 したがって、vhost apacheの数は、サーバー上で構成されたIPアドレスの数。 サーバーに10個のIPアドレスがある場合は、10個のIPベースのバーチャルホストを作成できます。

初心者のためのApacheチュートリアル

上記の図では、二つのウェブサイトexample1.com とexample2.com 異なるIpが割り当てられ、IPベースの仮想ホスティングを使用しています。Phpファイルを実行するにはどのようなApacheが必要ですか?

ApacheでPhpファイルを実行するには、サーバーでmod_phpを有効にする必要があります。 これはApacheが解釈することを可能にします。Phpファイル。 これには、apacheのPhpコードを解釈し、HTMLをwebサーバーに送信するPhpハンドラがあります。 サーバーでmod_phpが有効になっている場合は、phpという名前のファイルがあります。/etc/httpd/confにあるconf。d/ディレクトリ。 また、次のように確認することもできます。

httpd -M | grep "php5_module"

出力は次のようになります:

初心者のためのApacheチュートリアル

ApacheのPhpハンドラ

  • mod_php
  • CGI
  • FastCGI
  • suPHP

mod_phpis最も古いPHPハンドラ、phpをapacheの一部にし、外部phpプロセスを呼び出しません。 このモジュールは、すべてのLinuxディストリビューションのリポジトリにデフォルトでインストールされているので、このモジュールを有効/無効にすることは非常に簡単です。 FASTCGIをPHPハンドラとして使用している場合は、サーバー上の異なるアカウントで使用されるPHPの複数のバージョンを設定できます。

FastCGIすなわちmod_fastcgiはmod_fcgidの拡張であり、mod_fcgidはCGIすなわちmod_cgiの高性能な代替である。 これは、同時のweb要求を処理するためにCGIのインスタンスの十分な数を開始します。 また、suexecを使って様々なユーザが独自のPHPインスタンスを持つことをサポートし、ウェブセキュリティを向上させます。

Apacheでrubyファイルを実行するには、mod_rubyを有効にする必要があります。 Apacheはfastcgiを介してrubyファイルを処理することもできます。 Mod_fcgid、つまりFastCGIの助けを借りて、複数のバージョンのrubyを使用することができます。 また、apache passengerをインストールし、rubyページを提供するために使用するようにApacheを設定することもできます。

(phusion Passengerは”passenger”とも呼ばれ、ApacheとNginxと統合するように設計された無料のwebサーバーモジュールです)

mod_rubyをサーバーにインストールする手順-

cd /tmpwget http://www.modruby.net/archive/mod_ruby-1.2.6.tar.gztar zxvf mod_ruby-1.2.6.tar.gzcd mod_ruby-1.2.6/ ./configure.rb --with-apr-includes=/usr/include/apr-1makemake install

ApacheでRubyを実行する方法

mod_rubyモジュールをApache設定、すなわち/etc/httpd/confに追加する必要があります。d/ruby.confに次の行を追加します。

loadmodule ruby_module modules/mod_ruby.したがって、

これらのモジュールを有効または無効にしたい場合は、apache設定ファイルを編集し、webサーバーがすでにこれらのモジュールでコンパイルされている場合は、これらのモジュールをコメントまたはコメント解除する必要があります。

初心者のためのApacheチュートリアル

Apache Webサーバーを保護する方法

webサーバーを保護することは非常に重要であり、他の人が意図した情報だけを見ることができるようにすることを意味します&データを保護し、アクセスを制限します。

これらは、Apache webサーバーのセキュリティを強化する一般的なものです。

1)ApacheのバージョンとOS情報を非表示にします。

Apacheは、以下のスクリーンショットに示すように、そのバージョンとオペレーティングシステムの名前をエラーで表示します。

初心者のためのApacheチュートリアル

ハッカーは、この情報を使用して、サーバーまたはOSの特定のバージョンで公開されている脆弱性を使用して攻撃を開始することができます。

Apache webserverfromがこの情報を表示しないようにするには、apache設定ファイルで利用可能な

“server signature”オプションを変更する必要があります。 デフォルトでは、それは”オン”であり、我々はそれを”オフ”に設定する必要があります。

vim /etc/httpd/conf/httpd.conf
ServerSignature OffServerTokens Prod

また、webサーバーにapacheのみを返し、OSのメジャーバージョンとマイナーバージョンを抑制するように指示する”ServerTokens Prod”を設定しました

設定ファイルを変更した後、apache webサーバーを再起動/リロードして有効にする必要があります。

service httpd restart

初心者のためのApacheチュートリアル

2)ディレクトリリストを無効にする

ドキュメントルートディレクトリにインデックスファイルがない場合、デフォルトではapache webサーバーにドキュメントルートディレクトリのすべてのコンテンツが表示されます。

初心者のためのApacheチュートリアル

この機能は、Apache設定ファイルで利用可能な”options directive”を介して特定のディレク

<Directory /var/www/html> Options -Indexes</Directory>

初心者のためのApacheチュートリアル

3)不要なモジュールを無効にする

使用されていない不要なモジュールをすべて無効にすることをお勧めします。 Apacheの設定ファイルで利用可能な有効なモジュールのリストを見ることができます-

#httpd –Mperl_module (shared)php5_module (shared)proxy_ajp_module (shared)python_module (shared)ssl_module (shared)

リストされているモジュールの多くはmod_imap、mod_include、mod_info、mod_userdir、mod_autoindexのように無効にすることができます。 p>

vi /etc/httpd/conf/httpd.conf#LoadModule auth_digest_module modules/mod_auth_digest.so

モジュールをコメントしたら、ファイルを保存します。

次のコマンドでapacheサービスを再起動します。

/etc/init.d/httpd restart

4)webルートディレクトリ外のファイルへのアクセスを制限する

webルートディレクトリ外のファイルにアクセスできないようにしたい場合は、webサーバー設定ファイルで”Allow”と”Deny option”でディレクトリが制限されていることを確認する必要があります。

<Directory/>Options NoneAllowOverride NoneOrder deny,allowDeny from all</Directory>

webルートdirectoyの外部でアクセスを制限すると、webサーバー上の他のフォルダにあるファイルにアクセスできなくなり、404戻りコードが得られ

初心者のためのApacheチュートリアル

5)Mod_evasiveを使用してDoS攻撃をrebutting

Dosからwebサーバーを保護したい場合(すなわち、サービス拒否)は、モジュールmod_evasiveを有効にする必要があります。 これは、Dos攻撃を検出し、そのコースを実行するために残された場合、それが行うと同じくらいのダメージをやってから攻撃を防ぐサードパーティ製のモジュー これは、ここでダウンロードすることができます。

上記のファイルをダウンロード

6)mod_securityを使用してapacheのセキュリティを強化

このモジュールはApacheのファイアウォールとし また、webサーバーがブルートフォース攻撃を防ぐこともできます。 Mod_securityモジュールは配布物のデフォルトのパッケージマネージャと共にインストールすることができます。

初心者のためのApacheチュートリアル

7)要求サイズの制限

Apacheは、DoS攻撃につながる可能性のあるhttp要求の合計サイ Apacheディレクティブ”LimitRequestBody”のリクエストサイズをdirectoryタグで制限することができます。 値は、要件に応じて0〜2GB(つまり2147483647バイト)に設定できます。

<Directory "/var/www/html/uploads"> LimitRequestBody 512000</Directory>

Apacheログ形式

Apacheログは、サーバーの一般的な問題を検出するのに役立つ詳細な情報を提供します。

アクセスログを作成するには、mod_log_configmoduleを有効にする必要があります。

apache設定ファイルで利用可能な三つのディレクティブ、すなわち

  • TransferLog:ログファイルを作成します。
  • LogFormat:カスタム形式を指定します。
  • CustomLog:ログファイルの作成と書式設定。

TransferLogディレクティブはapache設定ファイルで使用でき、設定されたパラメータに従って仮想ホストのログファイルを回転させます。

<VirtualHost www.example.com> ServerAdmin This email address is being protected from spambots. You need JavaScript enabled to view it. DocumentRoot /usr/www/example/httpd/htdocs/ ServerName www.example.com ServerAlias example.com www.example ErrorLog /usr/www/example/httpd/logs/error_log TransferLog/usr/www/example/httpd/logs/accesslog CustomLog /usr/www/example/httpd/logs/accesslog combined</VirtualHost>

Apacheログ形式の二つのタイプ

  • 共通ログ形式
  • 組み合わせたログ形式。これらを有効にするには、apache設定ファイル、つまりapache2を編集します。conf(Debian/ubuntu)またはhttpd。conf(rpmベースのシステム)ファイル

    共通ログ形式

    LogFormat "%h %l %u %t \"%r\" %>s %b" commonCustomLog logs/access_log common

    Apacheによって生成された共通ログ

     client denied by server configuration: /export/home/live/ap/htdocs/test

    結合ログ形式

    LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-agent}i\"" combinedCustomLog log/access_log combined

    ここで、

    • %hはリモートホスト
    • %lはidentdによって決定されるユーザーのId
    • %uはhttp認証によって決定されるユーザー名
    • %tはサーバーが要求の処理を終了した時刻です。
    • %rはクライアントからの要求行です。 (“GET/HTTP/1.0”)
    • %>sは、サーバーからクライアントに送信されるステータスコードです(500、404など)。)
    • %bはクライアントへの応答のサイズ(バイト単位)
    • RefererはこのURLにリンクされているページです。
    • User-agentはブラウザの識別文字列です。Apacheによって生成された結合ログ:
      199.187.122.91 - - "GET /robots.txt HTTP/1.1" 404 1228 "-" "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; SV1; .NET CLR 2.0.50727)"

      カスタムログは、サーバー上の仮想ホストごとに別々のログファイルを作成します。 これは、設定ファイルの仮想ホストセクションで指定する必要があります。 生成されたログはその仮想ホストのカスタムになり、形式は結合されます。

      以下の仮想ホストの設定を参照してください。

      初心者のためのApacheチュートリアル

      あなたの非常に最初の生産Webサーバーを設定

      1. 実稼働webサーバーを使用するには、Linux/Unix、Windows、MacOSなどを実行する専用ノード(物理/仮想またはクラウドインスタンス)が必要です。

      2. Webサーバーには、直接ネットワーク接続とその上にstaticIPアドレスが構成されている必要があります。

      3. これは、webページを実行するために必要なすべてのモジュールを持っている必要があります。 WebサーバーがPHPページを処理する場合は、PHPモジュールを有効にする必要があります。

      初心者のためのApacheチュートリアル

      1. また、マルウェアやウイルス攻撃からWebサーバーを保護するために構成され、実行されている良いウイルス対策アプリケーションを持っている必要があります。 また、それらから最大の利益を得るために、手動の介入なしに定期的に設定されたウイルス対策/アンチマルウェアアプリケーションを更新するメカニ
      2. webサーバーでホストされるドメインの数百を持っている場合は、各ドメインのファイルシステムクォータ、各ドメインが作成できるデータベースの数、ドメ
      3. webサーバーが共有ホスティングサービス用に設定されている場合は、webサーバー上のユーザーを制限する必要があります。 共有ホスティングユーザーは、重要なファイルを損傷しないように、最小限のユーザー権限を持つ必要があります&サーバー全体を破壊します。 Apacheは、任意のそのような機能を提供し、異なるサードパーティ製のアプリケーション、これを達成するためにOSのカスタマ
      4. webサーバーに新しいドメインを追加する場合は、追加されたドメインのすべての機能を有効にするために何百もの設定ファイルを編集する必要が
      5. ホストされているドメインのいずれかが他のドメインとは異なるPHP設定を必要とする場合、コアApache webサーバーでこれを実装することは非常に複雑
      6. 運用webサーバーには、サーバーに高い負荷を引き起こす可能性のある不要なトラフィックをブロックするためのファイアウォールが必要です。 コマンドラインでIPTABLEルールを実装することは非常に複雑です。 不要なトラフィックをブロックするための効果的なファイアウォールルールを記述するには、linux/Unix環境のコアの専門知識が必要です。 IPTABLEはnetfilterモジュールに基づいており、管理者がサーバー上の着信/発信トラフィックのルールを作成できるようにするOSレベルのファイアウォールです。
      7. 運用webサーバーには、電子メール、ファイルアップロード用のFTP、駐車ドメイン用のドメインネームシステムなど、いくつかの異なるアプ コアLinux/Unixシステム上でこれらすべてのアプリケーションを管理するには、それぞれの技術に関する専門知識が必要です。

      だから、一つは、複数のドメインのためのwebサーバーを管理することは非常に複雑な作業であり、所望の結果を満たすために、各アプリケーションをカ ミス構成のトラブルシューティングは、初心者にとっては非常に困難です。

      Cpanelまたは同様のソフトウェアを使用してソリューション

      Cpanelは、webサーバーを管理するグラフィカルな方法を提供します。 これは、使いやすく設定しやすい大量のホスティングサービスを提供することを意味します。 cPanelは、ホスティングとwebサーバー管理への参入への技術的な障壁を削減しました。 これは、複雑なタスクが容易になり、それはwebサーバを動作させるために必要な一般的なシステム管理タスクを実行する多くの便利で使いやすいwebイン

      初心者のためのApacheチュートリアル

      cPanelのは、ソフトウェアの独自のバージョンをコンパイルします。

      webサーバーを再コンパイルする必要がある場合、つまり apache通常のLinuxプラットフォームでは、必要なモジュールを手動で選択/検索する必要があります。 cPanelは、スクリプトベースのwebサーバーのコンパイル方法であるEasyapache機能を提供します。

      初心者のためのApacheチュートリアル

      それはあなたのwebサービスだけでなく、メール、DNS、FTP、およびwebアプリケーションに必要な

      sslのインストール、異なるPHPモジュールを使用したApacheの再コンパイル、Webセキュリティの更新、効果的なIPTABLEルールの設定、ftpユーザーの追加、各ドメインのメールア

      一般的な管理タスクを修正、インストール、トラブルシューティングする多くのスクリプトを提供します。

      バックアップと復元の機能を提供し、ファイルをバックアップストレージに手動でコピーする必要はありません。 あなたのドメインをバックアップしている場合は、cPanelのは、ドキュメントルートフォルダ、電子メールアカウントとメール、ftpアカウント、データベース、DNSレコー

      また、堅牢なドキュメントを提供し、あなたが議論し、あなたの問題の解決策を得ることができるユーザーの非常に大きなコミュニティを持ってい したがって、cPanelは、必要な機能を備えたwebサーバーを管理するための最良のアプリケーションであると言えます。 ドメインを管理するための使いやすいインターフェイスと、コアWebサーバーの管理の複雑さを避けるためのメカニズムを提供します。 Plesk、ISPConfig、Ajenti、Kloxo、Open Panel、ZpanelなどのcPanelには多くの競合製品があります。



コメントを残す

メールアドレスが公開されることはありません。