Ubuntu 20.04에서 PhpMyAdmin으로 LEMP 스택을 설치하는 방법


LEMP가 무엇인지 모르는 분들을 위해 Linux, Nginx (EngineX로 발음), MariaDB 및 PHP와 같은 소프트웨어 패키지의 조합입니다.

테스트 목적으로 또는 실제 프로덕션 환경에서 LEMP를 사용하여 Laravel 또는 Yii와 같은 PHP 프레임 워크 또는 WordPress, Drupal 또는 Joomla와 같은 콘텐츠 관리 시스템을 사용하여 웹 애플리케이션을 배포 할 수 있습니다.

LAMP와 LEMP의 차이점이 무엇인지 궁금 할 것입니다. 음, 유일한 차이점은 포함 된 웹 서버 인 Apache (LAMP)와 Nginx (LEMP)입니다. 두 웹 서버 모두 매우 훌륭하며 Apache가 가장 자주 사용되는 반면 Nginx는 어떤 식 으로든 다시 다운되지 않습니다.

일반적으로 LEMP 스택과 함께 설치되는 널리 사용되는 또 다른 응용 프로그램은 PhpMyAdmin입니다. 웹 브라우저에서 MySQL/MariaDB 데이터베이스 서버를 관리하기위한 PHP 웹 기반 도구입니다.

Ubuntu 20.04에 대한 LAMP 설정을 찾고 있다면 Ubuntu 20.04에 대한 LAMP 설정 가이드를 읽어야합니다.

  1. Ubuntu 20.04 Server Installation Guide

이 기사에서는 Ubuntu 20.04 서버에서 PhpMyAdmin을 사용하여 LEMP 스택을 설치하고 구성하는 방법을 배웁니다.

1 단계 : Ubuntu 20.04에 Nginx 설치

1. Nginx는 너무 많은 서버 리소스를 사용하지 않고 많은 동시 연결을 서버에 제공하도록 설계된 빠른 최신 웹 서버입니다. 이것이 기업 환경에서 종종 선호되는 이유입니다.

NGINX는 일반적으로로드 밸런서 및 웹 콘텐츠 캐시로도 사용됩니다. "이름 기반 및 IP 기반 가상 서버 (Apache의 가상 호스트와 유사 함)를 지원합니다.

다음 명령을 실행하여 Ubuntu 20.04 데스크톱 또는 서버에 Nginx를 설치할 수 있습니다.

$ sudo apt update
$ sudo apt install nginx

Nginx 구성 파일은/etc/nginx 디렉토리에 저장되며 기본 구성 파일은 /etc/nginx/nginx.conf입니다. "중요한 것은 웹 파일을 저장하는 기본 문서 루트는/usr/share/nginx/html /입니다. 그러나 웹 사이트 또는 응용 프로그램의 서버 블록 구성 파일에서 구성해야하는 표준/var/www/html을 사용할 수 있습니다.

2. Ubuntu 패키지 설치 프로그램은 systemd를 트리거하여 Nginx 서비스를 시작하고 서버가 재부팅 될 때마다 자동으로 시작되도록합니다. 다음 systemctl 명령을 사용하여 서비스가 실행 중이고 활성화되었는지 확인합니다.

$ sudo systemctl status nginx 
$ sudo systemctl is-enabled nginx

3. 이제 서버 IP 주소를 사용하여 브라우저를 통해 Nginx 페이지를 호출하여 Nginx 설치가 성공했는지 확인할 차례입니다.

http://SERVER_IP

서버 IP 주소를 모르면 그림과 같이 IP 명령어를 사용하여 찾을 수 있습니다.

$ ip addr show

NGINX 기본 웹 페이지가 다음 스크린 샷과 같이로드되어 올바른 설치 및 작동을 확인해야합니다.

2 단계 : Ubuntu 20.04에 MariaDB 데이터베이스 설치

4. MariaDB는 Oracle 인수 이후 MySQL의 커뮤니티 포크로 설계된 비교적 새로운 관계형 데이터베이스 관리 시스템입니다.

MariaDB의 설치는 간단하며 다음과 같은 명령으로 시작할 수 있습니다.

$ sudo apt install mariadb-server mariadb-client

5. MariaDB 서비스도 자동으로 시작되고 시스템 부팅시 항상 시작되도록 활성화되며 다음 명령을 사용하여이를 확인할 수 있습니다.

$ sudo systemctl status mariadb
$ sudo systemctl is-enabled mariadb

6. MariaDB 보안을 향상 시키려면 mysql_secure_installation 명령을 실행하여 몇 가지 기본적이지만 중요한 구성 옵션을 제공 할 수 있습니다.

$ sudo mysql_secure_installation

그런 다음 데이터베이스 루트 (또는 관리자) 사용자의 비밀번호를 설정하는 옵션을 선택하고 프롬프트에 따라 질문을주의 깊게 읽으십시오. 데이터베이스 서버를 보호하려면 스크린 샷에 표시된 질문에 답하십시오.

  • Enter current password for root (enter for none): Enter
  • Set a root password? [Y/n] y
  • Remove anonymous users? [Y/n] y
  • Disallow root login remotely? [Y/n] y
  • Remove test database and access to it? [Y/n] y
  • Reload privilege tables now? [Y/n] y

7. 데이터베이스 작업을 생성, 관리 및 수행하려면 -u 플래그와 함께 mysql 쉘 명령을 사용하여 데이터베이스 사용자 이름을 지정하고 -p 를 사용하여 사용자 암호를 제공해야합니다. ".

루트 사용자로 연결하려면 sudo 명령을 사용하십시오 ( -p 플래그 없이도). 그렇지 않으면 다음 스크린 샷에 강조 표시된 오류가 표시됩니다.

$ mysql -u root -p
$ sudo mysql -u root

3 단계 : Ubuntu 20.04에 PHP 설치

8. PHP는 웹 사이트와 웹 애플리케이션을 구축하는 데 널리 사용되는 오픈 소스의 유연하고 동적 인 스크립팅 언어입니다. 다양한 프로그래밍 기술을 지원합니다. 중요한 것은 PHP 커뮤니티가 수많은 라이브러리, 프레임 워크 및 기타 유용한 구성 요소로 구성된 크고 다양하다는 것입니다.

NGINX는 FPM (FastCGI Process Manager) 또는 PHP-FPM을 사용하여 PHP 스크립트를 처리합니다. PHP-FPM은 널리 사용되는 대체 PHP FastCGI 구현으로 많은 추가 기능과 함께 제공되며 트래픽이 많은 사이트/웹 응용 프로그램을 지원하는 데 사용됩니다.

PHP 및 PHP-FPM을 설치하려면 다음 명령을 실행하여 필요한 추가 패키지도 설치합니다.

$ sudo apt install php php-mysql php-fpm

PHP 7.4는 Ubuntu 20.04에서 PHP의 기본 버전이므로 PHP 구성 파일은 /etc/php/7.4/에 있고 PHP-FPM 구성 파일은 /etc/php/7.4/fpm에 저장됩니다.

9. 다음으로 php7.4-fpm 서비스가 실행 중인지 확인하고 다음 명령으로 활성화되었는지 확인합니다.

$ sudo systemctl status php7.4-fpm
$ sudo systemctl is-enabled php7.4-fpm

4 단계 : PHP-FPM과 함께 작동하도록 Nginx 구성

10. 이제 클라이언트 요청을 PHP-FPM에 프록시하도록 NGINX를 구성해야합니다. 기본적으로 /etc/php/7.4/fpm/pool.d/www의 listen 매개 변수에 정의 된대로 UNIX 소켓에서 수신하도록 구성됩니다. .conf 기본 풀 구성 파일.

$ sudo vi /etc/php/7.4/fpm/pool.d/www.conf 

11. 기본 서버 블록 구성 파일 (/ etc/nginx/sites-available/default)에서 다음 스크린 샷에 표시된 것과 같이 PHP 요청을 처리하기위한 위치 지시문의 주석 처리를 제거합니다.

$ sudo vi /etc/nginx/sites-available/default

파일을 저장하고 종료하십시오.

12. 그런 다음 NGINX 구성 구문의 정확성을 테스트합니다. 정상이면 Nginx 서비스를 다시 시작하여 새 변경 사항을 적용합니다.

$ sudo nginx -t
$ sudo systemctl restart nginx

13. 이제 NGINX가 PHP 요청을 처리하기 위해 PHP-FPM과 함께 작동하는지 테스트합니다. 문서 루트 디렉토리 아래에 간단한 info.php 페이지를 만듭니다.

$ echo "<?php phpinfo(); ?>" | sudo tee /var/www/html/info.php

14. 브라우저에서 다음 주소를 사용하여 탐색하십시오. 다음 스크린 샷에 표시된대로 PHP 구성 페이지가로드되어야합니다.

http://SERVER_IP/info.php

5 단계 : Ubuntu 20.04에 PhpMyAdmin 설치

15. PhpMyAdmin은 웹 브라우저를 통해 MySQL/MariaDB 데이터베이스 서버를 관리하기 위해 특별히 제작 된 무료 오픈 소스 웹 기반 PHP 애플리케이션입니다. 직관적 인 그래픽 인터페이스를 제공하고 데이터베이스 관리 작업을위한 광범위한 공통 기능을 지원합니다.

$ sudo apt install phpmyadmin

16. 패키지 설치 중에 PhpMyAdmin 패키지의 여러 측면을 구성하라는 메시지가 표시됩니다. 먼저 기본 웹 서버를 선택하라는 메시지가 표시됩니다. "NGINX가 제공된 목록에 없으므로 Esc 키를 누르십시오.

17. 다음으로 PhpMyAdmin은 작업 할 데이터베이스가 필요합니다. 이 패키지 구성 프롬프트에서 를 선택하여 dbconfig-common 패키지로 PhpMyAdmin 용 데이터베이스를 구성합니다.

18. 다음 프롬프트에서 PhpMyAdmin이 MariaDB 데이터베이스에 등록 할 암호를 제공해야합니다. 보안 암호를 입력하고 Enter를 클릭하십시오.

6 단계 : PhpMyAdmin 사이트를 제공하도록 NGINX 구성

19. NGINX가/usr/share/phpmyadmin에있는 PhpMyAdmin 사이트를 제공 할 수 있도록하려면 문서 루트 아래에이 디렉토리에 대한 심볼릭 링크를 만든 다음 다음과 같이 PHPMyAdmin 디렉토리에 올바른 권한과 소유권을 설정합니다.

$ sudo ln -s  /usr/share/phpmyadmin /var/www/html/phpmyadmin
$ sudo chmod 775 -R /usr/share/phpmyadmin/
$ sudo chown root:www-data -R /usr/share/phpmyadmin/

20. 또한 기본 서버 블록 구성 (/ etc/nginx/sites-available/default) 파일의 index 지시문에 다음 스크린 샷과 같이 index.php가 포함되어 있는지 확인합니다.

21. 다음으로 Nginx 서비스를 다시 시작하여 위의 변경 사항을 적용합니다.

$ sudo systemctl restart nginx

22. 이제 다음 주소를 사용하여 브라우저에서 PhpMyAdmin 사이트에 액세스합니다.

http://SERVER_IP/phpmyadmin

로그인 페이지에서 PHPMyAdmin 사용자 이름과 비밀번호로 인증합니다. MariaDB 데이터베이스가 설치된 로컬 호스트에서 PHPMyAdmin에 액세스하지 않는 한 원격 루트 사용자 로그인은 비활성화되어 있습니다. 루트 액세스는 작동하지 않습니다.

마지막으로, PhpMyAdmin 웹 인터페이스 보안을위한 4 가지 유용한 팁 가이드를 사용하여 PhpMyAdmin 설치를 보호하십시오.

결론

이제 LEMP 설정이 완료되었으며 웹 애플리케이션 빌드를 시작하거나 방금 설치 한 Nginx 및 MariaDB 서비스로 간단히 플레이 할 수 있습니다. "이들은 널리 사용되며 시스템 관리자에게 더 많은 지식을 얻는 것이 좋습니다.