0
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?

More than 1 year has passed since last update.

備忘録 LAMP環境構築 + Nagiosでの監視の実装

Last updated at Posted at 2022-10-21

Nagiosの設定は、まだ記載できていません。近日中に公開予定ですので、少しお待ちください。

経緯

Nagiosを利用したサーバー監視の初歩を学べる機会があったため、その際の備忘録として記載しています。
そのため、細かい手順など間違っている可能性もあります。

構築環境

開発環境名 バージョン
Linux Ubuntu,22.04LTS
Apache Apache/2.4.52 (Ubuntu)
MySQL 8.0.30-0
PHP PHP 8.1.2
Nagios

として構築を行う。
サーバー環境は、AWSで作る。

AWSの構築&設定

  1. AWSコンソールにログインする。

    https://aws.amazon.com/jp/

    アカウントを持ってない方を作成を!
    EC2インスタンスを起動させます。(東京リージョンで作成します。)
    EC2は下記の設定で作成することにしました。(無料利用枠で使えます。

    設定名 設定内容
    名前 web-server
    OS Ubuntu,22.04LTS
    AMI IDだと ami-03f4fa076d2981b45
    インスタンス t2.micro
    キーペア(RSA作成) web-server.pem
    VPC default
    セキュリティグループ名 web-server
    説明 web-server's setting
    セキュリティグループルール ssh(22),http(80)を許可
    ストレージ 1x8GiB gp2ルートvol.

    以上の設定が完了したら、インスタンスを起動させる。

  2. インスタンスのパブリックIPを確認して、ssh接続を行う。
    パブリックIPは、新スタンスの詳細の中に記載があります。
    先ほど、作成し、ダウンロードしたkeyの権限を変更します。(標準では、変更しないとssh接続ができません。)

       $ chmod web-server.pem
       $ ssh -i [Keyペアのパス] ubuntu@[インスタンスのパブリックIP]
    

    とりあえず、タイムゾーンがUTCなので、日本時間に変更しておく

       $ sudo su # root権限に
       $ timedatectl set-timezone Asia/Tokyo # TimeZoneをJSTに変更
    
    

Apacheのインストール

これが公式サイト

  1. Apacheインストール

       $ sudo apt install apache2 # 本体のインストール
       $ apachectl -v #バージョン確認
    

    バージョンが表示されればインストール問題なくされている。

  2. Apacheの自動起動設定を有効にする
    サーバーを立ち上げた際に、Apacheのプロセスが自動起動する様な設定を行う。

       $ sudo systemctl enable apache2.service # 自動起動を設定
       $ sudo systemctl status apache2 # 起動状況を確認
    

    状況確認のActiveのステータスが、active(running)になっていれば問題なく起動できている。
    また、http://[EC2のパブリックIP]/に接続すると、Apache2 Default Pageが表示される。

  3. VirtualHostの設定を行う
    VirtualHostは、1つのサーバーで複数のドメインを運用する機能である。
    今回は1つのドメインを想定しているが、今後の使用の可能性を考えて、念の為設定しておく。
    ホスト専用のディレクトリを作成し、その中にhtmlファイルなどを置く構造にしたいと思う。そのため、ホスト1つに対して、1つのディレクトリを持つようにする。
    まずは、ディレクトリ作成。

       $ mkdir /var/www/html/sample-page1 #sample-page1というディレクトリを作る
    

    作成した、ディレクトリ内でindex.htmlファイルを作成する。
    これが、webサイトにアクセスした際に、初めに表示されるページになる。
    $ sudo vi /var/www/html/sample-page1/index.html

    index.html
       <!DOCTYPE html>
       <html lang="ja">
       <head>
           <meta charset="UTF-8">
       </head>
       <body>
           <h1>こちらは、サンプルページ1です。</h1>
       </body>
       </html>
    
  4. VirtualHostの設定ファイルの作成
    作成したファイルとhost名を紐付ける作業が必要となる。それを行うため、設定ファイルを新規で作成する。
    作成は、/etc/apache2/sites-available/に行うのが一般的らしい。
    ちょっと気になったので、/etc/httpd/conf.d をよくみるが、パスが違う。なぜ?と思い調べることに、

    httpdはApache2と同じです。使用するOSによって異なります。たとえば、RHEL 6.2ではhttpdと呼ばれ、buntではApache2と呼ばれます。

    とのことらしい。OSによって呼び方が違うぽい。解決、設定を進める。

    /etc/apache2/sites-available/のディレクトリに移動し、vhost.confというファイルを作成する。(.confなら名前はなんでもOK!日本語はだめよ。)
    vi vhost.confで作成

    vhost.conf
        <VirtualHost *:80>
              DocumentRoot /var/www/html/sample-page1
              ServerName sample-page1.local
        </VirtualHost>
    

    DocumentRootには、先ほど作成したディレクトリのフルパスを設定。
    SeverNameには、好きなものを設定してください。上記の場合http://sample-page1.localと検索すると、index.htmlが表示されるサイトになります。

  5. 作成した設定ファイルのシンボリックリンクを作成する。
    シンボリックリンクを作成しないとうまく機能しなかった。

       $ a2ensite /etc/apache2/sites-available/vhost.conf
    

    成功すると、再起動してね。と言われるので、言われた通り再起動。
    $ systemctl reload apache2

  6. IPアドレスとドメインを紐づける。(クライアントのHostファイルで解決する。)
    本来で、あれば、作成したドメインの情報に基づいて行うのだが、今回は試験的な環境ということで、クライアントのhostsファイルに追加して、接続する方法をとる。
    本来の方法で、やるなら。AWSだったら、route53を使うことでできる。
    こちらは、無料枠の設定がなく、使ったら課金されるので注意が必要だ!

  7. クライアントPCのhostファイルに情報を追記
    クライアントのPC(ssh接続を行なっているPC)のHostsファイルに下記の情報を追加します。
    設定ファイルは下記の場所にある。(筆者はMac環境のため、Windowsのパスはネットで調べた情報です。)

      Windows: C:\windows\system32\drivers\etc\hosts
          Mac: /private/etc/hosts
    

    上記ファイル内に次の情報を追記

       [EC2のパブリックIP] sample-page1.local
    

    ファイルの変更を保存後、http://sample-page1.local に接続すると、「こちらは、サンプルページ1です。」が表示されれ正常に動作しています。
    これで、Apacheの設定は一通り完了!

MySQLのインストール

これがMySQLの公式サイト

  1. MySQLのインストール

       $ sudo apt-get install mysql-server # 本体のインストール
       $ mysql --version #バージョン確認
    

    バージョンが表示されればインストール問題なくされている。

  2. MySQLの自動起動設定を有効にする

       $ sudo systemctl enable mysql # 自動起動を設定
       $ sudo systemctl status mysql # 起動状況を確認
    

    状況確認のActiveのステータスが、active(running)になっていれば問題なく起動できている。

  3. データベースを作成する
    下記コマンドで、rootユーザーでMySQLにログイン

       $ sudo mysql -u root
    

    今回はテスト環境なので、ユーザーの追加は行わないことにした。
    とりあえず、この後導入する、PHPの導入確認などのため仮のデータベースを作成しておく。(内容は適当です笑)

       > CREATE DATABASE customer;
       > USE customer
       > CREATE TABLE company (number INT , name VARCHAR(50));
       > INSERT INTO company VALUES(1,"Sample Taro");
    

    データが追加されたか、確認する。

        mysql> select * from company;
        +--------+-------------+
        | number | name        |
        +--------+-------------+
        |      1 | Sample Taro |
        +--------+-------------+
        1 row in set (0.00 sec)
    

    しっかり、データがあるから問題なさそう。
    これで、MySQLの設定は完了!

PHPのインストール

これがPHPの公式サイト

  1. PHPのインストール

       $ sudo apt install php libapache2-mod-php # 本体のインストール
       $ php -v #バージョン確認
    

    バージョンが表示されればインストール問題なくされている。

  2. PHPの情報をブラウザから見れる様にする
    /var/www/html/sample-page1/に移動し、下記の内容のPHPファイルを作成する。
    sudo vi phpinfo.php

    phpinfo.php
        <?php
            phpinfo();
        ?>
    

    作成し、保存し。次のページにアクセスする。http://sample-page1.local/phpinfo.php
    正常に設定ができて入れば、phpの設定情報が表示される。

これによって、LAMP環境の構築が完了となる。
お疲れ様です!

次は、Nagiosの設定を行う。

Nagiosの設定は、まだ記載できていません。近日中に公開予定ですので、少しお待ちください。

0
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
0
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?