소개
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 는 속도와 효율성으로 유명하며, 트래픽이 많은 사이트 및 애플리케이션에 대한 인기 있는 선택입니다.
Nginx 설치
다음은 Linux 시스템에 Nginx를 설치하는 구체적인 단계입니다.
- 패키지 목록 업데이트: 서버에서 패키지 목록을 업데이트하려면 다음 명령을 실행합니다.
sudo apt-get update
- 다음 명령을 사용하여 Nginx 를 설치합니다.
sudo apt-get install nginx
Nginx가 성공적으로 설치되었는지 확인합니다.
nginx -v
다음 이미지는 Nginx가 성공적으로 설치되었으며 현재 설치된 버전이 1.18.0임을 나타냅니다.
nginx version: nginx/1.18.0
MySQL 설치
다음은 Linux 시스템에 MySQL 을 설치하는 구체적인 단계입니다.
- 다음 명령을 사용하여 MySQL 을 설치합니다.
sudo apt update
sudo apt-get install mysql-server
- MySQL 서버가 설치되었는지 확인합니다.
mysql --version
다음 그림은 MySQL 이 성공적으로 설치되었음을 나타냅니다.
mysql Ver 8.0.35-0ubuntu0.22.04.1 for Linux on x86_64 ((Ubuntu))
- MySQL 이 시작되었는지 확인하고, 시작되지 않았다면 다음 명령으로 시작합니다.
sudo systemctl status mysql
sudo systemctl start mysql
PHP 설치
다음은 Linux 시스템에 PHP 를 설치하는 구체적인 단계입니다.
- PHP 및 관련 모듈 설치: 다음 명령을 사용하여 PHP 및 관련 모듈을 설치합니다.
sudo apt update
sudo apt-get install php8.1-fpm php-mysql
이렇게 하면 PHP FastCGI Process Manager (php-fpm) 과 PHP 용 MySQL 확장 (php-mysql) 이 설치됩니다.
PHP버전을 확인합니다.
sudo php -v
다음 그림은 PHP 가 성공적으로 설치되었음을 나타냅니다.
PHP 8.1.2-1ubuntu2.14 (cli) (built: Aug 18 2023 11:41:11) (NTS)
Nginx 설정
Nginx 가 설치되면 다른 구성 요소와 함께 작동하도록 구성해야 합니다. 다음 단계에 따라 구성합니다.
- Nginx 구성 파일
/etc/nginx/sites-available/default를 편집합니다.
sudo vim /etc/nginx/sites-available/default
- 기존 내용을 다음 내용으로 바꿉니다.
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;
}
}
- Nginx 구성이 올바른지 확인합니다.
sudo nginx -t
- Nginx 를 다시 로드합니다.
sudo nginx -s reload
MySQL 설정
- MySQL 에 접속하려면 다음 명령을 실행합니다.
sudo mysql
- root 사용자 비밀번호를 설정하려면 다음 명령을 실행합니다.
ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password by 'Mysql@1234'
- MySQL 데이터베이스를 종료하려면 다음 명령을 실행합니다.
exit
PHP 설정
- PHP 정보를 표시하기 위해 새로운 phpinfo.php 파일을 생성하고 편집합니다.
sudo vim /var/www/html/phpinfo.php
다음 내용을 작성합니다.
<?php echo phpinfo(); ?>
팁:
/var/www/html은 사이트 루트 디렉토리이며,cat /etc/nginx/sites-enabled/default명령을 실행하여 확인할 수 있습니다.
- PHP-FPM 시작: 설치가 완료되면 다음 명령을 사용하여 PHP-FPM 서비스를 시작합니다.
sudo systemctl start php8.1-fpm
팁: PHP-FPM 서비스의 정확한 이름은 Linux 배포판 및 PHP 버전에 따라 다를 수 있습니다.
- 부팅 시 PHP-FPM 을 활성화: 서버가 부팅될 때 PHP-FPM 이 자동으로 시작되도록 하려면 다음 명령을 실행합니다.
sudo systemctl enable php8.1-fpm
확인
브라우저의 주소창에 http://127.0.0.1/phpinfo.php를 입력하여 접속합니다.
접속 결과는 아래와 같으며, PHP 설정 정보 페이지가 성공적으로 표시되면 LNMP 환경이 성공적으로 배포된 것입니다.

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



