Linux 에서 LNMP 배포

LinuxBeginner
지금 연습하기

소개

LNMP 는 네 가지 오픈 소스 소프트웨어 구성 요소, 즉 Linux, Nginx, MySQL 및 PHP 를 결합합니다. 이 스택은 동적 웹 애플리케이션 및 웹사이트를 구동하는 데 자주 사용됩니다. 각 구성 요소에 대한 간략한 개요는 다음과 같습니다.

  • Linux: 나머지 스택의 기반을 제공하는 운영 체제입니다.
  • Nginx: 상당한 트래픽을 처리하고 정적 콘텐츠를 효율적으로 제공할 수 있는 고성능 웹 서버 및 리버스 프록시 (reverse proxy) 입니다.
  • MySQL: 웹 애플리케이션을 위한 데이터를 저장하고 검색하는 신뢰할 수 있는 방법을 제공하는 인기 있는 관계형 데이터베이스 관리 시스템 (Relational Database Management System, RDBMS) 입니다.
  • PHP: 웹 개발에 널리 사용되는 스크립팅 언어로, 동적 HTML 콘텐츠를 생성하는 서버 측 코드를 작성할 수 있습니다.

이러한 구성 요소들은 함께 현대적인 웹 애플리케이션을 구축하고 배포하기 위한 강력하고 유연한 플랫폼을 형성합니다. LNMP 는 LAMP (Linux, Apache, MySQL, and PHP) 와 유사하지만 웹 서버로 Apache 대신 Nginx 를 사용합니다. Nginx 는 속도와 효율성으로 유명하며, 트래픽이 많은 사이트 및 애플리케이션에 대한 인기 있는 선택입니다.

이것은 가이드 실험입니다. 학습과 실습을 돕기 위한 단계별 지침을 제공합니다.각 단계를 완료하고 실무 경험을 쌓기 위해 지침을 주의 깊게 따르세요. 과거 데이터에 따르면, 이것은 중급 레벨의 실험이며 완료율은 73%입니다.학습자들로부터 95%의 긍정적인 리뷰율을 받았습니다.

Nginx 설치

다음은 Linux 시스템에 Nginx를 설치하는 구체적인 단계입니다.

  1. 패키지 목록 업데이트: 서버에서 패키지 목록을 업데이트하려면 다음 명령을 실행합니다.
sudo apt-get update
  1. 다음 명령을 사용하여 Nginx 를 설치합니다.
sudo apt-get install nginx
  1. Nginx가 성공적으로 설치되었는지 확인합니다.
nginx -v

다음 이미지는 Nginx가 성공적으로 설치되었으며 현재 설치된 버전이 1.18.0임을 나타냅니다.

nginx version: nginx/1.18.0

MySQL 설치

다음은 Linux 시스템에 MySQL 을 설치하는 구체적인 단계입니다.

  1. 다음 명령을 사용하여 MySQL 을 설치합니다.
sudo apt update
sudo apt-get install mysql-server
  1. MySQL 서버가 설치되었는지 확인합니다.
mysql --version

다음 그림은 MySQL 이 성공적으로 설치되었음을 나타냅니다.

mysql  Ver 8.0.35-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu))
  1. MySQL 이 시작되었는지 확인하고, 시작되지 않았다면 다음 명령으로 시작합니다.
sudo systemctl status mysql
sudo systemctl start mysql

PHP 설치

다음은 Linux 시스템에 PHP 를 설치하는 구체적인 단계입니다.

  1. PHP 및 관련 모듈 설치: 다음 명령을 사용하여 PHP 및 관련 모듈을 설치합니다.
sudo apt update
sudo apt-get install php8.1-fpm php-mysql

이렇게 하면 PHP FastCGI Process Manager (php-fpm) 과 PHP 용 MySQL 확장 (php-mysql) 이 설치됩니다.

  1. PHP 버전을 확인합니다.
sudo php -v

다음 그림은 PHP 가 성공적으로 설치되었음을 나타냅니다.

PHP 8.1.2-1ubuntu2.14 (cli) (built: Aug 18 2023 11:41:11) (NTS)

Nginx 설정

Nginx 가 설치되면 다른 구성 요소와 함께 작동하도록 구성해야 합니다. 다음 단계에 따라 구성합니다.

  1. Nginx 구성 파일 /etc/nginx/sites-available/default를 편집합니다.
sudo vim /etc/nginx/sites-available/default
  1. 기존 내용을 다음 내용으로 바꿉니다.
server {
     listen 80 default_server;
     listen [::]:80 default_server;

     root /var/www/html;
     index index.php index.html index.htm index.nginx-debian.html;

     server_name _;

     location / {
            index index.php index.html index.htm;
        }

     location ~ \.php$ {
            fastcgi_pass unix:/run/php/php-fpm.sock;
            fastcgi_index index.php;
            fastcgi_param  SCRIPT_FILENAME  $document_root$fastcgi_script_name;
            include fastcgi_params;
        }
}
  1. Nginx 구성이 올바른지 확인합니다.
sudo nginx -t
  1. Nginx 를 다시 로드합니다.
sudo nginx -s reload

MySQL 설정

  1. MySQL 에 접속하려면 다음 명령을 실행합니다.
sudo mysql
  1. root 사용자 비밀번호를 설정하려면 다음 명령을 실행합니다.
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'Mysql@1234'
  1. MySQL 데이터베이스를 종료하려면 다음 명령을 실행합니다.
exit

PHP 설정

  1. PHP 정보를 표시하기 위해 새로운 phpinfo.php 파일을 생성하고 편집합니다.
sudo vim /var/www/html/phpinfo.php

다음 내용을 작성합니다.

<?php echo phpinfo(); ?>

팁: /var/www/html은 사이트 루트 디렉토리이며, cat /etc/nginx/sites-enabled/default 명령을 실행하여 확인할 수 있습니다.

  1. PHP-FPM 시작: 설치가 완료되면 다음 명령을 사용하여 PHP-FPM 서비스를 시작합니다.
sudo systemctl start php8.1-fpm

팁: PHP-FPM 서비스의 정확한 이름은 Linux 배포판 및 PHP 버전에 따라 다를 수 있습니다.

  1. 부팅 시 PHP-FPM 을 활성화: 서버가 부팅될 때 PHP-FPM 이 자동으로 시작되도록 하려면 다음 명령을 실행합니다.
sudo systemctl enable php8.1-fpm

확인

브라우저의 주소창에 http://127.0.0.1/phpinfo.php를 입력하여 접속합니다.

접속 결과는 아래와 같으며, PHP 설정 정보 페이지가 성공적으로 표시되면 LNMP 환경이 성공적으로 배포된 것입니다.

PHP info page displayed

또는 curl 명령을 사용하여 확인할 수 있습니다.

curl http://127.0.0.1/phpinfo.php -I

요약

이 단계를 완료하면 LNMP 스택을 성공적으로 배포한 것입니다. 웹사이트 코드를 /var/www/html 디렉토리에 넣고 웹사이트에 접속하여 제대로 실행되는지 확인할 수 있습니다.