Rocky Linux 8에 LEMP 스택을 설치하는 방법
LEMP는 프로덕션 또는 개발 주기의 모든 단계에서 웹 애플리케이션을 호스팅하고 제공하는 데 집합적으로 사용되는 오픈 소스 소프트웨어로 구성된 인기 있는 스택입니다.
LEMP라는 용어는 Linux, 웹 브라우저인 Nginx(Engine X, 따라서 E로 발음됨), MariaDB 또는 MySQL(데이터베이스 및 동적 콘텐츠 처리용 PHP)의 약어입니다. "LEMP 스택은 트래픽이 많고 확장성이 뛰어난 웹 애플리케이션 및 웹 사이트를 호스팅하는 데 널리 사용됩니다.
이 가이드에서는 Rocky Linux 8.4에 LEMP 스택을 설치하는 방법을 배웁니다.
LEMP 스택 설치를 시작하기 전에 다음 요구 사항이 준비되어 있는지 확인하십시오.
- sudo 사용자가 구성된 Rocky Linux 8의 인스턴스 "
- Rocky Linux 인스턴스에 대한 SSH 액세스 "
- /etc/nginx/sites-available – 서버 블록 파일을 저장할 디렉토리입니다.
- /etc/nginx/sites-enabled – 디렉토리는 서버 블록 파일이 요청을 처리할 준비가 되었음을 Nginx에 알립니다. "
시작하자…
1단계: Rocky Linux에 Nginx 설치
첫 번째 단계는 Nginx 웹 서버인 LEMP 스택의 첫 번째 구성 요소를 설치하는 것입니다. 먼저 패키지를 업그레이드합니다.
$ sudo dnf update -y
업데이트가 완료되면 다음 명령을 실행하여 Nginx를 설치합니다. 이것은 웹 서버에 필요한 다른 종속성과 함께 Nginx를 설치합니다.
$ sudo dnf install nginx

Nginx가 설치되면 부팅 시 시작하도록 활성화하고 Nginx 데몬을 시작합니다.
$ sudo systemctl enable nginx $ sudo systemctl start nginx
웹 서버가 실행 중인지 확인하려면 다음 명령을 실행합니다.
$ sudo systemctl status nginx
출력에서 우리는 웹 서버가 작동하고 실행 중이라는 결론을 내릴 수 있습니다.

충분히 궁금하시다면 다음과 같이 Nginx의 버전을 확인하실 수 있습니다. 출력은 Nginx 1.14.1을 실행 중임을 나타냅니다.
$ nginx -v nginx version: nginx/1.14.1
또한 표시된 URL을 검색하여 브라우저가 작동하는지 확인할 수 있습니다. 모든 것이 정상임을 나타내는 기본 Nginx 시작 페이지가 표시됩니다.
http://server-ip or domain name

페이지를 보는 데 문제가 있는 경우 포트 80을 열거나 방화벽에서 HTTP 트래픽을 허용하는 것이 좋습니다.
$ sudo firewall-cmd --zone=public --add-service=http --permanent
그런 다음 방화벽을 다시 로드하고 페이지를 다시 로드하십시오.
$ sudo firewall-cmd --reload
2단계: Rocky Linux에 MariaDB 설치
이 가이드에서는 MariaDB 데이터베이스를 설치합니다. 이는 최적화된 성능과 제공하는 풍부한 스토리지 엔진으로 인해 MySQL보다 훨씬 우수합니다.
MariaDB 데이터베이스 서버를 설치하려면 다음 명령을 실행합니다.
$ sudo dnf install mariadb-server mariadb

완료되면 표시된 대로 MariaDB를 활성화하고 시작합니다.
$ sudo systemctl enable mariadb $ sudo systemctl start mariadb
그런 다음 상태를 확인합니다.
$ sudo systemctl status mariadb

"MariaDB의 기본 설정은 충분히 안전하지 않으며 데이터베이스가 쉽게 침해될 수 있습니다. 가장 기본적인 수준에서 침입자를 방지하기 위한 예방책으로 아래 스크립트를 실행하십시오.
$ sudo mysql_secure_installation
루트 암호를 설정해야 합니다.

나머지 프롬프트에서 Y
를 입력하여 익명 사용자를 제거하고, 원격 루트 로그인을 거부하고, 테스트 데이터베이스를 제거하고, 마지막으로 변경 사항을 저장합니다.

데이터베이스 서버에 로그인하려면 다음 명령을 실행하십시오.
$ sudo mysql -u root -p
"암호를 입력하고 Enter 키를 누릅니다.

3단계: Rocky Linux에 PHP 설치
마지막으로 설치할 구성 요소는 FastCGI Process Manager를 나타내는 PHP-FPM을 통한 PHP입니다. 이것은 트래픽이 많은 웹 사이트에 대해 최적의 성능과 보안을 보장하는 기능을 제공하는 효율적이고 고급 PHP용 프로세서입니다.
시작하려면 최신 PHP 버전을 제공하는 타사 무료 리포지토리인 Remi 리포지토리를 설치합니다.
Remi 리포지토리를 활성화하려면 다음 명령을 실행합니다.
$ sudo dnf install dnf-utils http://rpms.remirepo.net/enterprise/remi-release-8.rpm

Remi 저장소가 활성화되면 표시된 명령을 사용하여 호스팅되는 PHP 모듈 목록을 확인하십시오.
$ sudo dnf module list php

출력에서 기본 버전이 [d]
태그가 있는 7.2임을 알 수 있습니다. "그러나 우리는 Remi 8.0인 최신 모듈을 설치할 것입니다.
따라서 기본 PHP 모듈을 재설정하고 최신 Remi PHP 모듈을 활성화하십시오.
$ sudo dnf module list reset php $ sudo dnf module enable php:remi-8.0

다음으로, 시스템을 업데이트하고 선호하는 PHP 확장과 함께 PHP 및 PHP-FPM을 설치하십시오.
$ sudo dnf install php php-fpm php-gd php-mysqlnd php-cli php-opcache

설치가 완료되면 그림과 같이 PHP-FPM을 활성화하고 시작합니다.
$ sudo systemctl enable php-fpm $ sudo systemctl start php-fpm
다음으로 PHP-FPM의 실행 상태를 확인합니다.
$ sudo systemctl status php-fpm

일반적으로 PHP-FPM은 Apache 사용자로 실행되지만 Nginx를 사용하기 때문에 Nginx로 설정해야 합니다. "따라서 다음 구성 파일을 엽니다.
$ sudo vim /etc/php-fpm.d/www.conf
사용자와 그룹을 Nginx로 설정합니다.
user = nginx Group = nginx
그런 다음 PHP-FPM 데몬을 다시 로드합니다.
$ sudo systemctl reload php-fpm
최신 버전의 PHP를 설치했는지 확인하려면 명령을 실행하세요.
$ php -v

Testin PHP의 또 다른 멋진 방법은 간단한 PHP 파일을 만들어 /usr/share/nginx/html에 있는 webroot 디렉토리에 저장하는 것입니다. 따라서 /usr/share/nginx/html webroot 디렉토리에 간단한 info.php 파일을 만드십시오.
$ sudo vim /usr/share/nginx/html/info.php
다음 내용을 추가하고 파일을 저장합니다.
<?php phpinfo(); ?>
변경 사항을 적용하려면 Nginx 웹 서버를 다시 로드하십시오.
$ sudo systemctl restart nginx
마지막으로 다음 URL에 액세스합니다.
http://server-ip/info.php
다른 PHP 확장과 함께 설치된 PHP 버전에 대한 자세한 정보가 있는 웹페이지가 표시됩니다.

이 시점에서 LEMP 설정이 완료되었습니다. "다음 단계에서는 Nginx 서버 블록을 구성하여 샘플 사이트를 호스팅할 것입니다.
3단계: Rocky Linux에서 Nginx 서버 블록 구성
서버 블록을 사용하면 관리자가 서로 다른 사이트 문서 루트 디렉토리를 정의하여 한 서버에서 여러 웹 사이트를 호스팅할 수 있습니다. 웹사이트 파일이 포함된 디렉토리입니다.
여기에서는 샘플 웹사이트를 호스팅할 단일 Nginx 서버 블록 파일을 생성합니다.
먼저 사이트 방문자가 사용할 수 있는 사이트 데이터를 포함할 사이트의 문서 디렉토리를 만듭니다. example.com이라는 도메인이 있다고 가정합니다. 다음과 같이 사이트의 도메인 디렉토리를 생성합니다. example.com을 사이트의 정규화된 도메인 이름 또는 등록된 도메인으로 교체해야 합니다.
$ sudo mkdir -p /var/www/example.com/html
이제 도메인의 디렉토리 구조가 사이트의 파일을 호스팅하도록 설정되었습니다. 현재 파일을 소유하는 것은 루트 사용자입니다. 파일을 소유하는 일반 사용자가 되도록 소유권을 설정해야 합니다.
파일의 소유권을 현재 로그인한 사용자로 변경하려면 chown 명령을 사용합니다.
$ sudo chown -R $USER:$USER /var/www/example.com/html
$USER
변수는 현재 로그인한 사용자의 값을 취하고 html 파일과 하위 디렉토리에 대한 소유권을 사용자에게 부여합니다. 또한 사이트 방문자가 사이트 페이지에 액세스할 수 있도록 일반 웹 루트 디렉터리에 읽기 권한을 부여합니다.
$ sudo chmod -R 755 /var/www
사이트 디렉토리는 이제 사이트의 웹 페이지를 제공하도록 잘 구성되었습니다.
이제 샘플 테스트 사이트를 만들어 보겠습니다. 우리는 도메인의 html 디렉토리에 아주 기본적인 index.html 파일을 생성할 것입니다.
$ sudo vim /var/www/example.com/html/index.html
아래 내용을 붙여넣습니다. "보시다시피 테스트 목적으로 만 사용하기 때문에 매우 기본적입니다.
<html> <head> <title>Welcome to Example.com!</title> </head> <body> <h1>Success! The server block is active!</h1> </body> </html>
HTML 파일을 저장하고 종료합니다.
서버 블록 파일은 사이트의 구성이 포함된 파일입니다. Nginx 웹 서버가 사이트 방문자의 요청에 어떻게 응답하는지 설명합니다. 두 개의 디렉토리를 만드는 것으로 시작하겠습니다.
- "
따라서 다음과 같이 디렉터리를 만듭니다.
$ sudo mkdir /etc/nginx/sites-available $ sudo mkdir /etc/nginx/sites-enabled
그런 다음 Nginx의 기본 구성 파일을 편집합니다.
$ sudo mkdir /etc/nginx/nginx.conf
다음 줄을 붙여넣습니다. "첫 번째 줄은 추가 구성 파일이 포함된 디렉터리의 경로를 지정합니다. 두 번째 줄은 도메인 이름 구문 분석에 할당된 메모리를 늘립니다.
include /etc/nginx/sites-enabled/*.conf; server_names_hash_bucket_size 64;
저장 및 종료.
다음으로 서버 블록 파일을 생성합니다.
$ sudo vim /etc/nginx/sites-available/example.com.conf
아래 내용을 붙여넣습니다. "example.com을 FQDN(정규화된 도메인 이름) 또는 서버 IP 주소로 바꿉니다.
server { listen 80; server_name example.com www.example.com; location / { root /var/www/example.com/html; index index.html index.htm; try_files $uri $uri/ =404; } error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/html; } }
파일을 저장하고 종료합니다.
마지막으로 서버 블록 파일을 활성화해야 합니다. 그렇게 하기 위해, 우리는 사이트 사용 디렉토리에 대한 서버 블록 파일에 대한 심볼릭 링크를 생성할 것입니다.
$ sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf
그런 다음 변경 사항을 적용하려면 Nginx를 다시 시작하십시오.
$ sudo systemctl restart nginx
구성을 테스트하려면 브라우저를 실행하고 사이트 도메인을 방문하세요.
http://example.com
3단계에서 구성한 서버 블록의 사이트가 표시되어야 합니다.

그리고 이것으로 마무리합니다. 이 가이드에서는 Rocky Linux 8에 LEMP 스택을 설치하는 과정을 안내하고 사용자 지정 웹 사이트를 호스팅하는 서버 블록 파일을 만들고 구성하기 위해 한 단계 더 나아갔습니다.