前回記事:① ConoHa VPS でWebサーバーとDBサーバーを分離する
この記事でやること
今回やることは下記です
- 前回作ったConoha VPSをWebサーバーとして動くようにする
- そこにPHPの簡単なスクリプトを設置
- スクリプトから前回作成したDBサーバーのデータベースに接続して情報を取得
- フロントに表示
- 2つ目のWebサーバーを作る
前回作ったConoha VPSをWebサーバーとして動くようにする
必要なものをyumでざっと入れてしまいます。
まずApacheを入れ、firewallでhttpアクセスを受け付けるようにします。
# yum install httpd -y
# firewall-cmd --permanent --zone=public --add-service=http
この段階でApacheを起動してfirewallを再起動してみます。
# systemctl start httpd
# systemctl restart firewalld
そしてブラウザでhttp://133.130.118.38/
にアクセスしてみると、Apacheのデフォルトの画面が表示されます。
PHPのスクリプトから前回作成したDBサーバーのデータベースに接続して情報を取得してフロントに表示
Apacheを入れると、/var/www
というディレクトリが作成されます。この中のhtml
フォルダにphpのファイルを配置していきます。
まずこのフォルダに移動します。
# cd /var/www/html
今回簡易的にphpファイルでデータベース接続を行うので、phpと周辺で必要なツールをインストールします。
# yum install php -y
# yum install --enablerepo=remi,remi-php70 php-mysqlnd -y
ここで、私の環境だとブラウザからアクセスしたときにphpが動かなかったので、httpd.conf
に一部追記をしました。
# vi /etc/httpd/conf/httpd.conf
<FilesMatch \.php$>
SetHandler application/x-httpd-php
</FilesMatch>
phpファイルを作成します。
# vi index.php
<!DOCTYPE html>
<html>
<body>
<h1>Web Server:1</h1>
<?php
define('DB_DATABASE','3vptj_test');
define('DB_USERNAME','3vptj_test');
define('DB_PASSWORD','Password1234');
define('PDO_DSN','mysql:host=private.3vptj.tyo1.database-hosting.conoha.io;dbname=' . DB_DATABASE);
try{
//DB接続
$db = new PDO(PDO_DSN,DB_USERNAME,DB_PASSWORD);
$stmt = $db->query("SELECT * FROM fruit");
$result = $stmt->fetch(PDO::FETCH_NUM);
print($result[0]);
//エラーをスロー
$db->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION);
} catch(PDOException $e){
echo $e->getMessage();
exit;
}
?>
</body>
</html>
あまり詳しくこのコードの説明はしませんが、PDOとデータベースへの接続情報を使ってDBサーバー内のデータベースに接続、前回登録したfruitテーブルのappleを表示しているという感じです。
http://133.130.118.38
に接続すると、Web Server:1という文字の下に先程fruitテーブルに登録したappleが表示されます。
ちゃんとDBサーバーのデータベースから情報も引っ張ってこれています。
2つ目のWebサーバーを作る
それでは、これまで作ったものと同じ構成のWebサーバーを作成します。
同じ構成のVPSを作る必要があるので、Conohaに戻り、イメージを保存。そしてそのイメージを用いてVPSのコピーを作成します。
先程のVPS詳細画面に戻り、サーバーをシャットダウンして、イメージ保存ボタンをクリックします。
続いてサーバー追加
メニューから、作成したイメージをもとにVPSの作成を行います。(イメージが利用可能になるまで数分かかります)
今回はネームタグをtestVPS2
としました。
また、IPアドレスは133.130.110.112
が割り振られました。
新しく作ったVPSとDBサーバーとの接続は再度行わないといけないようです。前回の記事と同じ内容なので省略しますが、適宜行ってください。
あと、Apacheをサーバーの起動時に自動的に起動する設定にしていないのでsystemctl start httpd
も必要なはずです。
このあとロードバランサを入れて振り分け処理が行われていることを視覚的に判断するために、index.php
を少し変えておきましょう。
// <h1>Web Server:1</h1> これを
<h1>Web Server:2</h1> // こう書き換え
さっそくこのVPSに発行されたIPアドレスhttp://133.130.110.112/
にアクセスしてみると、下記のような画面が表示されます。
ここでもちゃんとDBサーバーのデータベースから情報も引っ張ってこれています。これでロードバランサを入れる実験の素地ができました。