☆☆ 新着記事 ☆☆

2018年12月12日水曜日

WebArena VPSで初心者がWord Pressを立ち上げる (2/7) -Apacheの設定

驚きの安さに目が眩み、初心者だけど、WebArena VPSで、Word Pressを立ち上げられるかチャレンジしてみる「ねこでもわかる(か?) VPS」 第2回目。 初心者なので、一歩ずつ、丁寧にやっていきます。

今回は、Apacheのインストール・設定、Firewallの設定(前編)までです。
--------------------------------------------------------------------------------

前回はSSH接続まで完了しましたので、今回は

(作業手順)

1.httpサーバーApacheをインストールする
2.Fiwewallを設定する(前編)。
(長くなったので、以降の項目は次回に。)
3.ファイルをアップロードする
4.ドキュメントルートの権限を変更する
5.ドメインを取得して、DNSの設定をする

--------------------------------------------------------------------------------
1.  Apacheをインストールする。

1) Apacheを選んだ理由

 Apacheは、Webサーバー(HTTP Server)を構築する為のソフトウェアですね。

 最近は、nginxが急速に伸びてきていますが、まだまだ ApacheがMicrosoftのIISと双璧をなす
   HTTP Server ソフトウェアです。
 なので、今回はApacheを選択しています。 特に、nginxは、Httpリクエストを高速に処理する
 ための設計がされていて、PHPの処理は、結局、APACHEに任せる、という事らしいので、
 Word Pressやるなら、結局、Apacheを入れておかなくちゃ、という認識です。

(2018年8月 Netcraft社調べ: 毎月アップデートしてるようです。)



2). Apacheをインストールする。

さて、SSHでサーバーに接続すると、そこからはキャラクター(文字)でコマンドを打っていくことになります。CUI (Character User Interface)の世界です。

このブログでは、入力するコマンドは基本的に青字で書いていきます。

[root@mk1ouin8 ~]# ls -a <-- 最初のSSH接続したディレクトリーでファイル・ディレクトリの一覧表示
.  ..  .bash_logout  .bash_profile  .bashrc  .cshrc  .ssh  .tcshrc
[root@mk1ouin8 ~]# cd / <-- ルートディレクトリへ移動する。
[root@mk1ouin8 /]# ls -a
.   bin   dev  home  lib64  metadata  opt   root  sbin  sys  usr
..  boot  etc  lib   media  mnt       proc  run   srv   tmp  var

自分のいるdirectoryは[ ]内に表示されます。(赤字の部分)。
[ ]の後にくる '♯' や '?' は、自分が何の権限でログインしているかを示しています。
'♯' は、ルート権限と言われるもので、何でもできる権限です。 この権限をログインした
アカウントで直接使えるのは、セキュリティー上の問題がありますので、あとで変更します。

参考)

*Linuxのよく使うコマンドは、こちらにまとめています。
   ◆   初心者が使う 基本のLinux コマンド 一覧

さて、WebArenaでは、最初からApacheはインストールされています??。

(マニュアルには、インストール方法は書いてなくて、いきなり「Apacheを起動してください。」
 と書いているので、インストール済みなのかと思いました。!!)

Apacheをインストールする必要があります。VPSだと、普通、どの事業者のサービスでも
自分でインストールする必要がありますので、文句は言いません。)

① 事前確認
通常、パッケージをインストールするには、yumというコマンドを使います。
CentOSでは、Webサーバーを構成するためのApacheは、httpdというパッケージになっています。

yumで取得できるhttpdという文字列を含むパッケージを調べると、以下の通りとなります。

[root@mk1ouin8 ~]# yum list | grep httpd
httpd.x86_64                            2.4.6-88.el7.centos       base
httpd-devel.x86_64                      2.4.6-88.el7.centos       base
httpd-manual.noarch                     2.4.6-88.el7.centos       base
httpd-tools.x86_64                      2.4.6-88.el7.centos       base
keycloak-httpd-client-install.noarch    0.6-3.el7                 base
libmicrohttpd.i686                      0.9.33-2.el7              base
libmicrohttpd.x86_64                    0.9.33-2.el7              base
libmicrohttpd-devel.i686                0.9.33-2.el7              base
libmicrohttpd-devel.x86_64              0.9.33-2.el7              base
libmicrohttpd-doc.noarch                0.9.33-2.el7              base
python2-keycloak-httpd-client-install.noarch

$yum list | grep httpd
というコマンドは、httpdという文字列を含む全てのファイルを表示しています。

赤字のものが、httpdに関する本体、開発ツール、マニュアル、コマンド・ツールになります。

②インストールする。

さて、インストール自身は簡単。

# yum -y install httpd httpd-tools httpd-devel httpd-manual

と入力し、実行するだけです。
(yum に -y というオプションを付けることで、インストール時の確認応答を省略できます。)

最後に、

Complete!

と表示されれば完了です。

③ インストールされたパッケージの確認

yum list installed | grep httpd

[root@mk1ouin8 /]# yum list installed | grep httpd
httpd.x86_64                         2.4.6-88.el7.centos            @base
httpd-devel.x86_64                2.4.6-88.el7.centos            @base
httpd-manual.noarch              2.4.6-88.el7.centos            @base
httpd-tools.x86_64                 2.4.6-88.el7.centos            @base

必要なパッケージがインストールされていることが確認できます。

因みに、どのディレクトリに格納されたか(PATHといいます。)は、以下のコマンドで確認できます。

パスの確認。
   $ which httpd
   [root@mk1ouin8 /]# which httpd
  /usr/sbin/httpd

  実際に確認してみます。
  [root@mk1ouin8 /]# cd /usr/sbin
  [root@mk1ouin8 sbin]# ls -a

沢山、格納されているファイルがリスト形式で表示されますが、その中に ’httpd' がありますね。
(画面が一杯になったら、clear コマンドで、画面クリアができます。)

3)Apacheを起動する

Apacheは、 systemctl コマンドで操作することができます。

① 起動する。
$ systemctl start httpd
(エラーが出なければOKです。)

② 起動の状態を確認する。
$ systemctl status httpd

● httpd.service - The Apache HTTP Server
  Loaded: loaded (/usr/lib/systemd/system/httpd.service; disabled; vendor preset: disabled)
   Active: active (running) since Wed 2018-12-12 19:18:17 JST; 1min 49s ago
     Docs: man:httpd(8)
           man:apachectl(8)
 Main PID: 17094 (httpd)
   Status: "Total requests: 0; Current requests/sec: 0; Current traffic:   0 B/sec"
   CGroup: /system.slice/httpd.service
           tq17094 /usr/sbin/httpd -DFOREGROUND
           tq17095 /usr/sbin/httpd -DFOREGROUND
           tq17096 /usr/sbin/httpd -DFOREGROUND
           tq17097 /usr/sbin/httpd -DFOREGROUND
           tq17098 /usr/sbin/httpd -DFOREGROUND
           mq17099 /usr/sbin/httpd -DFOREGROUND
Dec 12 19:18:17 mk1ouin8 systemd[1]: Starting The Apache HTTP Server...
Dec 12 19:18:17 mk1ouin8 httpd[17094]: AH00557: httpd: apr_sockaddr_info_ge...n8
Dec 12 19:18:17 mk1ouin8 httpd[17094]: AH00558: httpd: Could not reliably d...ge
Dec 12 19:18:17 mk1ouin8 systemd[1]: Started The Apache HTTP Server.
Hint: Some lines were ellipsized, use -l to show in full.

無事にApacheが起動できました!!

③ httpd自動起動の設定

Apacheは起動できましたが、現状では、 httpサーバーを再起した時にApacheが再起動しません。
これは面倒なので、サーバーが再起動したときに、Apacheも再起動するように設定します。
$ systemctl enable httpd

[root@mk1ouin8 /]# systemctl enable httpd
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.

設定が反映されているか確認します。

$ systemctl list-unit-files | grep httpd
httpd.service                                 enabled

[root@mk1ouin8 /]# systemctl list-unit-files | grep httpd
httpd.service   enabled

が表示されればOKです。

**(note)**
  Apacheの起動、停止、再起動に
  ./etc/init.d/httpd  (オプション)
 (オプション)は start 又は stop 又は restart。
 この書き方でをガイドしているものがありますが、   これは「sysv方式」と呼ばれる記述方式で、
 コマンド実行の効果は同じです。systemctlの方が正式と言われています。
   


2. Firewallを設定する。

CentOS 7では、それ以前のバージョンで使われていたiptablesは使われなくなりました。
標準で使われる’ httpd’ を使って設定をします。

””ちょっと細かいので読み飛ばし可の部分””
 
firewalld にはゾーンという概念があり、ゾーンにFWの設定が入っています。ゾーンは標準で9つ用意されています。(追加も可能) NIC に対して、ゾーンを割り当てて管理します。

・現在割り当てられているゾーンの確認
[root@mk1ouin8 /]# firewall-cmd --get-active-zones
public
  interfaces: eth0


・デフォルトで割り当てられるゾーンの確認
[root@mk1ouin8 /]# firewall-cmd --get-default-zone
public


特にNICに対してのゾーンの割り当てがない場合は、デフォルトゾーンが割り当てられます。

・デフォルトゾーンのFW設定確認
[root@mk1ouin8 /]# firewall-cmd --list-all
public (active)
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: ssh dhcpv6-client
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:


・すべてのゾーンのFW設定を確認
[root@mk1ouin8 /]# firewall-cmd --list-all-zones
block
  target: %%REJECT%%
  icmp-block-inversion: no
  interfaces:
  sources:
  services:
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:

dmz
  target: default
  icmp-block-inversion: no
  interfaces:
  sources:
  services: ssh
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
drop
  target: DROP
  icmp-block-inversion: no
  interfaces:
  sources:
  services:
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
external
  target: default
  icmp-block-inversion: no
  interfaces:
  sources:
  services: ssh
  ports:
  protocols:
  masquerade: yes
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
home
  target: default
  icmp-block-inversion: no
  interfaces:
  sources:
  services: ssh mdns samba-client dhcpv6-client
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
internal
  target: default
  icmp-block-inversion: no
  interfaces:
  sources:
  services: ssh mdns samba-client dhcpv6-client
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
public (active)  <- 通常設定に使用するゾーン
  target: default
  icmp-block-inversion: no
  interfaces: eth0
  sources:
  services: ssh dhcpv6-client
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
trusted
  target: ACCEPT
  icmp-block-inversion: no
  interfaces:
  sources:
  services:
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:
work
  target: default
  icmp-block-inversion: no
  interfaces:
  sources:
  services: ssh dhcpv6-client
  ports:
  protocols:
  masquerade: no
  forward-ports:
  source-ports:
  icmp-blocks:
  rich rules:


参考)https://qiita.com/kenjjiijjii/items/1057af2dddc34022b09e


””読み飛ばし可の部分の終了””

上記の確認は、前回でWebArenaのサーバー管理コンソールから、ポート番号 '22番'、'80番'をAny IP Addressに対して解放した設定が、現時点で反映されているのか確認したものです。

当たり前ですが、反映されていないようです。

今回は、Webへののhttpアクセスを許可する為に、ポート番号 '80番’を開放しますが、他のポート番号を使いたいときは、このhttpdの設定と、WebArena ポータルでのセキュリティーグループの両方での設定が必要になるようです。

投稿が長くなってページが重くなってきたので、今回はここまでにします。


https://www.rem-system.com/centos-httpd-inst/

0 件のコメント:

コメントを投稿