웹사이트 검색

Debian 8에서 LEMP를 설치하고 구성하는 방법(Jessie)


Linux 시스템을 설정하는 가장 일반적인 이유 중 하나는 웹 사이트를 호스팅하기 위한 것입니다. NetCraft.com이 전 세계에서 가장 바쁜 100만 개의 웹사이트를 대상으로 실시한 2016년 2월 설문 조사에 따르면, 그 중 대략 15.60%Nginx에서 실행됩니다.

일종의 동적 콘텐츠와 웹 사이트용 데이터베이스 백엔드가 제공될 가능성이 높으며 관리자가 LEMP 서버를 설정할 수 있는 기능도 있습니다. 구직자와 고용주 모두에게 매우 유익합니다!

이 튜토리얼에서는 LEMP 서버로 작동하도록 Linux 서버(특히 Debian 8 Jessie)를 설치하고 구성하는 기본 사항을 안내합니다.

LEMP 서버란 무엇입니까?

좋은 질문입니다! 컴퓨팅 세계의 대부분의 경우와 마찬가지로 LEMPLinux, Nginx, MySQL 및 PHP의 약어입니다.

이 약어는 일반적으로 웹 서버의 소프트웨어 컬렉션을 참조하는 데 사용됩니다. 이 튜토리얼에서는 먼저 LEMP, 특히 MySQLPHP 설정 과정을 안내합니다.

시스템의 구성 측면을 분리하기 전에 Nginx에 대해 아는 것이 중요합니다.

Nginx 란 무엇입니까?

Nginx는 컴퓨팅 세계가 10,000개 이상의 동시 연결이 있는 웹사이트가 매우 현실적으로 가능하다는 사실을 깨닫기 시작한 2002년에 시작되었으며, 그 결과 Nginx는 이 문제를 해결하기 위해 처음부터 만들어졌습니다.

MySQL 및 PHP 설치 및 구성

1. 이 첫 번째 섹션에서는 MySQLPHP 서버로서의 데비안을 다룹니다. LEMP 서버의 Linux 부분은 Debian을 설치하여 이미 완료되었을 것입니다! 그러나 데비안 설치 방법에 대한 가이드가 필요하다면 TecMint에서 다음 기사를 읽어보세요:

  1. 데비안 8 제시 설치

데비안이 준비되면 'apt' 메타 패키저를 사용하여 한 번의 빠른 명령으로 필요한 나머지 소프트웨어 설치 프로세스를 완료할 수 있습니다.

apt-get install mysql-server-5.5 php5-mysql php5

시스템 하드웨어 및 인터넷 연결에 따라 이 프로세스에는 다소 시간이 걸릴 수 있습니다. 이 글을 쓰는 시점에서 모든 업데이트가 적용된 Debian Jessie를 새로 설치하려면 저장소에서 약 70MB의 아카이브가 필요합니다(작업이 완료되면 서버가 수행할 작업을 고려하면 그다지 나쁘지는 않습니다)! 설치 프로세스 중에 사용자에게 SQL 루트 사용자 비밀번호를 설정하라는 메시지가 표시될 수 있습니다. 이는 실제 루트 사용자의 비밀번호와 다르며 보안을 위해 아마도 다르게 유지되어야 합니다.

2. apt가 모든 소프트웨어 설치를 완료하면 기본 서비스가 실행됩니다. 그러나 여기에서 멈추면 매우 짧은 튜토리얼이 됩니다! 이제 MySQL부터 설치되는 각 소프트웨어의 구성에 대해 좀 더 자세히 살펴보겠습니다.

3. MySQL 설치 후, 기본 설치 시 SQL 서버의 기본적인 관리 작업을 수행하는 것이 권장되는 경우가 많습니다. 이는 mysql_secure_installation 유틸리티를 사용하여 쉽게 수행할 수 있습니다.

이 명령은 단순히 명령줄에서 실행되며 사용자에게 익명 사용자, 테스트 데이터베이스 등을 제거하고 SQL 데이터베이스에 대한 원격 루트 사용자 로그인 기능을 제거하라는 메시지를 표시합니다.

mysql_secure_installation

이 명령은 위 주제에 관해 질문하는 대화형 프롬프트를 시작합니다. apt는 이미 MySQL 루트 비밀번호를 입력하라는 메시지를 표시하므로 변경하려면 해당 비밀번호를 입력해야 합니다. 루트 비밀번호가 이미 설정되어 있으므로 MySQL 서버의 루트 비밀번호 변경에 대한 프롬프트에 대한 대답은 No일 수 있습니다.

4. 다음 질문 세트는 익명 사용자, '테스트' 데이터베이스 및 데이터베이스에 대한 원격 루트 액세스에 관한 것입니다. 설정에서 이러한 옵션 중 하나를 그대로 유지해야 하는 특별한 이유가 없는 한 일반적으로 이러한 모든 프롬프트에 로 대답하는 것이 안전합니다.

참고: 'test'라는 데이터베이스를 삭제하지 못한 경우 오류가 발생할 수 있습니다. 데이터베이스가 삭제되지 않을 수도 있으므로 걱정하지 마세요. 존재하지 않을 수 있으며 스크립트는 필요한 작업을 계속 수행합니다.

이제 MySQL을 사용할 준비가 되었습니다. 어떤 데이터베이스나 사용자가 필요할지 알지 못하면 더 많은 구성을 수행하기가 어렵습니다. 그러나 대부분의 웹사이트는 소프트웨어 설치 시 필요한 데이터베이스와 사용자를 자동으로 생성하는 경우가 많습니다. 하지만 이는 소프트웨어에 따라 매우 다르며 소프트웨어의 README 파일이나 설치 지침을 빠르게 살펴봐야 합니다.

5. 이제 MySQL이 구성되었으므로 이 특정 서버에 대한 몇 가지 기본 PHP 설정을 설정해 보겠습니다. PHP에 대해 조작할 수 있는 설정은 엄청나게 많지만 거의 항상 수정해야 하는 기본 설정은 몇 가지뿐입니다. PHP 구성 파일은 /etc/php5/fpm/php.ini에 있습니다. 텍스트 편집기로 이 파일을 엽니다.

nano /etc/php5/fpm/php.ini

nano의 검색 기능을 사용하여 ctrl+w 문자열 "memory_limit "(따옴표 제외)를 검색합니다. 기본 설치 시 이 줄은 이미 128M로 설정되어 있지만 애플리케이션에 더 많은 것이 필요한 경우 요구 사항에 맞게 이 줄을 변경할 수 있습니다.

확인해야 할 또 다른 중요한 옵션은 "max_execution_time"이며 기본적으로 30으로 설정됩니다. 애플리케이션에 더 많은 것이 필요한 경우 이 옵션을 변경할 수 있습니다. 어떤 사람들은 PHP 로깅을 특수 파일/디렉토리에 설정하는 것을 선호합니다. 이것이 요구 사항인 경우 "error_log = " 문자열을 검색한 다음 일반적으로 기본적으로 있는 세미콜론을 제거하여 해당 줄의 주석 처리를 제거합니다.

이 시점에서 로그 파일의 값을 줄 끝에 추가할 수 있습니다. 경로가 시스템에 존재하는지 확인하십시오. php.ini 파일에 필요한 변경을 완료한 후 변경 사항을 저장하고 텍스트 편집기를 종료합니다. 이제 MySQLPHP5는 사이트 호스팅을 시작할 준비가 되었습니다. 이제 Nginx를 구성할 차례입니다.

Nginx 설치 및 구성

6. Nginx(엔진 X)는 대안이자 매우 강력한 웹 서버입니다. 이 튜토리얼의 이 섹션에서는 Nginx가 호스팅할 웹 페이지를 설정하는 과정을 안내합니다. Nginx를 구성하는 첫 번째 단계는 'apt' 유틸리티를 사용하여 필요한 패키지를 설치하는 것입니다.

apt-get install nginx

모든 종속성이 충족된다고 가정하고 웹 브라우저에서 서버의 IP 주소로 이동하면 기본 Nginx 웹 사이트가 생성되어야 합니다.

참고: Nginx를 설치한 후 서버가 자동으로 시작되지 않는 경우가 있습니다. 웹 브라우저에서 서버의 IP 주소로 이동해도 아래 페이지가 표시되지 않으면 다음 명령을 실행하여 Nginx가 시작되는지 확인하세요.

service nginx start

Nginx는 이제 기본 페이지를 성공적으로 호스팅하고 있습니다. 데비안 기본 페이지는 화려한 웹사이트이지만 대부분의 사용자는 사용자 정의한 것을 호스팅하기를 원할 것입니다.

7. 다음 단계에서는 다른 웹사이트를 호스팅하도록 Nginx를 설정하는 과정을 안내합니다. Apache 2와 마찬가지로 Nginx에는 /etc/nginx에 자체 구성 디렉터리가 있습니다. cd 유틸리티를 사용하여 이 디렉토리로 전환합니다.

cd /etc/nginx

이 튜토리얼에는 Nginx를 사용하여 웹사이트를 설정하는 데 필요한 몇 가지 중요한 파일과 디렉터리가 있습니다. 중요한 처음 두 디렉토리는 '사이트 사용 가능' 및 '사이트 사용 가능' 디렉토리입니다. Apache 2와 마찬가지로 Nginx는 활성 상태일 때 사이트 활성화 디렉터리에 기호적으로 연결된 sites-available 디렉터리의 각 사이트에 대한 구성 파일을 사용합니다.

기본 사이트를 제거하려면 가장 먼저 활성화된 사이트에서 심볼릭 링크를 제거해야 합니다.

rm sites-enabled/default

8. 이제 Nginx가 페이지를 제공하려면 새로운 사이트 구성 파일을 생성하고 연결해야 합니다. 기본 사이트 구성을 복사하고 수정하면 사이트 구성 파일 생성이 단순화될 수 있습니다.

cp sites-available/default sites-available/tecmint-test

그러면 작업할 새 사이트 구성 파일이 생성됩니다. Nginx가 파일을 제공할 경로를 변경하려면 텍스트 편집기에서 이 파일을 엽니다.

nano sites-available tecmint-test

이 파일에는 Nginx가 사이트를 제공하기 위해 변경해야 할 몇 가지 중요한 옵션이 있습니다. 첫 번째는 'root'로 시작하는 줄입니다. 이 줄은 Nginx가 이 특정 사이트에 대한 파일을 제공해야 하는 위치를 정의합니다.

이 튜토리얼에서는 이를 기본값인 '/var/www/html'로 두고 이 디렉토리에 제공될 html 파일을 배치하기만 하면 됩니다. 그러나 이 서버에 여러 사이트가 있거나 사용자 정의 구성이 있는 경우에는 이 경로를 수정해야 합니다.

다음으로 중요한 줄은 'index' 줄입니다. 이 기사는 LEMP 설치에 관한 것이며 사이트가 잠재적으로 PHP 페이지를 제공할 수 있으므로 Nginx는 기본 페이지가 PHP 페이지일 수 있다는 것을 알려야 합니다. 이렇게 하려면 파일 색인 목록 끝에 'index.php'를 추가하면 됩니다.

새 사이트를 활성화하기 전에 Nginx가 제공할 무언가가 있어야 합니다. 기본 인덱스 페이지가 이미 존재하지만 다른 사이트가 작동하는지 확인하기 위해 기본 페이지의 내용을 다른 것으로 바꾸겠습니다.

echo “It's ALIVE!” > /var/www/html/index.html

9. 다음 단계는 방금 생성된 구성 파일을 sites-enabled 디렉토리에 연결하여 새 사이트를 활성화하는 것입니다. 이는 ln 명령을 사용한 다음 서비스 유틸리티로 Nginx 구성을 다시 로드하여 쉽게 수행할 수 있습니다.

ln -s /etc/nginx/sites-available/tecmint-test sites-enabled/tecmint-test
service nginx reload

이 시점에서 Nginx는 새로운 '간단한' 웹 페이지를 제공해야 합니다. 이는 웹 브라우저를 통해 서버의 IP 주소로 이동하여 확인할 수 있습니다!

다시 한번 말하지만, 이 글은 LEMP의 매우 간단한 구성을 의미합니다. 대부분의 사이트에서는 관련된 모든 부품에 대한 추가 구성이 필요하지만 구성 옵션은 수천 개가 될 수 있습니다! 웹사이트를 호스팅하도록 선택한 설정에 행운이 있기를 바랍니다.