Lightsail 인스턴스에 LAMP 스택을 수동으로 설치하려면 어떻게 해야 하나요?

6분 분량
0

Amazon Lightsail 인스턴스에 Lamp(Linux, Apache, MySQL, PHP) 스택을 수동으로 설치하려고 합니다.

해결 방법

참고: 다음 해결 방법은 Amazon Lightsail의 OS 전용 옵션으로 제공되는 대부분의 주요 Linux 배포판에 대한 것입니다. 여기에는 Ubuntu 20.04, Ubuntu 18.04, Debian 10 및 9, CentOS 8 및 7이 포함됩니다.

Amazon Linux 2에 LAMP 스택을 설치하는 방법에 대한 자세한 내용을 보려면 아마존 리눅스 2에 LAMP 웹 서버 설치를 참조하세요.

Amazon Linux에 LAMP 스택을 설치하는 방법에 대한 자세한 내용을 보려면 Amazon Linux에 LAMP 웹 서버 설치를 참조하세요.

Apache 설치

Ubuntu 20.04 및 18.04, Debian 9 및 10

다음 명령을 실행하여 Apache 웹 서버를 설치합니다.

sudo apt update -y
sudo apt install apache2 -y

CentOS 7 및 CentOS 8

다음 명령을 실행하여 Apache 웹 서버를 설치합니다.

sudo yum update -y
sudo yum install httpd wget -y
sudo systemctl enable httpd
sudo systemctl start httpd

PHP 설치

참고: 다음 단계는 최신 패키지 버전인 PHP 8.0을 설치합니다. 기본적으로 PHP 8.0은 대부분의 배포판에 없습니다. PHP 8.0을 설치하려면 타사 리포지토리를 켜십시오.

Ubuntu 20.04 및 Ubuntu 18.04

다음 명령을 실행하여 PHP를 설치합니다.

sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt-get update -y
sudo apt install php8.0 php8.0-{fpm,mysql,curl,gd,mbstring,mysql,xml,mcrypt,zip,ldap} libapache2-mod-php8.0 -y

Debian 10 및 Debian 9

다음 명령을 실행하여 PHP를 설치합니다.

sudo apt install -y gnupg2 ca-certificates apt-transport-https software-properties-common
wget -qO - https://packages.sury.org/php/apt.gpg | sudo apt-key add -
echo "deb https://packages.sury.org/php/ $(lsb_release -sc) main" | sudo tee /etc/apt/sources.list.d/sury-php.list
sudo apt update
sudo apt install php8.0 php8.0-{fpm,mysql,curl,gd,mbstring,mysql,xml,mcrypt,zip,ldap} libapache2-mod-php8.0 -y

CentOS 7

다음 명령을 실행하여 PHP를 설치합니다.

sudo yum install -y https://rpms.remirepo.net/enterprise/remi-release-7.rpm
sudo yum install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
sudo yum install -y yum-utils
sudo yum-config-manager --enable remi-php80
sudo yum install php php-{fpm,mysql,curl,gd,mbstring,mysql,xml,mcrypt,zip,ldap} -y

CentOS 8

다음 명령을 실행하여 PHP를 설치합니다.

sudo dnf install -y https://rpms.remirepo.net/enterprise/remi-release-8.rpm
sudo dnf install -y https://dl.fedoraproject.org/pub/epel/epel-release-latest-8.noarch.rpm
sudo dnf module enable php:remi-8.0 -y
sudo yum install php php-{fpm,mysql,curl,gd,mbstring,mysql,xml,mcrypt,zip,ldap} -y

PHP-FPM 모듈을 켜십시오

PHP-FPM 모듈은 더 빠른 웹 사이트를 제공합니다. PHP-FPM은 선택 사항이지만 대부분의 웹 사이트 제작 및 관리에 사용하는 것이 좋습니다.

Ubuntu 20.04 및 18.04, Debian 10 및 9

다음 명령을 실행하여 PHP-FPM을 설치합니다.

sudo a2enmod proxy_fcgi setenvif
sudo a2enconf php8.0-fpm
sudo a2dismod php8.0
sudo systemctl enable php8.0-fpm
sudo service apache2 restart;sudo service php8.0-fpm restart

CentOS 7

  1. mpm_prefork_module 대신 mpm_event_module을 사용하도록 Apache 구성을 업데이트합니다.

    [centos@ip ~]# sudo vi /etc/httpd/conf.modules.d/00-mpm.conf
    # LoadModule mpm_prefork_module modules/mod_mpm_prefork.so
    LoadModule mpm_event_module modules/mod_mpm_event.so
  2. Apache에서 현재 PHP 구성 파일을 백업한 후 다음 내용으로 새 구성 파일을 생성합니다.

    sudo mv /etc/httpd/conf.d/php.conf /etc/httpd/conf.d/php.conf_bak
    sudo vi /etc/httpd/conf.d/php.conf
    
    <Files ".user.ini">
        <IfModule mod_authz_core.c>
            Require all denied
        </IfModule>
        <IfModule !mod_authz_core.c>
            Order allow,deny
            Deny from all
            Satisfy All
        </IfModule>
    </Files>
    
    <FilesMatch \.php$>
        SetHandler "proxy:fcgi://127.0.0.1:9000"
    </FilesMatch>
    
    AddType text/html .php
    DirectoryIndex index.php
  3. 변경 사항을 적용하려면 Apache와 PHP-FPM을 다시 시작합니다.

    sudo systemctl restart php-fpm
    sudo systemctl restart httpd

CentOS 8

  1. 서비스가 소켓 대신 포트를 수신하도록 PHP-FPM 구성 파일을 업데이트합니다.

    sudo sed 's#listen = /run/php-fpm/www.sock#listen = 127.0.0.1:9000#g' -i /etc/php-fpm.d/www.conf
  2. Apache에서 현재 PHP 구성 파일을 백업한 후 다음 내용으로 새 구성 파일을 생성합니다.

    sudo mv /etc/httpd/conf.d/php.conf /etc/httpd/conf.d/php.conf_bak
    sudo vi /etc/httpd/conf.d/php.conf
    
    <Files ".user.ini">
        <IfModule mod_authz_core.c>
            Require all denied
        </IfModule>
        <IfModule !mod_authz_core.c>
            Order allow,deny
            Deny from all
            Satisfy All
        </IfModule>
    </Files>
    
    <FilesMatch \.php$>
        SetHandler "proxy:fcgi://127.0.0.1:9000"
    </FilesMatch>
    
    AddType text/html .php
    DirectoryIndex index.php
  3. 서버에서 다음 명령을 실행하여 Apache가 아웃바운드 연결을 할 수 있도록 합니다.

    sudo /usr/sbin/setsebool -P httpd_can_network_connect 1
  4. 변경 사항을 적용하려면 Apache와 PHP-FPM을 다시 시작합니다.

    sudo systemctl restart php-fpm
    sudo systemctl restart httpd

MariaDB 설치

MariaDB 리포지토리를 사용하여 MariaDB 버전 10.5를 설치합니다.

  1. 다음 명령을 실행하여 MariaDB yum 리포지토리를 추가합니다(모든 Linux 배포판의 경우).

    curl -LsS https://downloads.mariadb.com/MariaDB/mariadb_repo_setup | sudo bash -s -- --mariadb-server-version="mariadb-10.5"
  2. MariaDB 패키지를 설치합니다.

    Ubuntu 20.04, Ubuntu 18.04, Debian 10, Debian 9

    sudo apt install mariadb-server -y

    CentOS 8 및 CentOS 7

    sudo yum install MariaDB-server MariaDB-client -y
    sudo systemctl start mariadb.service
    sudo systemctl enable mariadb.service
  3. 다음 명령을 실행하여 MariaDB 보안 설치를 완료하여 루트 암호를 설정합니다.

    sudo mysql_secure_installation
  4. 메시지가 표시되면 루트 계정의 암호를 설정합니다.
    현재 루트 암호를 입력합니다. 기본적으로 루트 계정에는 암호가 설정되어 있지 않습니다.
    Enter 키를 누릅니다.
    N을 눌러 unix_socket 인증으로 전환합니다.
    Y를 눌러 암호를 설정한 다음 보안 암호를 두 번 입력합니다. 이 암호는 안전한 곳에 보관하세요.
    Y를 눌러 익명 사용자 계정을 제거합니다.
    Y를 눌러 원격 루트 로그인을 끕니다.
    Y를 눌러 테스트 데이터베이스를 제거합니다.
    Y를 눌러 권한 테이블을 다시 로드하고 변경 내용을 저장합니다.

웹 사이트 폴더에 대한 권한을 기본 사용자에게 추가

SCP/SFTP를 사용하여 웹 사이트 인스턴스를 전송하려면 다른 사용자가 /var/www 디렉터리에 액세스할 수 있는 권한을 설정하는 것이 가장 좋습니다. 권한을 설정하는 방법에 대한 지침은 1단계의 파일 권한 설정하기 섹션을 참조하세요. LAMP 서버를 준비합니다. 다음 단계는 각 Linux 배포의 기본 사용자에게 필요한 권한을 제공합니다. 사용자를 Apache 그룹에 추가한 다음 디렉터리 소유권을 기본 사용자 및 Apache 그룹으로 변경할 수 있습니다.

다음 단계를 완료합니다.

Ubuntu 20.04 및 18.04

  1. 다음 명령을 실행합니다.

    sudo usermod -a -G www-data ubuntu
  2. 로그아웃한 다음 다시 로그인하여 새 그룹을 선택합니다. 그런 다음 group 명령을 실행하여 멤버십을 확인합니다.

    sudo chown -R ubuntu:www-data /var/www
    sudo chmod 2775 /var/www
    find /var/www -type d -exec sudo chmod 2775 {} \;
    find /var/www -type f -exec sudo chmod 0664 {} \;

Debian 10 및 9

  1. 다음 명령을 실행합니다.

    sudo usermod -a -G www-data admin
  2. 로그아웃한 다음 다시 로그인하여 새 그룹을 선택합니다. 그런 다음 group 명령을 실행하여 멤버십을 확인합니다.

    sudo chown -R admin:www-data /var/www
    sudo chmod 2775 /var/www
    find /var/www -type d -exec sudo chmod 2775 {} \;
    find /var/www -type f -exec sudo chmod 0664 {} \;

CentOS 8 및 7

  1. 다음 명령을 실행합니다.

    sudo usermod -a -G apache centos
  2. 로그아웃한 다음 다시 로그인하여 새 그룹을 선택합니다. group 명령을 실행하여 멤버십을 확인합니다.

    sudo chown -R centos:apache /var/www
    sudo chmod 2775 /var/www
    find /var/www -type d -exec sudo chmod 2775 {} \;
    find /var/www -type f -exec sudo chmod 0664 {} \;

기본 웹 페이지 보기

웹 브라우저에서 인스턴스의 퍼블릭 IP 주소에 액세스하여 기본 웹 페이지를 확인합니다. 이제 웹 사이트를 사용자 지정할 준비가 되었습니다.

AWS 공식
AWS 공식업데이트됨 일 년 전