알지 못하는 분들을 위해 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 설정 안내서를 읽어보아야 합니다.
전제 조건:
이 글에서는 LEMP 스택을 PhpMyAdmin과 함께 Ubuntu 20.04 서버에 설치하고 구성하는 방법을 배우게 될 것입니다.
단계 1: Ubuntu 20.04에 Nginx 설치
1. Nginx는 많은 동시 연결을 처리하면서도 많은 서버 자원을 소비하지 않도록 설계된 빠르고 현대적인 웹 서버입니다. 이것이 기업 환경에서 선호되는 선택지가 되는 이유입니다.
NGINX는 또한 로드 밸런서 및 웹 콘텐츠 캐시로도 흔히 사용됩니다. Apache의 가상 호스트에 해당하는 이름 기반 및 IP 기반 가상 서버를 지원합니다.
다음 명령을 실행하여 Nginx를 Ubuntu 20.04 데스크톱이나 서버에 설치할 수 있습니다.
$ sudo apt update $ sudo apt install nginx

Nginx 구성 파일은 /etc/nginx 디렉토리에 저장되며, 주 구성 파일은 /etc/nginx/nginx.conf입니다. 중요한 점은 웹 파일을 저장하는 기본 문서 루트가 /usr/share/nginx/html/인 것입니다. 그러나 웹 사이트나 애플리케이션의 서버 블록 구성 파일에서 구성할 수 있는 표준 /var/www/html을 사용할 수 있습니다.
2. Ubuntu 패키지 설치 프로그램은 Nginx 서비스를 시작하고 서버가 다시 부팅될 때마다 자동으로 시작하도록 systemd를 트리거합니다. 서비스가 실행 중이고 활성화되어 있는지 확인하려면 다음 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
그런 다음 데이터베이스 루트(또는 관리자) 사용자의 암호를 설정하는 옵션을 선택하고 프롬프트에 따라 질문에 주의 깊게 응답하십시오. 데이터베이스 서버를 보호하려면 스크린샷에 표시된대로 질문에 응답하십시오.
- 루트의 현재 암호 입력(없으면 빈칸으로): 입력
- 루트 암호 설정? [Y/n]
y
- 익명 사용자 제거? [Y/n]
y
- 원격으로 루트 로그인 비허용? [Y/n]
y
- 테스트 데이터베이스 및 액세스 제거? [Y/n]
y
- 권한 테이블 다시로드? [Y/n]
y

7. 데이터베이스를 생성, 관리 및 작업하려면 -u
플래그로 데이터베이스 사용자를 지정하고 -p
를 사용하여 사용자의 암호를 제공하는 mysql 셸 명령이 필요합니다.
root 사용자로 연결하려면 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 구성 파일은 /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: NGINX를 PHP-FPM과 함께 작동하도록 구성하기
10. 이제 NGINX를 PHP-FPM으로 클라이언트 요청을 프록시하도록 구성해야 합니다. 기본적으로 UNIX 소켓에서 듣도록 구성된 /etc/php/7.4/fpm/pool.d/www.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-FPM과 함께 작동하여 PHP 요청을 처리할 수 있는지 테스트합니다. 문서 루트 디렉토리 아래에 간단한 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 패키지의 여러 측면을 구성하라는 메시지가 표시됩니다. 먼저 실행할 기본 웹 서버를 선택하라는 메시지가 표시됩니다. 목록에 제공된 것에 Esc를 누릅니다. 왜냐하면 NGINX가 제공된 목록에 없기 때문입니다.

17. 다음으로, PhpMyAdmin은 작업할 데이터베이스가 필요합니다. 이 패키지 구성 프롬프트에서 dbconfig-common package를 사용하여 PhpMyAdmin을 위한 데이터베이스를 구성하려면 예
를 선택하십시오.

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

단계 6: NGINX를 사용하여 PhpMyAdmin 사이트 제공 구성
19. NGINX가 위치한 PhpMyAdmin 사이트를 제공하도록 하려면 /usr/share/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.php가 포함되어 있는지 확인하십시오. 다음 스크린샷과 같이.

21. 다음으로, 위의 변경 사항을 적용하기 위해 Nginx 서비스를 한 번 더 다시 시작하십시오.
$ sudo systemctl restart nginx
22. 이제 브라우저에서 다음 주소를 사용하여 PhpMyAdmin 사이트에 액세스하십시오.
http://SERVER_IP/phpmyadmin
로그인 페이지에서 PHPMyAdmin 사용자 이름과 암호로 인증하십시오. MariaDB 데이터베이스가 설치된 localhost에서 PHPMyAdmin에 액세스하는 경우를 제외하고는 원격 루트 사용자 로그인이 비활성화되어 있으므로 루트 액세스가 작동하지 않습니다.


마지막으로 PhpMyAdmin 설치를 보호하는 방법을 알아보세요: PhpMyAdmin 웹 인터페이스를 보호하는 4가지 유용한 팁.
결론
LEMP 설정이 이제 완료되었으며 방금 설치한 Nginx 및 MariaDB 서비스를 사용하여 웹 애플리케이션을 구축하거나 간단히 놀 수 있습니다. 이들은 널리 사용되며 시스템 관리자에게 더 많은 지식 습득을 권장합니다.
Source:
https://www.tecmint.com/install-lemp-with-phpmyadmin-in-ubuntu-20-04/