今回は、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をインストールする必要があります。(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’ を使って設定をします。
””ちょっと細かいので読み飛ばし可の部分””
・現在割り当てられているゾーンの確認
[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 件のコメント:
コメントを投稿