1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

OCI Load Balancer と Oracle Linux 9 でロードバランシングを体験 その3 VM上の Oracle Linux 9 に apache、PHPインストール、設定

Last updated at Posted at 2024-03-22

【お知らせ】この記事はこちらの記事と連動しております。

OCI Full Stack Disaster Recovery (FSDR) が Load Balancer 対応になったので試してみた

こちらの記事を試すための 事前準備 の方法をステップバイステップで記述したものであり、こちらで利用しているLoad Balancerと、Oracle Linux 9の構成を最速で構成する手順 です。

この一連の記事に沿ってリソースを作成するだけでも、OCIで Load BalancerOracle Linux 9Webサーバを構築して、ロードバランシングを体験することができます。

この記事は、その3 VM上の Oracle Linux 9 に apache、PHPインストール、設定 です。

目次

その1 はじめに
その2 ネットワーク(VCN)とVM 作成
その3 VM上の Oracle Linux 9 に apache、PHPインストール、設定
その4 Load Blancer 作成・設定
その5 オブジェクト・ストレージ、ブロック・ボリューム 作成・設定

の構成でお届けしています。

VMにアクセスしてパッケージインストール

SSHでログイン

インスタンスへの接続
https://docs.oracle.com/ja-jp/iaas/Content/GSG/Tasks/testingconnection.htm

  • Windows 10 や 11 の場合は WSL2 上で動くOracle Linux をインストールして使うのがお勧めです。

  • MacであればターミナルからSSH接続が可能です。

PC 上の Oracle Linux 9 や Mac の ターミナル上から ssh コマンドで その2 ネットワーク(VCN)とVM 作成 で作成した コンピュート VM の instance-01 や instance-02 のパブリックIPアドレスに接続します。

ssh の秘密鍵: ssh-key-20yy-mm-dd.key
接続先 パブリック IP: xxx.xxx.xxx.xxx
ログインアカウント: opc

の場合は以下のようになります。

$ ssh -i ssh-key-20yy-mm-dd.key xxx.xxx.xxx.xxx -l opc
Last login: Thu Mar zz zz:zz:zz 2024 from yyy.yyy.yyy.yyy
[opc@instance-01 ~]$

uname -a や cat /etc/system-release でホスト名やアーキテクチャなどホストの情報を確認してみましょう。

instance-01 のコンソール

[opc@instance-01 ~]$ uname -a; cat /etc/system-release

image.png

instance-02 のコンソール

[opc@instance-02 ~]$ uname -a; cat /etc/system-release

image.png

instance-01 は A1 シェイプで作成したので、aarch64 で ARM なのがわかりますね。
https://docs.oracle.com/ja-jp/iaas/Content/Compute/References/arm.htm)
instance-02 は E4 シェイプなので x86_64 です。

DNF でパッケージインストール

Oracle Linux 9 なのでDNFを使います。

apache と php をインストールするだけでよければ
$ sudo dnf install httpd php -y
でインストールされます。

$ sudo dnf install httpd php -y

image.png
中略
image.png

これで instance-01 への apache と php のインストール完了です。

instance-02 でも忘れずに同じように apache と php インストールしてください。

完了したら次のセクション VM上でWebサーバの設定 に進みます。

その他 DNF コマンド

dnf module list でモジュール一覧が見れます。

$ sudo dnf module list

image.png

DNF ってなあに? という方は、

DNFコマンド・リファレンス
https://docs.oracle.com/cd/F61410_01/software-management/DNFCommandRef.html

DNF
https://docs.oracle.com/cd/F61410_01/software-management/sfw-mgmt-YumV3DNFComparison.html#ol8-yum-appendix

Oracleによるソフトウェア・パッケージの配布方法
https://docs.oracle.com/cd/F61410_01/software-management/sfw-mgmt-HowOracleDistributesSoftwarePackages.html#how-oracle-distributes-software

使用可能なYumリポジトリ
https://docs.oracle.com/cd/F61410_01/software-management/sfw-mgmt-HowOracleDistributesSoftwarePackages.html#available-yum-repos

や他の情報をみて DNF になれてください。(rpmやyumしかわからないのは私も同じw)

インストールされているパッケージ一覧を知りたいときは

$ sudo dnf list --installed

これで、でざざっと、インストールされているパッケージが出てきたりします。

$ sudo dnf group list

でグループ一覧が見れたりもします。

最初に update や upgrade やるかは・・・お任せですが、やるなら最初にやりましょ。
(少なくとも何分か時間がかかりますので慌てているときはお勧めしませんがセキュリティ的にはやりましょう)

$ sudo dnf upgrade -y

VM上でWebサーバの設定

apache、php 設定

httpd がインストールしただけで動いていることはないですが、一応確認

$ curl localhost

image.png

はい、動いていません。
なので Apache起動させます。

Apache 起動設定

sudo systemctl start httpd.service で起動設定

$ sudo systemctl start httpd.service

Apache 自動起動設定

systemctl enable httpd.service 自動起動設定

$ sudo systemctl enable httpd.service

sudo vi /var/www/html/index.html で index.html ファイルを作りましょ。
中身は hi this is oracle linux とでもしておきますか。
vi エディタを :wq で書き込んで終了します。

$ sudo vi /var/www/html/index.html

image.png

Apache 起動確認

今度は動いているはず。

$ curl localhost

image.png

動いています。

php 設定

php でページ書いてみましょ。
vi 起動します。

$ sudo vi /var/www/html/check.php

check.php の中身

<head><meta charset="UTF-8">
<title>PHP Test</title>
</head>
<body>
<?php
    error_reporting(E_ALL);
    ini_set('display_errors', '1');
    echo "<b>Server Hostname</b> ".gethostname();
    echo "<br>";
    echo "<b>Server IP</b> ".$_SERVER['SERVER_ADDR'];
    echo "<br>";
    echo "<b>Accessing Hostname</b> ".gethostbyaddr($_SERVER['REMOTE_ADDR']);
    echo "<br>";
    echo "<b>Accessing IP</b> ".$_SERVER['REMOTE_ADDR'];
    echo phpinfo();
?>
</body>
</html>

:wq でエディタ終了します。

image.png

php 動作確認

$ curl localhost/check.php

$ curl localhost/check.php

image.png

ローカルからのチェックでは、ちゃんと動いていそう。

firewall 設定

インターネットからは Oracle Linux の firewall の設定をしないと、httpやhttps (port 80 や、 port 443)ではアクセスできないようなので、firewall の設定をして port 80, 443 にアクセスできるようにします。

設定
sudo firewall-cmd --add-service=http --zone=public --permanent
sudo firewall-cmd --add-service=https --zone=public --permanent
sudo firewall-cmd --reload

確認
sudo firewall-cmd --list-all --zone=public

$ sudo firewall-cmd --add-service=http --zone=public --permanent

image.png

$ sudo firewall-cmd --add-service=https --zone=public --permanent

image.png

$ sudo firewall-cmd --reload

image.png

$ sudo firewall-cmd --list-all --zone=public

image.png

selinux 設定

selinux も設定しましょ。
コマンドラインから

sudo grubby --update-kernel ALL --args selinux=0
sudo setsebool -P httpd_can_network_connect on
sudo setenforce 0

加えて

sudo vi /etc/selinux/config

で、ファイルを中身を
SELINUX=permissive
に書き換えて上書き、編集終了します。

設定

$ sudo grubby --update-kernel ALL --args selinux=0
$ sudo setsebool -P httpd_can_network_connect on

確認

sudo getsebool httpd_can_network_connect

実行結果
image.png

設定

$ sudo setenforce 0

確認

sudo getenforce

実行結果
image.png

Config ファイル 編集

$ sudo vi /etc/selinux/config

SELINUX=permissive
に書き換えます。

image.png

書き換えたら、
vi を :wq 等で/etc/selinux/config を上書きし終了。

VMが動作していることを外部から確認

Webブラウザでサーバにアクセス

instance-01 のパブリックIP にブラウザでアクセスします。
image.png

instance-02 のパブリックIP にブラウザでアクセスします。
image.png

instance-01 のパブリックIP/check.php にブラウザでアクセスします。

image.png

instance-02 のパブリックIP/check.php にブラウザでアクセスします。
image.png

どちらのサーバも期待通り動いているようです。

念のため、一度VMを再起動してみて、VMを再起動後もちゃんと httpd のプロセスが自動で起動することやfirewallやSELinuxの設定も問題ないか確認することをお勧めします。

次の記事

その4 Load Blancer 作成・設定 になります。

前の記事

その2 ネットワーク(VCN)とVM 作成

連動記事

OCI Full Stack Disaster Recovery (FSDR) が Load Balancer 対応になったので試してみた
https://qiita.com/Assemble_EX-80/items/92262c337290d57b670c

1
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
1
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?