본문 바로가기
IT 끄적이기

nginx 18.04 LEMP 설치 방법( nginx + php7.2+mariadb )

by 미르아 2021. 8. 10.
728x90

1. 서버기본 세팅

기억하세요! 어떠한 운영체제를 설치하든 (윈도우 포함) 가장먼저 해야 할 일은 업데이트 

입니다.

 

패키지 목록 갱신

# apt update

 

현재 운영체제에 설치되어있는 프로그램 최신버전 패치

 

# apt upgrade

 

설치 중 일부 프로그램 설정파일을 초기화 할것인지 물어볼 수도 있는데 기본값인 Keep Local Version 을 선택한다. (미리 선택되어 있으므로 Enter 만 누르면 된다.)

 

설치, 제거, 업데이트 과정중에 생긴 찌꺼기 파일이 있으면 제거.

 

# apt autoremove

 

시스템 시간 설정

 

# dpkg-reconfigure tzdata

 

GUI 환경이 나올 텐데, 순서대로 Asia - Seoul 을 선택하면 된다.  a 와 s 키를 누르면 관련 위치로 이동한다.

 

dpkg-reconfigure 를 사용할 수 없는 환경이라면 아래의 명령을 실행 (동작은 완전히 동일함)

 

# ln -sf /usr/share/zoneinfo/Asia/Seoul /etc/localtime

 

현재 시간 확인

 

# date

 

시스템 이름(hostname) 설정

# vi /etc/hostname < 안의 내용을 원하는 이름으로 변경

# hostname -F /etc/hostname < 적용

 

일반적으로 사용되는 프로그램 설치

# apt install vim - VI 에디터 설치

# apt install git - GIT 설치 (기본패키지라서 이미 설치되어 있다)

# apt install unzip - Unzip 설치





2. Nginx 설치

 

# apt install nginx

 

부팅시 nginx 자동 활성화

# systemctl enable nginx

 

nginx 시작
# systemctl start nginx

 

nginx 상태 확인

# systemctl status nginx

 

nginx 초기 화면

위 페이지가 나오면 nginx가 정상적으로 설치되고 실행 중인 상태입니다.

 

마지막으로 www-data(Nginx 사용자)를 웹 디렉토리의 소유자로 만들어야 합니다. 기본적으로 루트 사용자가 소유합니다.

 

# chown www-data:www-data /usr/share/nginx/html -R

 

nginx 설정

 

# vi /etc/nginx/ngxin.conf

 

http {

       ...

        #buffer add

        client_body_buffer_size 2m;

        client_header_buffer_size 1k;

        client_max_body_size 4m;

        large_client_header_buffers 2 1k;

        #buffer end

       … 사이에 입력

 

서버 사양에 맞게 설정 후 넣어줄 것 안그러면 파일 올라갈 때 경고 메세지 생성



Nginx 서버 블록 생성

 

Nginx 서버 블록은 Apache의 가상 호스트와 같습니다. 기본 서버 블록은 PHP 코드를 실행하기에 부적절하고 수정하면 엉망이되기 때문에 사용하지 않을 것입니다. 따라서 다음 명령을 실행하여 디렉토리 에서 default 심볼릭 링크를 제거하십시오 sites-enabled. (여전히 /etc/nginx/sites-available/default.)

 

# rm /etc/nginx/sites-enabled/default

 

/etc/nginx/conf.d/ 디렉토리에 새로운 서버 블록 파일 생성



# vi /etc/nginx/conf.d/default.conf 

 

---------------------------------------------------------------------------------------------------------------------------

server {

  listen 80;

  listen [::]:80;

  server_name _;

  root /usr/share/nginx/html/;

  index index.php index.html index.htm index.nginx-debian.html;

 

  location / {

    try_files $uri $uri/ /index.php;

  }

 

  location ~ \.php$ {

    fastcgi_pass unix:/run/php/php7.2-fpm.sock;

    fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;

    include fastcgi_params;

    include snippets/fastcgi-php.conf;

  }



 # A long browser cache lifetime can speed up repeat visits to your page

  location ~* \.(jpg|jpeg|gif|png|webp|svg|woff|woff2|ttf|css|js|ico|xml)$ {

       access_log        off;

       log_not_found     off;

       expires           360d;

  }

 

  # disable access to hidden files

  location ~ /\.ht {

      access_log off;

      log_not_found off;

      deny all;

  }

}

---------------------------------------------------------------------------------------------------------------------------

 

파일을 저장하고 Nginx 구성을 테스트

 

# nginx -t

 

테스트가 성공하면 Nginx를 다시 시작

 

# systemctl restart nginx

 

ip로 접속 후 nginx 페이지가 나오는지 확인

3. MariaDB 데이터베이스 서버 설치

 

# apt install mariadb-server mariadb-client

 

# systemctl status mariadb

 

마리아 DB 실행

 

# systemctl start mariadb

 

부팅시 자동 활성화

 

# systemctl enable mariadb

 

보안스크립트 실행

 

# mysql_secure_installation

 

mysql> select @@global.time_zone,@@session.time_zone;

 

한국시간으로 맞춰져 있는지 확인

 

기본적으로 시간은 다 한국 기준으로 맞추고 글로벌 앱같은 경우 서버에서 글로벌 시간으로 넘겨줌



4. PHP 7.2 설치

 

# apt install php7.2 php7.2-fpm php7.2-mysql php-common php7.2-cli php7.2-common php7.2-json php7.2-opcache php7.2-readline php7.2-mbstring php7.2-xml php7.2-gd php7.2-curl

 

PHP 시작

 

# systemctl start php7.2-fpm

 

부팅시 자동 활성화

 

# systemctl enable php7.2-fpm

 

상태 확인

 

# systemctl status php7.2-fpm

 

PHP 설정

 

# vi /etc/php/7.2/fpm/php.ini

 

;date.timezone = > date.timezone = Asia/Seoul 주석해제 후 입력

 

session.gc_maxlifetime = 1440 > session.gc_maxlifetime = 86400 세션 하루로 변경

session.cache_limiter = nocache > session.cache_limiter = 1440

 

Nginx 웹 서버로 PHP-FPM을 테스트하려면 info.php문서  .

 

# vi /usr/share/nginx/html/info.php

 

---------------------------------------------------------------------------------------------------------------------------

<?php phpinfo(); ?>

---------------------------------------------------------------------------------------------------------------------------

 

해당IP/info.php 입력해서 php 정보 나오나 확인

 

 

728x90