웹사이트 검색

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 액세스입니다.

시작하자…

1단계: Rocky Linux에 Nginx 설치

첫 번째 단계는 Nginx 웹 서버인 LEMP 스택의 첫 번째 구성 요소를 설치하는 것입니다. 먼저 패키지를 업그레이드하세요.

sudo dnf update -y

업데이트가 완료되면 다음 명령을 실행하여 Nginx를 설치합니다. 그러면 웹 서버에 필요한 다른 종속성과 함께 Nginx가 설치됩니다.

sudo dnf install nginx 

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 확장과 함께 PHPPHP-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-FPMApache 사용자로 실행되지만 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 서버 블록 파일을 생성하겠습니다.

1단계: 웹사이트 디렉토리 생성

먼저, 사이트 방문자가 사용할 수 있는 사이트 데이터를 포함할 사이트의 문서 디렉토리를 만듭니다. example.com이라는 도메인이 있다고 가정해 보겠습니다. 다음과 같이 사이트의 도메인 디렉토리를 생성합니다. example.com을 사이트의 정규화된 도메인 이름이나 등록된 도메인으로 바꾸세요.

sudo mkdir -p /var/www/example.com/html

2단계: 웹사이트에 대한 소유권 및 권한 설정

이제 도메인의 디렉터리 구조가 사이트 파일을 호스팅하도록 설정되었습니다. 현재 파일을 소유하는 것은 루트 사용자입니다. 파일을 소유하는 일반 사용자가 되도록 소유권을 설정해야 합니다.

파일 소유권을 현재 로그인된 사용자로 변경하려면 chown 명령을 사용하세요.

sudo chown -R $USER:$USER /var/www/example.com/html

$USER 변수는 현재 로그인한 사용자의 값을 가져와 html 파일 및 하위 디렉터리에 대한 사용자 소유권을 부여합니다. 또한 사이트 방문자가 사이트 페이지에 액세스할 수 있도록 일반 웹 루트 디렉터리에 읽기 권한을 부여합니다.

sudo chmod -R 755 /var/www

이제 사이트 디렉터리가 사이트의 웹 페이지를 제공하도록 잘 구성되었습니다.

3단계: 데모 사이트 만들기

이제 샘플 테스트 사이트를 만들어 보겠습니다. 도메인의 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 파일을 저장하고 종료합니다.

4단계: 웹사이트용 Nginx 서버 블록 생성

서버 블록 파일은 사이트의 구성이 포함된 파일입니다. Nginx 웹 서버가 사이트 방문자의 요청에 응답하는 방법을 설명합니다. 두 개의 디렉터리를 만드는 것부터 시작하겠습니다.

  • /etc/nginx/sites-available – 서버 블록 파일을 보관할 디렉터리입니다.
  • /etc/nginx/sites-enabled – 디렉토리는 서버 블록 파일이 요청을 처리할 준비가 되었음을 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;
    }
}

파일을 저장하고 종료합니다.

5단계: Nginx 서버 블록 활성화

마지막으로 서버 블록 파일을 활성화해야 합니다. 이를 위해 사이트 활성화 디렉터리에 대한 서버 블록 파일의 심볼릭 링크를 생성합니다.

sudo ln -s /etc/nginx/sites-available/example.com.conf /etc/nginx/sites-enabled/example.com.conf

그런 다음 변경 사항을 적용하려면 Nginx를 다시 시작하세요.

sudo systemctl restart nginx

6단계: Nginx 웹사이트 테스트

구성을 테스트하려면 브라우저를 실행하고 사이트 도메인을 방문하세요.

http://example.com

그러면 3단계에서 구성한 대로 서버 블록의 사이트가 표시됩니다.

그리고 이것으로 마무리합니다. 이 가이드에서는 Rocky Linux 8LEMP 스택을 설치하는 과정을 안내하고 한 단계 더 나아가 우리가 호스팅하는 서버 블록 파일을 생성 및 구성했습니다. 맞춤형 웹사이트.