웹사이트 검색

Ubuntu 12.04에 Linux, nginx, MySQL, PHP(LEMP) 스택을 설치하는 방법


상태: 더 이상 사용되지 않음

이 문서에서는 더 이상 지원되지 않는 Ubuntu 버전에 대해 설명합니다. 현재 Ubuntu 12.04를 실행하는 서버를 운영 중인 경우 지원되는 Ubuntu 버전으로 업그레이드하거나 마이그레이션하는 것이 좋습니다.

  • Ubuntu 14.04로 업그레이드합니다.
  • Ubuntu 14.04에서 Ubuntu 16.04로 업그레이드
  • 서버 데이터를 지원되는 버전으로 마이그레이션

이유:

대신 참조:

렘프 소개

LEMP 스택은 웹 서버를 시작하고 실행하기 위한 오픈 소스 소프트웨어 그룹입니다. 약어는 Linux, nginx(엔진 x로 발음), MySQL 및 PHP를 나타냅니다. 서버가 이미 Ubuntu를 실행 중이므로 Linux 부분이 처리됩니다. 나머지 설치 방법은 다음과 같습니다.

설정

이 자습서의 단계를 수행하려면 사용자에게 루트 권한이 있어야 합니다. 3단계와 4단계의 초기 서버 설정 자습서에서 설정 방법을 확인할 수 있습니다.

1단계 - Apt-Get 업데이트

이 튜토리얼 전체에서 우리는 모든 서버 프로그램의 설치 프로그램으로 apt-get을 사용할 것입니다. 2012년 5월 8일에 심각한 php 취약점이 발견되었으며 가상 사설 서버를 보호하기 위해 최신 패치 소프트웨어를 모두 다운로드하는 것이 중요합니다.

본격적인 업데이트를 해보자.

sudo apt-get update

2단계 - MySQL 설치

MySQL은 데이터 구성 및 검색에 사용되는 강력한 데이터베이스 관리 시스템입니다.

MySQL을 설치하려면 터미널을 열고 다음 명령을 입력하십시오.

sudo apt-get install mysql-server php5-mysql

설치하는 동안 MySQL은 루트 암호를 설정하도록 요청합니다. 프로그램을 설치하는 동안 암호를 설정할 기회를 놓친 경우 나중에 MySQL 셸 내에서 암호를 설정하는 것은 매우 쉽습니다.

MySQL을 설치했으면 다음 명령으로 활성화해야 합니다.

sudo mysql_install_db

MySQL 설정 스크립트를 실행하여 완료합니다.

sudo /usr/bin/mysql_secure_installation

프롬프트에서 현재 루트 비밀번호를 묻습니다.

입력하십시오.

Enter current password for root (enter for none): 
OK, successfully used password, moving on...

그런 다음 프롬프트에서 루트 암호를 변경할 것인지 묻습니다. 계속해서 N을 선택하고 다음 단계로 이동합니다.

모든 옵션에 예라고 말하는 것이 가장 쉽습니다. 마지막에 MySQL은 새로운 변경 사항을 다시 로드하고 구현합니다.

By default, a MySQL installation has an anonymous user, allowing anyone
to log into MySQL without having to have a user account created for
them.  This is intended only for testing, and to make the installation
go a bit smoother.  You should remove them before moving into a
production environment.

Remove anonymous users? [Y/n] y                                            
 ... Success!

Normally, root should only be allowed to connect from 'localhost'.  This
ensures that someone cannot guess at the root password from the network.

Disallow root login remotely? [Y/n] y
... Success!

By default, MySQL comes with a database named 'test' that anyone can
access.  This is also intended only for testing, and should be removed
before moving into a production environment.

Remove test database and access to it? [Y/n] y
 - Dropping test database...
 ... Success!
 - Removing privileges on test database...
 ... Success!

Reloading the privilege tables will ensure that all changes made so far
will take effect immediately.

Reload privilege tables now? [Y/n] y
 ... Success!

Cleaning up...

완료되면 PHP를 설치하여 마무리할 수 있습니다.

3단계 - nginx 설치

MySQL이 모두 설정되면 VPS에 nginx 설치로 넘어갈 수 있습니다.

echo "deb http://ppa.launchpad.net/nginx/stable/ubuntu $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/nginx-stable.list
sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys C300EE8C
sudo apt-get update
sudo apt-get install nginx

nginx는 자체적으로 시작되지 않습니다. nginx를 실행하려면 다음을 입력하십시오.

sudo service nginx start

브라우저에서 IP 주소로 이동하여 nginx가 웹 서버를 설치했는지 확인할 수 있습니다.

다음 명령을 실행하여 VPS의 IP 주소를 확인할 수 있습니다.

ifconfig eth0 | grep inet | awk '{ print $2 }'

4단계 - PHP 설치

PHP-FPM을 설치하려면 터미널을 열고 다음 명령을 입력하십시오. 다음 단계에서 nginx 및 php 세부 정보를 구성합니다.

sudo apt-get install php5-fpm

5단계 - PHP 구성

 sudo nano /etc/php5/fpm/php.ini

cgi.fix_pathinfo=1 줄을 찾아 1을 0으로 변경합니다.

cgi.fix_pathinfo=0

이 숫자가 1로 유지되면 php 인터프리터는 요청한 파일에 최대한 가까운 파일을 처리하기 위해 최선을 다할 것입니다. 이것은 가능한 보안 위험입니다. 반대로 이 숫자를 0으로 설정하면 인터프리터는 정확한 파일 경로만 처리하므로 훨씬 안전한 대안이 됩니다. 저장 및 종료.

php5-fpm 구성에서 또 다른 작은 변경을 수행해야 합니다.www.conf를 엽니다.

 sudo nano /etc/php5/fpm/pool.d/www.conf

줄을 찾아서 listen = 127.0.0.1:9000을 찾은 다음 127.0.0.1:9000을 /var/run/php5-fpm.sock으로 변경합니다.

listen = /var/run/php5-fpm.sock

저장 및 종료.

php-fpm을 다시 시작하십시오.

sudo service php5-fpm restart

6단계 - nginx 구성

기본 가상 호스트 파일을 엽니다.

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

구성에는 아래 변경 사항이 포함되어야 합니다(변경 세부 정보는 구성 정보 아래에 있음).

업데이트: 최신 Ubuntu 버전은 기본적으로 www 대신 html이라는 디렉토리를 생성합니다. /usr/share/nginx/www가 존재하지 않으면 아마도 html이라고 불릴 것입니다. 구성을 적절하게 업데이트했는지 확인하십시오.

 [...]
server {
        listen   80;
     

        root /usr/share/nginx/www;
        index index.php index.html index.htm;

        server_name example.com;

        location / {
                try_files $uri $uri/ /index.html;
        }

        error_page 404 /404.html;

        error_page 500 502 503 504 /50x.html;
        location = /50x.html {
              root /usr/share/nginx/www;
        }

        # pass the PHP scripts to FastCGI server listening on the php-fpm socket
        location ~ \.php$ {
                try_files $uri =404;
                fastcgi_pass unix:/var/run/php5-fpm.sock;
                fastcgi_index index.php;
                fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                include fastcgi_params;
                
        }

}
[...]

변경 내용은 다음과 같습니다.

  • 인덱스 라인에 index.php를 추가합니다.
  • 서버 이름을 로컬 호스트에서 도메인 이름 또는 IP 주소로 변경(구성에서 example.com 대체)
  • "location ~ \\.php${" 섹션에서 올바른 행을 변경합니다.

저장 및 종료

7단계 - PHP 정보 페이지 만들기

새로운 php 구성의 모든 세부 사항을 빠르게 볼 수 있습니다.

이를 설정하려면 먼저 새 파일을 만듭니다.

sudo nano /usr/share/nginx/www/info.php

다음 줄을 추가합니다.

<?php
phpinfo();
?>

그런 다음 저장하고 종료하십시오.

nginx 재시작

sudo service nginx restart

http://youripaddress/info.php를 방문하여 nginx 및 php-fpm 구성 세부 정보를 볼 수 있습니다.

이제 가상 사설 서버에서 LEMP 스택이 설정 및 구성되었습니다.

더보기

LEMP를 설치한 후 FTP 서버를 설치할 수 있습니다.