【お知らせ】この記事はこちらの記事と連動しております。
OCI Full Stack Disaster Recovery (FSDR) が Load Balancer 対応になったので試してみた
こちらの記事を試すための 事前準備 の方法をステップバイステップで記述したものであり、こちらで利用しているLoad Balancerと、Oracle Linux 9の構成を最速で構成する手順 です。
この一連の記事に沿ってリソースを作成するだけでも、OCIで Load Balancer と Oracle Linux 9 のWebサーバを構築して、ロードバランシングを体験することができます。
この記事は、その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
instance-02 のコンソール
[opc@instance-02 ~]$ uname -a; cat /etc/system-release
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
これで instance-01 への apache と php のインストール完了です。
instance-02 でも忘れずに同じように apache と php インストールしてください。
完了したら次のセクション VM上でWebサーバの設定 に進みます。
その他 DNF コマンド
dnf module list でモジュール一覧が見れます。
$ sudo dnf module list
DNF ってなあに? という方は、
DNFコマンド・リファレンス
https://docs.oracle.com/cd/F61410_01/software-management/DNFCommandRef.html
Oracleによるソフトウェア・パッケージの配布方法
https://docs.oracle.com/cd/F61410_01/software-management/sfw-mgmt-HowOracleDistributesSoftwarePackages.html#how-oracle-distributes-software
や他の情報をみて 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
はい、動いていません。
なので 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
Apache 起動確認
今度は動いているはず。
$ curl localhost
動いています。
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 でエディタ終了します。
php 動作確認
$ curl localhost/check.php
$ curl localhost/check.php
ローカルからのチェックでは、ちゃんと動いていそう。
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
$ sudo firewall-cmd --add-service=https --zone=public --permanent
$ sudo firewall-cmd --reload
$ sudo firewall-cmd --list-all --zone=public
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
設定
$ sudo setenforce 0
確認
sudo getenforce
Config ファイル 編集
$ sudo vi /etc/selinux/config
SELINUX=permissive
に書き換えます。
書き換えたら、
vi を :wq 等で/etc/selinux/config を上書きし終了。
VMが動作していることを外部から確認
Webブラウザでサーバにアクセス
instance-01 のパブリックIP にブラウザでアクセスします。
instance-02 のパブリックIP にブラウザでアクセスします。
instance-01 のパブリックIP/check.php にブラウザでアクセスします。
instance-02 のパブリックIP/check.php にブラウザでアクセスします。
どちらのサーバも期待通り動いているようです。
念のため、一度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