웹사이트 검색

Debian 11(Bullseye)에서 LAMP를 설치하고 구성하는 방법


Linux 서버를 설정하는 데 가장 중요한 것 중 하나는 웹 사이트 배포를 위한 것입니다. NetCraft.com이 전 세계에서 가장 사용량이 많은 100만개의 웹사이트를 대상으로 실시한 2022년 2월 설문 조사에 따르면, 그 중 약 23.44%Apache에서 실행됩니다.

이 튜토리얼에서는 LAMP 서버로 작동하도록 Linux 서버(구체적으로 Debian 11 Bullseye)를 설치하고 구성하는 기본 사항을 안내합니다.

LAMP 서버란 무엇입니까?

컴퓨팅 세계에서 LAMPLinux(여기서는 Debian 11 사용), Apache, MySQL, PHP(LAMP). LAMP는 일반적으로 웹 서버에서 소프트웨어 스택(특히 MySQLPHP)을 참조하는 데 사용됩니다.

구성 측면을 살펴보기 전에 Apache 웹 서버에 대해 아는 것이 중요합니다.

Apache 웹 서버란 무엇입니까?

Apache는 "원래" 웹 서버 중 하나였으며 그 시작은 1995년으로 거슬러 올라갑니다. Apache는 오늘날에도 여전히 널리 사용되고 있으며 수명, 많은 양의 문서 및 수많은 문서의 이점을 누리고 있습니다. 유연성을 추가하는 모듈.

Debian 11에 MySQL 및 PHP 설치

1. 이 첫 번째 부분에서는 데비안을 MySQLPHP 서버로 설명합니다. LAMP의 Linux 세그먼트는 TecMint의 다음 기사에 따라 Debian 11을 설치하여 이미 완료되어야 합니다.

  • 데비안 11 Bullseye 새로 설치

데비안이 준비되면 이제 'apt' 메타 패키저를 사용하여 필요한 소프트웨어를 설치할 차례입니다.

sudo apt install mariadb-server php libapache2-mod-php php-zip php-mbstring php-cli php-common php-curl php-xml php-mysql

2. MySQLPHP 설치가 완료된 후 mysql_secure_installation 유틸리티를 사용하여 MySQL 설치를 보호하는 것이 권장되는 경우가 많습니다.

아래 명령을 실행하면 사용자에게 루트 비밀번호를 설정하고 익명 사용자, 테스트 데이터베이스 등을 제거하고 SQL 데이터베이스에 대한 원격 루트 사용자 로그인을 제거하도록 요청합니다.

sudo mysql_secure_installation

3. 이제 MySQL이 구성되었으므로 이 특정 서버에 대한 일부 PHP 기본 설정을 지정해 보겠습니다. PHP에 대해 구성할 수 있는 설정이 많이 있지만 우리는 대부분 항상 필요한 몇 가지 기본 설정을 수행하겠습니다.

열린 PHP 구성 파일은 /etc/php/7.4/apache2/php.ini에 있습니다.

sudo vi /etc/php/7.4/apache2/php.ini

이제 “memory_limit” 문자열을 검색하고 애플리케이션 요구 사항에 따라 제한을 늘립니다.

확인해야 할 또 다른 중요한 설정은 'max_execution_time'이며 기본적으로 30으로 설정됩니다. 응용 프로그램에 더 많은 것이 필요한 경우 이 설정을 변경할 수 있습니다.

이제 MySQLPHP5는 사이트 호스팅을 시작할 준비가 되었습니다. 이제 Apache2를 구성할 차례입니다.

Apache2 설치 및 구성

4. 이제 LAMP 서버 구성을 마무리하기 위해 Apache 2를 구성할 차례입니다. Apache2를 구성하는 첫 번째 단계는 apt 메타 패키저를 사용하여 실제로 소프트웨어를 설치하는 것입니다.

sudo apt install apache2

그러면 Apache2에 필요한 모든 파일과 종속성이 설치됩니다.

일단 설치되면 Apache 웹 서버가 작동되어 기본 웹 페이지를 제공합니다. Apache 웹 서버가 실행 중인지 확인하는 방법에는 여러 가지가 있습니다. 가장 쉬운 옵션은 lsof 유틸리티를 사용하는 것입니다.

sudo lsof -i :80

다른 옵션은 단순히 웹 서버의 IP 주소로 이동하는 것입니다. Debian이 기본 설치되어 있다고 가정하면 시스템은 DHCP를 사용하여 자동으로 IP 주소를 얻도록 설정될 것입니다.

서버의 IP 주소를 확인하려면 두 유틸리티 중 하나를 사용할 수 있습니다. 이 상황에서는 두 유틸리티 중 하나가 작동합니다.

ip show addr			[Shown below in red]
ifconfig			[Shown below in green]

어떤 유틸리티를 사용하든 관계없이 획득한 IP 주소를 동일한 네트워크에 있는 컴퓨터의 웹 브라우저에 입력하여 Apache가 기본 페이지를 표시하고 있는지 확인할 수 있습니다.

http://IP-Address

이 시점에서 Apache가 실행 중입니다. 데비안 기본 페이지는 화려한 웹사이트이지만 대부분의 사용자는 사용자 정의한 것을 호스팅하기를 원할 것입니다. 다음 단계에서는 다른 웹사이트를 호스팅하도록 Apache 2를 설정하는 과정을 안내합니다.

Debian에서 Apache를 사용하여 여러 웹사이트 호스팅하기

5. 데비안은 사이트와 모듈을 모두 관리하는 데 유용한 몇 가지 유틸리티를 패키지로 만들었습니다. 이러한 유틸리티를 사용하는 방법을 살펴보기 전에 해당 유틸리티가 제공하는 기능을 이해하는 것이 중요합니다.

  • a2ensite: 이 유틸리티는 적절한 구성 파일이 생성된 후 웹사이트를 활성화하는 데 사용됩니다.
  • a2dissite: 이 유틸리티는 웹사이트의 구성 파일을 지정하여 웹사이트를 비활성화하는 데 사용됩니다.
  • a2enmod: 이 유틸리티는 추가 Apache2 모듈을 활성화하는 데 사용됩니다.
  • a2dismod: 이 유틸리티는 추가 Apache2 모듈을 비활성화하는 데 사용됩니다.
  • a2query: 이 유틸리티는 현재 활성화된 사이트에 대한 정보를 수집하는 데 사용할 수 있습니다.

먼저 처음 두 가지에 대한 경험을 모아 보겠습니다. Apache 2는 현재 '기본 웹페이지'를 호스팅하고 있으므로 a2dissite를 사용하여 이를 비활성화하겠습니다.

sudo a2dissite 000-default.conf

이 명령은 위 스크린샷에 표시된 기본 Apache 웹사이트를 비활성화합니다. 그러나 변경 사항을 적용하려면 Apache 2 구성을 다시 로드해야 합니다.

sudo systemctl reload apache2

이 명령은 Apache 2가 현재 호스팅하고 있는 활성화/비활성화 사이트를 업데이트하도록 지시합니다. 이는 웹 서버의 IP 주소에 다시 연결을 시도하고 아무것도 표시되지 않음을 확인함으로써 확인할 수 있습니다(일부 컴퓨터는 정보를 캐시합니다. 이전 두 명령을 실행한 후에도 시스템이 여전히 기본 웹 사이트를 표시하는 경우 웹 사이트를 지워 보십시오. 브라우저 캐시). 사이트가 더 이상 활성화되지 않았는지 확인하는 또 다른 옵션은 a2query 유틸리티를 사용하는 것입니다.

sudo a2query -s

이 스크린샷에는 많은 내용이 담겨 있으므로 세부적으로 살펴보겠습니다.

  • 위의 녹색 상자는 a2query -s로, 현재 제공되고 있는 사이트를 명시하도록 Apache 2에 지시합니다.
  • 노란색 상자는 a2dissite 000-default.conf이고 그 뒤에 service apache2 reload가 표시됩니다. 이 두 명령은 Apache 2에 기본 사이트를 비활성화한 다음 활성/비활성 사이트를 다시 로드하도록 지시합니다.
  • 빨간색 상자는 a2query -s가 다시 실행되고 있지만 이번에는 Apache가 아무것도 제공되지 않는다고 응답한다는 것을 알 수 있습니다.

이제 기본이 아닌 사이트를 만드는 과정을 살펴보겠습니다. 첫 번째 단계는 cd 유틸리티를 사용하여 /etc/apache2인 Apache 2 구성 디렉터리로 전환하는 것입니다.

cd /etc/apache2

이 디렉토리에는 몇 가지 중요한 파일과 디렉토리가 있습니다. 그러나 간결성을 위해 여기서는 꼭 필요한 것만 다루겠습니다.

새 사이트를 설정할 때 가장 먼저 해야 할 일은 'sites-available' 디렉터리에 새 구성 파일을 만드는 것입니다. 디렉터리를 'sites-available' 디렉터리로 변경한 다음 새 구성 파일을 만듭니다.

cd sites-available
sudo cp 000-default.conf tecmint-test-site.conf

그러면 추가 수정을 위해 기본 사이트의 구성이 새 사이트 구성 파일로 복사됩니다. 텍스트 편집기를 사용하여 새 사이트 구성 페이지를 엽니다.

sudo vi tecmint-test-site.conf

이 파일에는 웹사이트 호스팅을 위한 매우 중요한 줄이 하나 있는데, 그 줄은 'DocumentRoot' 줄입니다. 이 줄은 특정 리소스에 대한 요청이 들어올 때 제공해야 하는 필수 웹 파일의 위치를 Apache에게 알려줍니다.

현재 이 줄은 존재하지 않지만 곧 이 Debian 서버가 표시할 간단한 웹사이트를 포함하게 될 디렉토리로 설정됩니다.

DocumentRoot /var/www/tecmint

이 파일의 변경 사항을 저장하고 텍스트 편집기를 종료합니다.

이제 Apache 2가 파일을 제공하도록 지시받은 디렉터리를 생성하고 파일로 채워야 합니다. 이 기사에서는 HTML 파일을 사용할 수 있지만, 제대로 작동하는 웹 사이트를 만드는 방법을 살펴보고 해당 프로세스를 독자에게 맡기는 데 시간이 충분하지 않을 수 있습니다.

이제 Apache가 제공할 디렉토리를 만들고 여기에 'index.html'이라는 기본 HTML 웹페이지를 추가해 보겠습니다.

sudo mkdir /var/www/tecmint
touch /var/www/tecmint/index.html
echo “It's ALIVE!” >> /var/www/tecmint/index.html

위의 명령은 'tecmint'라는 새 디렉토리와 tecmint 디렉토리에 'index.html'이라는 새 파일을 생성합니다.

echo 명령은 Apache가 웹 사이트를 제공할 때 웹 브라우저에 실제로 무언가를 표시할 수 있도록 일부 텍스트를 해당 파일에 배치합니다.

참고: 작성자가 이 튜토리얼을 위해 만든 페이지는 다르게 표시됩니다! 이제 이전에 설명한 명령을 사용하여 Apache에 이 새로운 HTML 문서를 제공하도록 지시해야 합니다.


sudo a2ensite tecmint-test-site.conf
sudo systemctl reload apache2
sudo a2query -s tecmint-test-site.conf

위의 마지막 명령은 Apache2가 실제로 새로 생성된 웹 사이트를 제공하고 있는지 확인하는 것입니다. 이 시점에서 웹 브라우저를 다시 서버의 IP 주소로 이동하여 새로 생성된 웹 사이트가 표시되는지 확인합니다. 컴퓨터는 데이터를 캐시하는 것을 좋아하므로 새 웹 페이지를 가져오려면 여러 번 새로 고쳐야 할 수 있습니다.

새로 생성된 "It's ALIVE!!!" 사이트가 표시되면 Apache 2가 성공적으로 구성되어 웹사이트가 표시되는 것입니다.

축하해요! 이는 사이트를 호스팅하기 위해 Linux LAMP 서버를 준비하는 간단한 설정이지만 수행할 수 있는 작업이 훨씬 더 복잡하고 구성은 해당 최종 목표에 따라 크게 달라집니다.