웹사이트 검색

Arch Linux에서 LEMP 또는 LAMP 스택을 사용하여 "PHP 서버 모니터" 도구 설치


PHP 서버 모니터는 PHP로 작성된 오픈 소스 웹 프런트엔드 모니터링 도구로, 서버(IP, 도메인) 또는 서비스가 실행 중인지 확인하고 메일 서비스나 SMS를 통해 알림을 보낼 수 있습니다. 모니터링되는 서비스나 포트에 문제가 발생한 경우. HTTP 상태 코드를 사용하여 웹 사이트를 확인하고 가동 시간 및 대기 시간의 기록 그래프를 표시할 수 있으며 두 가지 수준의 인증(관리자 및 일반 사용자)을 사용할 수 있습니다.

이 튜토리얼에서는 Apache를 서버로 사용하거나 Nginx 웹 서버로 사용하여 Arch Linux 서버 환경에 PHP 서버 모니터를 설치할 수 있는 방법을 제시합니다. 따라서 귀하에게 가장 적합한 설치 프로세스를 선택할 수 있습니다.

PHP 서버 모니터 요구 사항

다른 Linux 플랫폼용 PHP Server Monitor를 설치하고 설정하기 위한 일반 요구 사항으로 서버에 다음 패키지가 설치되어 있어야 합니다.

  1. PHP 5.3.7+
  2. PHP 패키지: cURL, MySQL
  3. MySQL 데이터베이스
  4. Nginx 또는 Apache 웹 서버

시스템 요구 사항

Nginx와 함께 PHP 서버 모니터를 설치하려면 다음 튜토리얼을 가이드로 사용하여 Arch에서 LEMP 스택 및 가상 호스트를 설정하세요.

  1. Arch Linux에 LEMP(Linux, Nginx, MySQL, PHP) 설치
  2. Arch Linux에서 Nginx 가상 호스트 만들기

Apache와 함께 PHP Server Monitor를 설치하려면 다음 가이드를 사용하여 Arch Linux에서 LAMP 스택을 설정하세요.

  1. Arch Linux에 LAMP(Linux, Apache, MySQL, PHP) 설치

1단계: Nginx/Apache 웹 서버 구성

1. 시작하기 전에 설정에서 가상 호스팅을 사용하는 경우 도메인을 가리키는 유효한 DNS 항목이 있는지 확인하거나 그렇지 않은 경우 로컬 호스트 파일을 사용해야 합니다. DNS 서버가 없습니다. 이 튜토리얼에서는 를 통해 phpsrvmon.lan이라는 로컬 도메인 가짜로 구성된 웹 서버(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를 웹 서버로 사용하는 경우 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와 동일한 절차를 사용하여 문서 루트 디렉터리를 만듭니다. 웹 파일 제공 경로가 변경된 경우 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 및 컬 확장을 검색하고 활성화합니다(앞에서 세미콜론 제거).

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이 설치되어 있으면 웹 인터페이스에서 MySQL/MariaDB에 액세스하여 PHP 서버 모니터 데이터베이스를 생성할 수 있습니다.

4단계: PHP 서버 모니터 설치

11. PHP Server Monitor 도구 다운로드를 진행하기 전에 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 명령으로 압축을 풀고 다음 명령을 사용하여 추출된 모든 콘텐츠를 웹 서버 문서 루트 경로에 복사합니다.

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 서버 모니터 config.php 파일의 변경 사항을 되돌립니다.

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

19. 모니터링을 위해 새 웹사이트를 추가하려면 서버 -> 새로 추가로 이동하여 필수 필드에 서버 설정을 입력하고 저장 버튼을 클릭하세요.

20. 모든 서버 및 서비스에 대한 모니터링 프로세스를 시작하려면 업데이트 버튼을 누르세요. 그러면 웹사이트/서비스 상태가 표시되는 기본 홈 페이지로 리디렉션됩니다.

21. PHP 서버 모니터가 정기적으로 서버/서비스 상태를 자동으로 확인하려면 시스템에 Cron 작업 스케줄러를 설치하고 모니터링 시간을 추가해야 합니다. cron 파일의 기간 항목입니다.

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

22. 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 서버 모니터는 Nagios, Cacti 또는 Zabbix와 같은 다른 모니터링 서비스만큼 복잡해지지는 않지만 리소스가 매우 적은 경향이 있습니다. 모니터링되는 웹 사이트 및 서비스에 기술적 문제가 발생하거나 다운되는 경우 방대한 SMS 게이트웨이 목록을 통해 이메일 또는 문자 SMS를 보내도록 구성하여 모니터링 플랫폼으로서의 작업을 수행할 수 있습니다.

홈페이지: PHP 서버 모니터