ウェブサイト検索

Arch Linux で LEMP または LAMP スタックを使用して「PHP Server Monitor」ツールをインストールする


PHP サーバー モニター は、PHP で書かれたオープンソースのウェブ フロントエンド監視ツールです。サーバー (IP、ドメイン) またはサービスが稼働しているかどうかを確認し、メール サービスや SMS 経由で通知を送信できます。監視対象のサービスまたはポートで問題が発生した場合。 HTTP ステータス コードを使用して Web サイトをチェックし、稼働時間と遅延の履歴グラフを表示し、2 つのレベルの認証 (管理者と一般ユーザー) を使用できます。

このチュートリアルでは、サーバーとして Apache または Web サーバーとして Nginx を使用して、Arch Linux サーバー環境に PHP サーバー モニター をインストールする方法を説明します。したがって、最適なインストールプロセスを選択できます。

PHPサーバーモニターの要件

他の Linux プラットフォーム用に PHP Server Monitor をインストールしてセットアップするための一般的な要件として、サーバーには次のパッケージがインストールされている必要があります。

  1. PHP 5.3.7+
  2. PHP パッケージ: cURL、MySQL
  3. MySQLデータベース
  4. Nginx または Apache Web サーバー

システム要求

Nginx を使用して PHP Server Monitor をインストールするには、次のチュートリアルをガイドとして使用し、Arch で LEMP スタックと仮想ホストをセットアップします。

  1. LEMP (Linux、Nginx、MySQL、PHP) を Arch Linux にインストールする
  2. Arch Linux で Nginx 仮想ホストを作成する

Apache を使用して PHP サーバー モニターをインストールするには、次のガイドを使用して Arch Linux に LAMP スタックをセットアップします。

  1. Arch Linux に LAMP (Linux、Apache、MySQL、PHP) をインストールする

ステップ 1: Nginx/Apache Web サーバーを構成する

1. 始める前に、セットアップで仮想ホスティングを使用している場合は、ドメインを指す有効な DNS エントリがあることを確認するか、そうでない場合に備えてローカルの hosts ファイルを使用する必要があります。 DNS サーバーがありません。このチュートリアルでは、 を介して偽のローカル ドメイン phpsrvmon.lan で構成された両方の Web サーバー (NginxApache) で仮想ホスティングを使用します。 /etc/hosts ファイル。

Nginx 仮想ホスト構成ファイルの作成

2. 新しい Nginx 仮想ホストを追加するには、phpsrvmon.conf を使用して /etc/nginx/sites-available/ に新しい構成ファイルを作成します。名前を付け、構成例として次のテンプレートを使用します。

sudo nano /etc/nginx/sites-available/phpsrvmon.conf

次のコードを phpsrvmon.conf ファイルに追加します。

server {
    listen 80;
    server_name phpsrvmon.lan;

    access_log /var/log/nginx/phpsrvmon.lan-access.log;
    error_log /var/log/nginx/phpsrvmon.lan-error.log;

                root /srv/www/phpsrvmon;

    location / {
    index index.php index.html index.htm;
                autoindex on;
}

location ~ \.php$ {
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
}

3. 安全な HTTP プロトコルを通じて PHP Sever Monitor にアクセスする場合は、SSL と同等の構成ファイルを作成します。

sudo nano /etc/nginx/sites-available/phpsrvmon-ssl.conf

次のコードを phpsrvmon-ssl.conf ファイルに追加します。

server {
    listen 443 ssl;
    server_name phpsrvmon.lan;

       root /srv/www/phpsrvmon;
       ssl_certificate     /etc/nginx/ssl/nginx.crt;
       ssl_certificate_key  /etc/nginx/ssl/nginx.key;
       ssl_session_cache    shared:SSL:1m;
       ssl_session_timeout  5m;
       ssl_ciphers  HIGH:!aNULL:!MD5;
       ssl_prefer_server_ciphers  on;

    access_log /var/log/nginx/phpsrvmon.lan-ssl_access.log;
    error_log /var/log/nginx/phpsrvmon.lan-ssl_error.log;

    location / {
    index index.php index.html index.htm;
                autoindex on;
 }

    location ~ \.php$ {
        fastcgi_pass unix:/run/php-fpm/php-fpm.sock;
        fastcgi_index index.php;
        include fastcgi.conf;
    }
}

4. Nginx conf ファイルを編集した後、ドキュメント ルート パスを作成します。ここで /srv/www/phpsrvmon/ に変更した場合は、 を使用して両方の仮想ホストをアクティブにします。 >n2ensite ユーティリティを実行し、Nginx を再起動して変更を反映します。

sudo mkdir -p /srv/www/phpsrvmon/
sudo n2ensite phpsrvmon
sudo n2ensite phpsrvmon-ssl
sudo systemctl restart nginx

仮想ホストに新しい SSL 証明書が必要な場合は、ドメイン名を指定して nginx_gen_ssl コマンドを使用して証明書を生成し、それに応じて phpsrvmon-ssl.conf を変更します。

Apache 仮想ホスト構成ファイルの作成

5. Apache を Web サーバーとして使用する場合は、phpsrvmon を使用して /etc/httpd/conf/sites-available/ に新しい仮想ホスト構成ファイルを作成します。 conf 名を指定し、次のファイル定義をテンプレートとして使用します。

sudo nano /etc/httpd/conf/sites-available/phpsrvmon.conf

次のコードを phpsrvmon.conf ファイルに追加します。

<VirtualHost *:80>
                DocumentRoot "/srv/www/phpsrvmon"
                ServerName phpsrvmon.lan
                ServerAdmin [email 
                ErrorLog "/var/log/httpd/phpsrvmon-error_log"
                TransferLog "/var/log/httpd/phpsrvmon-access_log"

<Directory />
    Options +Indexes
    AllowOverride All
    Order deny,allow
    Allow from all
Require all granted
</Directory>
</VirtualHost>

6. HTTPS プロトコルで PHP サーバー モニターにアクセスする必要がある場合は、次のステートメントを使用して新しい仮想ホスト SSL 構成ファイルを作成します。

sudo nano /etc/httpd/conf/sites-available/phpsrvmon-ssl.conf

次のコード全体を phpsrvmon-ssl.conf ファイルに追加します。

<VirtualHost *:443>
                ServerName phpsrvmon.lan
                DocumentRoot "/srv/www/phpsrvmon"
                ServerAdmin [email 
                ErrorLog "/var/log/httpd/phpsrvmon.lan-error_log"
                TransferLog "/var/log/httpd/phpsrvmon.lan-access_log"

SSLEngine on
SSLCertificateFile "/etc/httpd/conf/ssl/phpsrvmon.lan.crt"
SSLCertificateKeyFile "/etc/httpd/conf/ssl/phpsrvmon.lan.key"

<FilesMatch "\.(cgi|shtml|phtml|php)$">
    SSLOptions +StdEnvVars
</FilesMatch>

BrowserMatch "MSIE [2-5]" \
         nokeepalive ssl-unclean-shutdown \
         downgrade-1.0 force-response-1.0
CustomLog "/var/log/httpd/ssl_request_log" \
          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

<Directory />
    Options +Indexes
    AllowOverride All
    Order deny,allow
    Allow from all
Require all granted
</Directory>
</VirtualHost>

7. Nginx の場合と同じ手順を使用して、ドキュメント ルート ディレクトリを作成します。Web ファイルの提供パスが変更された場合に備えて、a2ensite コマンドを使用して Apache 仮想ホストをアクティブ化し、デーモンを再起動します。変更を適用します。

sudo mkdir -p /srv/www/phpsrvmon/
sudo a2ensite phpsrvmon
sudo a2ensite phpsrvmon-ssl
sudo systemctl restart httpd

この仮想ホストの新しい SSL 証明書とキーを生成するには、apache_gen_ssl ユーティリティを使用し、証明書名にドメイン名を追加して、/etc/httpd/conf/sites-available/phpsrvmon-ssl.conf を変更します。 ファイルを作成し、古い SSL 証明書とキーのパスと名前を新しいものに置き換えます。

ステップ 2: PHP 構成を編集する

8. 一部のインストール エラーを回避するために、PHP サーバー モニターはシステム要件を確認するときに php.ini ファイルを開いて次の調整を行います。

sudo nano /etc/php/php.ini

Nginx/Apache ドキュメント ルート パスが変更されている場合 (デフォルトは /srv/http/)、[Ctrl+w] を使用して open_basedir を見つけます。ステートメントを作成し、先頭にコロン「 : 」を付けて新しいパスを追加します。この場合、新しいパスは /srv/www/ です。次の例のようになります。

open_basedir = /srv/http/:/home/:/tmp/:/usr/share/pear/:/usr/share/webapps/:/etc/webapps/:/srv/www/

PHP pdo、mysqli、curl 拡張機能を検索し、コメントを解除して (先頭からセミコロンを削除して) 有効にします。

extension=curl.so
extension=mysqli.so
extension=pdo_mysql.so

タイムゾーンを見つけて、このページを使用して現地時間を設定します。

date.timezone = Continent/City

9. すべての変更を行った後、サービスを再起動して変更を適用します。

sudo systemctl restart php-fpm
sudo systemctl restart nginx
sudo systemctl restart httpd

ステップ 3: PHP サーバー・モニター MySQL データベースを作成する

10. PHP Server Monitor が情報を保存するために必要なデータベースを作成するには、MySQL/MariaDB データベースにログインし、次のコマンドを使用して新しいデータベースを作成します (データベース、ユーザー、パスワードを任意の認証情報に置き換えます)。

mysql -u root -p

MariaDB > create database phpsrvmon;
MariaDB > create user phpsrvmon_user@localhost identified by "user_password";
MariaDB > grant all privileges on phpsrvmon.* to phpsrvmon_user@localhost;
MariaDB > flush privileges;
MariaDB > quit

システムに PhpMyAdmin がインストールされている場合は、Web インターフェイスから MySQL/MariaDB にアクセスして、PHP Server Monitor データベースを作成できます。

ステップ 4: PHP サーバーモニターをインストールする

11. PHP サーバー モニター ツールのダウンロードに進む前に、wget コマンドがインストールされていることを確認してください。

sudo pacman -S wget

12. 最新の PHP Server Monitor バージョンを取得するには、次のリンクに移動して tar.gz アーカイブ ファイルをダウンロードするか、以下に提供されている公式 Git ダウンロード リンクを使用します。

  1. http://www.phpservermonitor.org/download/
  2. https://github.com/phpservermon/phpservermon

あるいは、次の wget コマンドを使用して直接ダウンロードすることもできます。

wget http://downloads.sourceforge.net/project/phpservermon/phpservermon/PHP%20Server%20Monitor%20v3.0.1/phpservermon-v3.0.1.tar.gz

13. 最新バージョンをダウンロードした後、tar コマンドを使用してそれを抽出し、次のコマンドを使用して抽出されたすべてのコンテンツを Web サーバーのドキュメント ルート パスにコピーします。

tar xfvz phpservermon-v3.0.1.tar.gz
sudo cp -r phpservermon/* /srv/www/phpsrvmon/

14. 次に、ブラウザを開いてドメイン名に移動し (このチュートリアルで説明されているように仮想ホストを使用する場合は、サーバーの IP アドレスを使用します)、挨拶ページで [Let's go] ボタンを押します。

15.次の画面で、MySQL データベース情報を入力し、設定を保存をクリックします。

16. 設定ファイルを書き込めなかったというエラーが表示された場合は、次のコマンドを使用して書き込み可能な confing.php ファイルを作成し、I を押します。設定を保存しました。

su -c “> /srv/www/phpsrvmon/config.php”
sudo chmod 777 /srv/www/phpsrvmon/config.php

17. 設定を保存した後、資格情報を選択して PHP Server Monitor の管理ユーザーを作成し、インストール ボタンをクリックします。

18. インストール プロセスが完了したら、[モニターに移動] ボタンをクリックすると、ログイン ページにリダイレクトされます。資格情報を使用してログインすると、デフォルトの PHP サーバー モニター ページが表示されます。また、PHP Server Monitor の config.php ファイルへの変更を元に戻します。

sudo chmod 754 /srv/www/phpsrvmon/config.php

19. 監視用の新しい Web サイトを追加するには、[サーバー] -> [新規追加] に移動し、必須フィールドにサーバー設定を入力して、[] をクリックします。 > 保存ボタン。

20. すべてのサーバーとサービスで監視プロセスを開始するには、[更新] ボタンをクリックすると、デフォルトのホームページにリダイレクトされ、Web サイト/サービスのステータスが表示されます。

21. PHP Server Monitor が定期的にサーバー/サービスのステータスを自動的にチェックするには、システムに Cron ジョブ スケジューラをインストールし、監視時間を追加する必要があります。 cron ファイル内のピリオドエントリ。

sudo pacman -S cronie
sudo systemctl start cronie
sudo systemctl enable cronie

22. Web サイトを 5 分ごとにチェックする新しいエントリを cron ファイルに追加するには、sudo crontab –e コマンド を使用するか、< にあるルート cron ファイルを手動で編集することをお勧めします。 b>/var/spool/cron/ ディレクトリ。PHP Server Monitor のインストール ディレクトリと一致するようにパスを調整します。すべての crontab エントリを一覧表示するには、sudo crontab -l コマンド ラインを使用します。

sudo nano /var/spool/cron/root

次のエントリを追加します。それに応じて期間とインストール パスを調整します。

*/5 * * * * /usr/bin/php   /srv/www/phpsrvmon/cron/status.cron.php

結論

PHP Server Monitor は、NagiosCactiZabbix などの他の監視サービスほど複雑ではありませんが、リソースが非常に少ない傾向があります。監視対象の Web サイトやサービスが技術的な問題に遭遇したりダウンしたりした場合に備えて、膨大な SMS ゲートウェイ リストを通じて電子メールやテキスト SMS を送信するように設定することで、監視プラットフォームとしての役割を果たすことができます。

ホームページ: PHP サーバー モニター