Ubuntu 20.04에 Linux, Apache, MySQL, PHP(LAMP) 스택을 설치하는 방법 [빠른 시작]

Ubuntu 20.04에 Linux, Apache, MySQL, PHP(LAMP) 스택을 설치하는 방법 [빠른 시작]

2022-06-01 last update

10 minutes reading PHP Apache Ubuntu 20.04 LAMP Stack

소개


이 빠른 시작 가이드에서는 Ubuntu 20.04 서버에 LAMP 스택을 설치합니다.
본 강좌의 상세한 버전과 각 단계에 대한 자세한 설명은 참조How To Install Linux, Apache, MySQL, PHP (LAMP) Stack on Ubuntu 20.04

선결 조건


이 안내서를 따르려면 Ubuntu 20.04 서버에 sudo 사용자로 액세스해야 합니다.

1단계 - Apache 설치


package manager 캐시를 업데이트하고 다음을 사용하여 Apache를 설치합니다.
  1. sudo apt update
  2. sudo apt install apache2
설치가 완료되면 서버에서 HTTP 트래픽을 허용하도록 방화벽 설정을 조정해야 합니다.다음 명령을 실행하여 포트80(HTTP)에 대한 외부 액세스를 허용합니다.
  1. sudo ufw allow in "Apache"
새 방화벽 규칙이 추가되면 웹 브라우저에서 서버의 공공 IP 주소나 도메인 이름에 접근해서 서버가 시작되고 실행 중인지 테스트할 수 있습니다.다음 페이지가 표시됩니다.

2단계 - MySQL 설치


우리는 현재 MySQL을 설치할 것이다. 이것은 PHP 환경에서 사용하는 유행하는 데이터베이스 관리 시스템이다.
재사용 apt 소프트웨어를 가져오고 설치하려면:
  1. sudo apt install mysql-server
설치가 완료되면 MySQL 사전 설치된 보안 스크립트를 실행하는 것이 좋습니다.다음 명령을 실행하여 대화식 스크립트를 시작합니다.
  1. sudo mysql_secure_installation
구성할 것인지 묻습니다VALIDATE PASSWORD PLUGIN.응답 Y 은 "예"이거나 비활성화된 상태에서 다른 작업을 계속합니다."예"라고 대답하면 암호 인증 수준을 선택해야 합니다.
그러면 서버에서 MySQL 루트 사용자의 암호를 선택하고 확인해야 합니다.비록 MySQL root 사용자의 기본 인증 방법은 비밀번호를 사용하지 않지만, 비밀번호를 설정했더라도 여기에 강력한 비밀번호를 추가 보안 조치로 정의해야 합니다.
나머지 문제는 Y 키를 누르고 각 프롬프트에서 ENTER 키를 누르십시오.
참고: 본문을 작성할 때 본 컴퓨터의 MySQL PHP 라이브러리mysqlnddoesn’t supportcaching_sha2_authentication는 MySQL 8의 기본 인증 방법입니다.따라서 MySQL 8에서 PHP 응용 프로그램에 데이터베이스 사용자를 만들 때 이를 사용하도록 설정해야 합니다mysql_native_password.이 작업을 수행하는 방법은 step 6 of our detailed LAMP on Ubuntu 20.04 설명서를 참조하십시오.

단계 3 - PHP 설치


PHP 및 종속 항목을 설치하려면 다음을 실행하십시오.
  1. sudo apt install php libapache2-mod-php php-mysql
설치가 완료되면 다음 명령을 실행하여 PHP 버전을 확인할 수 있습니다.
  1. php -v
Output
PHP 7.4.3 (cli) (built: Mar 26 2020 20:24:23) ( NTS ) Copyright (c) The PHP Group Zend Engine v3.4.0, Copyright (c) Zend Technologies with Zend OPcache v7.4.3, Copyright (c), by Zend Technologies

단계 4 - 웹 사이트의 가상 호스트 만들기


이 안내서에서 your\udomain이라는 도메인을 설정하지만, 도메인 이름으로 바꿔야 합니다.
Ubuntu 20.04의 Apache는 기본적으로 서비스 /var/www/html 디렉터리의 문서로 구성된 서버 블록을 사용합니다.우리는 /var/www/html 에서 your\u 도메인 사이트에 대한 디렉터리 구조를 만들 것입니다. 수정 /var/www 이 아니라 클라이언트가 다른 사이트와 일치하지 않으면 /var/www/html 을 기본 디렉터리로 유지합니다.
다음 방법으로\u 도메인에 대한 디렉토리를 만듭니다.
  1. sudo mkdir /var/www/your_domain
다음은 $USER 환경 변수를 사용하여 디렉토리의 소유권을 할당합니다. 이 변수는 현재 시스템 사용자를 참조합니다.
  1. sudo chown -R $USER:$USER /var/www/your_domain
그런 다음 선호하는 명령줄 편집기를 사용하여 Apachesites-available 디렉토리에 새 구성 파일을 엽니다.
  1. sudo nano /etc/apache2/sites-available/your_domain.conf
이것은 새로운 공백 파일을 만들 것입니다.다음 기본 구성을 붙여넣습니다.
/etc/apache2/sites available/your\u 필드.형태
<VirtualHost *:80>
    ServerName your_domain
    ServerAlias www.your_domain 
    ServerAdmin [email protected]
    DocumentRoot /var/www/your_domain
    ErrorLog ${APACHE_LOG_DIR}/error.log
    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>
완료되면 파일을 저장하고 닫습니다.사용 중인 경우 nano 를 누른 다음 CTRL+XY 을 누릅니다.
이제 ENTER 를 사용하여 새 가상 호스트를 활성화할 수 있습니다.
  1. sudo a2ensite your_domain
Apache의 기본 웹 사이트를 비활성화하려면 다음을 입력합니다.
  1. sudo a2dissite 000-default
구성 파일에 구문 오류가 없는지 확인하려면 다음을 실행하십시오.
  1. sudo apache2ctl configtest
마지막으로 이러한 변경 사항을 적용하기 위해 Apache를 다시 로드합니다.
  1. sudo systemctl reload apache2
당신의 새 사이트는 현재 활동 상태이지만, 웹 루트 디렉터리 a2ensite 는 여전히 비어 있습니다.이 위치에서 가상 호스트가 예상대로 작동하는지 테스트할 수 있도록 /var/www/your_domain 파일을 만듭니다.
  1. nano /var/www/your_domain/index.html
이 파일에는 다음이 포함됩니다.
/var/www/your\u 도메인/인덱스.html
<html>
  <head>
    <title>your_domain website</title>
  </head>
  <body>
    <h1>Hello World!</h1>

    <p>This is the landing page of <strong>your_domain</strong>.</p>
  </body>
</html>
이제 브라우저로 이동하여 서버의 도메인 이름 또는 IP 주소를 다시 액세스합니다.
http://server_domain_or_IP
다음 페이지가 표시됩니다.

단계 5 - 아파치를 사용하여 PHP 테스트


아파치가 PHP 파일을 처리할 수 있는 요청을 확인하기 위해 PHP 테스트 스크립트를 만들 것입니다.
사용자 정의 웹 루트 폴더에 index.html 라는 새 파일을 만듭니다.
  1. nano /var/www/your_domain/info.php
이것은 빈 파일을 열 것입니다.파일에 다음을 추가합니다.
/var/www/your\u domain/info.php
<?php
phpinfo();
완료되면 파일을 저장하고 닫습니다.
웹 브라우저로 이동하여 서버의 도메인 이름이나 IP 주소를 액세스하고 스크립트 이름을 따릅니다. 이 예에서 info.php:
http://server_domain_or_IP/info.php
유사한 페이지가 표시됩니다.

이 페이지를 통해 PHP 서버에 대한 정보를 확인한 후 만든 파일을 삭제하는 것이 좋습니다. PHP 환경과 Ubuntu 서버에 대한 민감한 정보가 포함되어 있기 때문입니다.info.php를 사용하여 다음을 수행할 수 있습니다.
  1. sudo rm /var/www/your_domain/info.php

관련 강좌


다음은 이 강좌와 관련된 더 자세한 안내서의 링크입니다.
  • Initial Server Setup on Ubuntu 20.04
  • Managing DNS records on DigitalOcean
  • How To Install Linux, Apache, MySQL, PHP (LAMP) stack on Ubuntu 20.04
  • How to Secure Apache with Let’s Encrypt on Ubuntu 20.04