【運用保守エンジニア学習4】WebサービスのApache

【運用保守エンジニア学習4】WebサービスのApache

1. Apache のクエリとインストール

rpm –aq | grep httpd	#查询是否安装了apache,本系统还没有安装
yum install httpd –y	#使用yump安装,安装过程省略

rpm コマンドでは、

-a すべてのパッケージをクエリします
。 -q クエリ モードを使用します。問題が発生した場合、rpm コマンドは最初にユーザーに質問します。
-v コマンドの実行プロセスを表示します。
-h または –hash パッケージのインストール時のフラグを一覧表示します。
-i 表示します。パッケージの関連情報
-l スイートのファイル一覧を表示
-R スイートの関連付け情報を表示
-vv コマンドの実行プロセスを詳細に表示し、トラブルシューティングに便利です

2. httpd が正常に起動するかどうかを確認します。

(1) httpdプロセスの有無を確認する

ps aux | grep httpd

ここに画像の説明を挿入

(2) ポート80がリッスンしているか確認する

netstat -utnlp

ここに画像の説明を挿入

(3)、CentOS7 にはデフォルトでは netstat コマンドが含まれておらず、yum を通じてインストールされます。

yum install –y net-tools

3. システムの systemctl コマンドを使用して、YUM メソッドを使用してインストールされた Apache の起動、再起動、シャットダウンを管理できます。

systemctl start httpd	#启动httpd
systemctl restart httpd	#重启httpd
systemctl stop httpd	#关闭httpd
systemctl enable httpd	#使httpd开机启动
systemctl disable httpd	#取消httpd开机启动

4. システムのファイアウォールをオフにする

注意: Web サイトへのアクセスや他のネットワーク ソフトウェアへのファイアウォールの影響を避けるために、システムのファイアウォールを閉じることをお勧めします。
1. systemctl stop firewalld # ファイアウォールをオフにします。
2. systemctl disable firewalld
# ファイアウォールの起動をキャンセルします。

ここに画像の説明を挿入

ここに画像の説明を挿入

ここに画像の説明を挿入

5. Apacheの起動確認

  • 次のステップに進むために IP アドレスを確認してください
ip a
  • firewalld がオフになっていることを確認し、別のマシン上のブラウザを使用して実験用 httpd マシンの IP にアクセスすると、次の結果が表示されます。

ここに画像の説明を挿入

  • これは、Apache のデフォルトのようこそページです。上記の結果は、Apache が正常に起動したことを示しています。

6. Apacheインストール後のディレクトリ構造

1. 設定ファイルは、/etc/httpd設定ファイルのルート ディレクトリである /etc の下に配置されます。
ここに画像の説明を挿入

  • Tree コマンドがない場合は、yum install –y treeインストール
    2 を使用します。すべての httpd インストール プログラムは、/usr ディレクトリにインストールされますが、各部分に応じて異なるディレクトリにインストールされます。
    1. httpd で使用される基本的なユーザー コマンドは /usr/bin
    /usr/bin/ab /usr/bin/htdbm /usr/bin/htdigest /usr/bin/htpasswd /usr/bin/logresolve にあります。 2. httpd
    プログラム呼び出す必要があるモジュールと統合関数ライブラリは /usr/lib ディレクトリに配置されます
    /usr/lib/httpd---------->httpd は関数ライブラリとルート ディレクトリを呼び出します。統合モジュール
    /usr/ lib/httpd/modules
    /usr/lib/httpd/modules/mod_actions.so
    /usr/lib/httpd/modules/mod_alias.so

    /usr/lib/httpd/modules/mod_vhost_alias.so
    3. httpd に必要なシステム コマンドはすべて /usr/sbin/ ディレクトリに配置されます
    /usr/sbin/apachectl /usr/sbin/htcacheclean /usr/sbin/httpd /usr/sbin/httpd.event /usr/sbin/httpd.worker
    / usr/sbin/httxt2dbm /usr/sbin/rotatelogs /usr/sbin/suexec
    4. httpd に必要な一部の共有ファイルは /usr/share ディレクトリにインストールされます
    /usr/share/doc/httpd-2.2.3 /usr/share/doc/httpd-2.2.3/ABOUT_APACHE

    /usr/share/man/man8/suexec.8.gz
    5. 途中でプログラムを変更する必要があります。操作 データは /var ディレクトリにインストールされ、内容に応じて異なるディレクトリにインストールされます
    /var/cache/mod_proxy ------------> キャッシュ
    /var/lib/dav
    /var /log/ httpd ------------> ログ
    6. Web サーバーとして、Apache には Web ページを公開するためのディレクトリが必要で、/var/www は Web ページを配置するためのディレクトリです。
    ここに画像の説明を挿入

リマインダー:
1./var/wwwこれは、Apache のデフォルトの Web サイト ディレクトリです。ここに Web サイトのコード ファイルを置くことができます。もちろん、お気に入りのディレクトリを置くこともできます。 2.
Apache のインストール後の上記の 6 つのディレクトリ構造は、yum インストール用です。ソース コードからコンパイルしてインストールする場合は、インストール構成によって異なります

7. Apache 設定 - Web サイトのルート ディレクトリを設定します。

vi /etc/httpd/conf/httpd.conf

Enter/DocumentRootキーを押してこの場所を検索すると、
デフォルトの Web サイト ディレクトリが次のとおりであることがわかります。/var/www/html
ここに画像の説明を挿入

  • サイト全体が純粋に静的な Web サイトの場合、Web サイトのコードがすべてディレクトリにアップロードされている限り、デフォルトで何も変更せずにインストールされ、/var/www/htmlWeb サイトに通常どおりアクセスできます。

8.Xftpアップロードファイル

XFTP ソリューションを使用して Linux にファイルをアップロードするときに権限が許可されません
:

転送されたフォルダーには十分な権限がありません。
権限を追加します。

sudo chmod 777 文件夹名称
sudo chmod -R 777 文件夹名称 #文件夹里的文件也赋权
sudo chmod 777 /var/www/html

ここに画像の説明を挿入

ここに画像の説明を挿入

ここに画像の説明を挿入

  • 正常にアップロードされ、アクセスできるようになりました

純粋に静的な Web サイトを実行することが最終的な目標ではなく、Apache Web サーバーを学習することが王道です。Web サイトのコードを /home/myfirstweb ディレクトリに再アップロードしました。次に、前のページのコマンド vi /etc/httpd/conf/httpd.conf を繰り返して構成ファイルを開き、/DocumentRoot と入力して Enter キーを押し、この場所に移動し、/var/ww/html を /home/myfirstweb に変更します。 Apacheを保存して終了し、再起動します。
ここに画像の説明を挿入

  • ディレクトリを作成することを忘れないでください。そうしないと httpd が実行されません。

ここに画像の説明を挿入

ここに画像の説明を挿入
再度実験機のIPアドレスにアクセスすると以下のような状況になります
ここに画像の説明を挿入

Forbidden は禁止を意味し、エラー コードは 403 です。
はい、このサイトにアクセスする権限がありません。これは、Web サイトのコード ディレクトリの権限の問題です。

9. Apache 設定 - Web サイトのコード ディレクトリのアクセス許可を設定します。

Apache 構成ファイルで次のステートメントの組み合わせを使用して、Web サイトのディレクトリのアクセス許可を設定します。

<Directory “网站文件目录”>
……
</Directory>

同時に表示する必要があります。
中央の部分はパーミッション宣言ステートメントです。
デフォルトのディレクトリが であることはわかっています/var/www/html。デフォルト設定がデフォルト ディレクトリのパーミッションをどのように宣言するかを見てみましょう。次のように:

<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted #允许访问
#注意:
#此处语句旧版为Deny / Allow
#新版使用require
</Directory>

新しいディレクトリのアクセス許可を構成するには、/home/myfirstweb上記をに/var/www/html変更する/home/myfirstwebか、上記の内容をコピーしてディレクトリを変更し、それらをすべて構成ファイルに追加します (つまり、元の内容は保持します)。変更が完了したら、設定を保存して Apache を再起動し、再度 Web サイトにアクセスすると、正常にアクセスできることがわかります。

<Directory "/home/myfirstweb">
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

説明:

  • Apache ディレクトリのリストを抑制する
Options FollowSymLinks 
  • AllowOverride が None に設定されている場合、.htaccess ファイルは完全に無視されます。このディレクティブが All に設定されている場合、
    「.htaccess」スコープを持つすべてのディレクティブが .htaccess ファイル内で許可されます。
AllowOverride All 
  • すべてのリクエストにリソースへのアクセスを許可する
Require all granted  

ここに画像の説明を挿入

  • 直接変更しても壊れていて、強迫性障害があるため元に戻したい場合は、次の内容をコピーできます。
<Directory "/var/www/html">
    #
    # Possible values for the Options directive are "None", "All",
    # or any combination of:
    #   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
    #
    # Note that "MultiViews" must be named *explicitly* --- "Options All"
    # doesn't give it to you.
    #
    # The Options directive is both complicated and important.  Please see
    # http://httpd.apache.org/docs/2.4/mod/core.html#options
    # for more information.
    #
    Options Indexes FollowSymLinks

    #
    # AllowOverride controls what directives may be placed in .htaccess files.
    # It can be "All", "None", or any combination of the keywords:
    #   Options FileInfo AuthConfig Limit
    #
    AllowOverride None

    #
    # Controls who can get stuff from this server.
    #
    Require all granted
</Directory>

10. Apache 設定 - Web サイトのコード ディレクトリのアクセス許可を設定します。

Webサーバの権限設定は、Apacheの権限記述に加えて、システム利用者の権限にも注意が必要です。
ここに画像の説明を挿入
Apache 構成ファイル内のユーザーは、実行するプログラムを定義するユーザーであり、grep 検索では、デフォルトのユーザーが「apache」であることが示されます (ユーザー グループもあり、グループ名はすべて apache)。これは、ps 経由でプロセスを表示することで確認できます。

したがって、Web サイトのコード ディレクトリのシステム権限で、ユーザーおよびグループ "apache" が (必要に応じて) 読み取り/書き込み可能であることを確認する必要があります。ls -l を使用して Web サイト ディレクトリのシステム権限を確認してください。許可されていない場合は
、 chown または chmod コマンドを使用して、正しい権限に変更します。

11. Apache 構成 - デフォルトのドキュメントを構成します

デフォルトのドキュメントの変更も <Directory "website file directory">... 領域で行われます。例として以前のアクセス許可設定を示します。全体の設定は次のとおりです。

<Directory "/var/www/html">
    Options Indexes FollowSymLinks
    AllowOverride None
    Require all granted
    DirectoryIndex index.html index.php index.jsp default.aspx
</Directory>
  • DirectoryIndex ステートメントでは、スペースの後に必要なデフォルトのドキュメント ファイル名を追加します。
  • 複数のファイル名はスペースで区切られており、そのうちの 1 つだけが有効になります。上記の例は、デモンストレーションのために他のファイル名を入力したものです。
  • デフォルトのドキュメントを設定していない場合、Web サイトにアクセスするときにホスト名のみを入力すると、ファイルが見つからないというメッセージが表示されます。

ここに画像の説明を挿入

12. Apache 設定 - ホスト名の設定

ServerName www.test.com
  • ホスト名を設定する識別子は ですServerName。次の図は、Apache 設定ファイル内のホスト名の設定記述を示しています。

ここに画像の説明を挿入

  • コメント部分は非常に明確です。Apache はホスト IP を自動的に検出しますが、設定ファイルでホスト名とポートを宣言することをお勧めします。宣言されていない場合は、デフォルトでホストの IP アドレスがアクセスに使用されます。ポートは80です。以下に、さまざまな構成の例を示します。
ServerName 192.168.190.128  #指定服务器IP为主机名,端口为默认80
ServerName 192.168.190.128:8080  #指定服务器IP为主机名,端口为8080
ServerName www.test.com  #指定域名www.text.com为主机名,端口为默认80
ServerName www.test.com:9090  #指定域名www.text.com为主机名,端口为9090

13. サーバー名の表示

grep ServerName httpd.conf

ここに画像の説明を挿入
www.test.com例としてドメイン名の追加を考えてみましょう。
私は test.com というドメイン名を所有しておらず、現在の実験環境はイントラネットであるため、ドメイン名レジストラのドメイン名解釈機能は使用できません。したがって、実験のために、hostsオペレーティング システムでファイルを宣言できます。

(1)、Windows システムのホスト ファイル パス:

C:\Windows\System32\drivers\etc\hosts

(2)、Linux システムのホスト ファイル パス:

/etc/hosts
  • 次の図に示すように、hosts ファイルの最後に行を追加します。形式は次のとおりです。
IP地址 域名
  • 設定後は、www.test.com ドメイン名を使用して Web サイトにアクセスできるようになります。

ここに画像の説明を挿入
ここに画像の説明を挿入

14. Apache 設定 - Web サーバーのログを設定します。

Webサーバーのログは、Webサーバーの障害やWebページへのアクセス状況を確認するために非常に重要です。デフォルトでインストールされる Apache とログの保存場所を見てみましょう。保存場所がわかっていれば、希望の保存パスに変更したい場合は、ディレクトリを変更するだけです。
Apache ログには、Apache プログラム自体の実行ログとユーザー アクセス ログの 2 種類があります。

(1) 動作ログ・エラーログ

ErrorLog "logs/error_log" LogLevel warn

ログの保存パスを定義します。ログの完全なパスは次のとおりです/etc/httpd/logs/error_log
。 ログ レコードのレベルを定義します。8 種類あり、warn は警告レベルです。詳細については、「Apache ログ レベル」を検索してください。
ここに画像の説明を挿入

(2) ユーザーのアクセスログ

CustomLog "logs/access_log" combined

ログのパスとログ形式を宣言します。ログ形式とは、ログ レコードの内容にどのような内容が含まれるか、および内容の順序は何かを意味します内容は日期、用户类型、文档大小、url以下の通りです。これらのコンテンツの順序はフォーマットの問題です。Combined为标准的日志格式

上記はデフォルトのログ保存パスを示しています。これは好みのパスに変更できますが、次の 2 つの点に注意してください。

1. 最初に空のログ ファイルを作成します。つまり、Apache 構成ファイルで宣言した保存ファイルはまだ存在できません。

2. ファイルのシステム権限、Apache の実行ユーザーの読み取りおよび書き込み権限が許可されているかどうかに注意してください。

15. Apache 構成 - その他の構成

純粋に静的な Web サイトを実行するのは比較的簡単ですが、私たちの目標は Apache をよく学ぶことです。そのため、上で紹介した構成に加えて、(一般的に知られている) などの構成もあります。これらの構成を 1 つずつ説明するわけではありませ加密配置。自分で検索して練習してください。https访问权限、压缩、缓存

16. まとめ

この記事では、Web サーバーの基本的な概念と、さまざまなプラットフォームで一般的に使用される Web サーバー プログラムを紹介します。さらに、Apache を例として、 、 、 、 、 をそれぞれ説明します。その他の構成については、自分で検索し配置网站根目录配置网站代码目录的权限学習配置默认文档配置访问地址配置web服务器的日志ください配置网站端口

おすすめ

転載: blog.csdn.net/weixin_43576565/article/details/131575575