install LEMP on Ubuntu

Published by onesixx on

How To Install LEMP stack(Linux, Nginx, MySQL, PHP () 



ubuntu 현재 버전 확인 

리눅스 버전 확인 

⇒ uname -a
Linux sixxEOS 4.4.0-75-generic #96-Ubuntu SMP Thu Apr 20 09:56:33 UTC 2017 x86_64 x86_64 x86_64 GNU/Linux

Ubuntu 버전확인 

⇒ cat /etc/issue
elementary OS Loki \n \l
⇒  lsb_release -a
No LSB modules are available.
Distributor ID:	elementary
Description:	elementary OS 0.4 Loki
Release:	0.4
Codename:	loki

 하드용량 확인

⇒  df -h
Filesystem                 Size  Used Avail Use% Mounted on
udev                       3.9G     0  3.9G   0% /dev
tmpfs                      795M   30M  765M   4% /run
/dev/sda1                  158G   64G   86G  43% /
tmpfs                      3.9G  118M  3.8G   3% /dev/shm
tmpfs                      5.0M  4.0K  5.0M   1% /run/lock
tmpfs                      3.9G     0  3.9G   0% /sys/fs/cgroup
/dev/sdb2                  2.8T  2.3T  446G  85% /media/onesixx/DATA
//       60G  208M   56G   1% /media/RT_DOC
//  118G   29G   84G  26% /media/Torrent_wa
//    118G   29G   84G  26% /media/RT_Video
tmpfs                      795M   68K  794M   1% /run/user/1001

 메모리 확인

⇒  free -m
              total        used        free      shared  buff/cache   available
Mem:           7940        4108         137         190        3694        3287
Swap:          8149          10        8139



Install  Web Server :  Nginx


apt관리자를 이용하여 간단히 설치한다. 

sudo apt-get update

sudo apt-get install nginx

On Ubuntu 16.04, Nginx is configured to start running upon installation.

ufw 에 등록 (Optional)

firewall인 ufw가 동작하고 있다면, Nginx가 접속할수 있도록 설정해야한다. 


⇒  sudo ufw status
Status: inactive


⇒  sudo ufw allow 'Nginx HTTP'
Rules updated
Rules updated (v6)

⇒  ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'


⇒  curl -4



Install DBMS : MySQL


sudo apt-get install mysql-server


root 사용자 암호를 설정한다.



간단한 security script를 실행한다. (설정의 보안을 보완해준다.)

sudo mysql_secure_installation



Step 3: Install PHP for Processing

Nginx 가 PHP requests 를  processing할수 있도록 php-fpm (“fastCGI process manager) 설치한다. 
또한 MySQL과 communication할수 있도록 관련 모듈도 설치한다. 

sudo apt-get install php-fpm php-mysql

기본적으로 7버전이 설치된다. 


Configure the PHP Processor

보안 설정 

⇒  sudo vi /etc/php/7.0/fpm/php.ini


설정후 php restart

⇒  sudo systemctl restart php7.0-fpm



Configure Nginx to Use the PHP Processor

Now, we have all of the required components installed. The only configuration change we still need is to tell Nginx to use our PHP processor for dynamic content.

We do this on the server block level (server blocks are similar to Apache’s virtual hosts). Open the default Nginx server block configuration file by typing:

sudo vi /etc/nginx/sites-available/default

server_name 에 도메인이나 IP추가 

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

	server_name 서버도메인이나 아이피;
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php7.0-fpm.sock;

    location ~ /\.ht {
        deny all;

설정후 확인

⇒  sudo nginx -t
nginx: the configuration file /etc/nginx/nginx.conf syntax is ok
nginx: configuration file /etc/nginx/nginx.conf test is successful

NginX reload

⇒  sudo systemctl reload nginx


Step 5: Create a PHP File to Test Configuration

NginX가 php를 잘 처리하는지 확인 

새파일을 만들고, phpinfo()가 잘 동작하는지 확인한다.

sudo vi /var/www/html/info.php

sudo rm /var/www/html/info.php


추가  phpAdmin설치

sudo apt-get install phpmyadmin


location /phpmyadmin {
    root /usr/share/;
    index index.php index.html index.htm;
    location ~ ^/phpmyadmin/(.+\.php)$ {
    	try_files $uri =404;
      fastcgi_pass unix:/var/run/php/php7.0-fpm.sock;
      include fastcgi_params;
      fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
    location ~* ^/phpmyadmin/(.+\.(jpg|jpeg|gif|css|png|js|ico|html|xml|txt))$ {
      root /usr/share/;


sudo systemctl reload nginx



Categories: R Basic


Blog Owner

Notify of

Inline Feedbacks
View all comments
Would love your thoughts, please comment.x