본문 바로가기
aws

3탄. LAMP 서버 완벽 설치 가이드 - Linux, Apache, PHP, MySQL

by 요몽이 2024. 1. 6.
이 문서는 LAMP(Linux, Apache, PHP, MySQL) 서버를 설치하는 방법에 대한 가이드입니다. LAMP는 웹 개발에 많이 사용되는 소프트웨어 스택으로, 리눅스 운영체제, 아파치 웹 서버, PHP 프로그래밍 언어, MySQL 데이터베이스를 포함합니다. 이 가이드를 따라서 LAMP 서버를 준비하고 설정하는 방법을 자세히 안내하겠습니다.

목차

    출처 : 아마존 공식설치 문서 

     

    Amazon Linux 2023에 LAMP 설치 - Amazon Elastic Compute Cloud

    Amazon Linux를 사용하지 않는 경우, 이러한 연결을 허용하도록 인스턴스에서 방화벽을 구성해야 할 수도 있습니다. 방화벽 구성 방법에 대한 자세한 내용은 사용자의 특정 배포에 대한 문서를 참

    docs.aws.amazon.com

     

    LAMP 서버 완벽 설치 step by step

    1. 인스턴스에 연결 : AWS EC2 연결 포스트 참고

    2. sudo dnf update -y

    sudo dnf update -y 명령은 *DNF 패키지 관리자를 사용하여 시스템의 모든 패키지를 최신 버전으로 업데이트하는 명령입니다. -y 옵션은 모든 업데이트 작업을 자동으로 수락(실행할 것인지 묻지 않토록 하는 옵션)하도록 설정합니다. 이 명령을 실행하면 시스템의 패키지들이 최신 상태로 업데이트됩니다. 다만, 해당 명령은 리눅스 기반의 시스템에서 사용되는 명령이므로, Windows나 macOS와 같은 다른 운영체제에서는 사용할 수 없음.
    DNF(Dandified Yum)은 Fedora 및 RHEL(Red Hat Enterprise Linux) 8 이상에서 사용되는 패키지 관리자입니다. Yum(Yellowdog Updater, Modified) 패키지 관리자의 개선된 버전으로, RPM 기반 시스템에서 소프트웨어 패키지를 설치, 업데이트, 제거하는 데 사용됩니다. DNF는 RPM 패키지 리포지토리를 관리하고 의존성 문제를 자동으로 처리하는 기능을 제공합니다. 또한, 모듈(module) 기능을 통해 서로 다른 소프트웨어 버전을 선택적으로 설치할 수 있습니다. DNF의 사용 방법은 Yum과 유사하며, 명령어 구문도 거의 동일합니다. 따라서, DNF를 사용하여 패키지를 설치하거나 업데이트할 때는 dnf install 또는 dnf update와 같은 명령을 사용합니다. DNF는 Fedora와 RHEL 계열의 Linux 시스템에서 주로 사용되며, 다른 배포판에서는 다른 패키지 관리자가 사용될 수 있습니다. 예를 들어, Debian 계열의 Ubuntu에서는 APT(Advanced Package Tool)를 사용합니다.

     

    3. sudo dnf install -y httpd wget php-fpm php-mysqli php-json php php-devel

    sudo dnf install -y httpd wget php-fpm php-mysqli php-json php php-devel 명령어는 DNF를 사용하여 Apache HTTP Server (httpd), wget, PHP-FPM, php-mysqli, php-json, php, php-devel 패키지를 설치하는 명령어입니다. sudo는 관리자 권한으로 명령을 실행하기 위해 사용되는 명령어입니다. dnf install은 DNF를 사용하여 패키지를 설치하는 명령어입니다. -y 옵션은 패키지 설치 중에 나오는 확인 메시지를 자동으로 yes로 응답하도록 설정하는 옵션입니다. 따라서 위의 명령어를 실행하면 httpd, wget, php-fpm, php-mysqli, php-json, php, php-devel 패키지가 자동으로 설치됩니다.

     

    4. sudo dnf install mariadb105-server : 마리아DB 설치

    참고 : sudo + 명령어는 관리자 권한으로 명령을 실행하겠다는 의미, 만약 매번 sudo + 명령어가 귀찮다면 

    sudo su 명령어를 입력하여 관리자 모드로 전환(콘솔에서 $가 #으로 바뀜)하면, sudo를 붙이지 않고 관리자 권한으로 명령이 가능함. 다시 일반 사용자로 돌아가려면 exit 엔터. 이 상태에서 다시 exit 엔터하면 서버 접속을 종료하게됨.

    sudo dnf install mariadb105-server 명령어는 DNF를 사용하여 MariaDB 10.5 버전의 서버를 설치하는 명령어입니다.sudo는 관리자 권한으로 명령을 실행하기 위해 사용되는 명령어입니다. dnf install은 DNF를 사용하여 패키지를 설치하는 명령어입니다. mariadb105-server는 MariaDB 10.5 버전의 서버 패키지를 지칭합니다. 따라서 위의 명령어를 실행하면 MariaDB 10.5 버전의 서버가 자동으로 설치됩니다.

     

    5. dnf info mariadb105 :  마리아DB 설치 여부 확인

    dnf info mariadb105 명령어를 사용하여 MariaDB 10.5 패키지에 대한 정보를 확인할 수 있습니다. 하지만, 제가 실시간으로 패키지 정보를 가져오는 기능은 없으므로, 현재 시점에서의 최신 정보를 제공할 수 없습니다. 일반적으로 dnf info 명령어는 패키지의 이름과 버전, 설명, 의존성, 크기 등의 정보를 제공합니다. MariaDB 10.5 패키지에 대한 자세한 정보를 확인하려면 해당 명령어를 실행하여 직접 확인하시기 바랍니다. 예를 들어, dnf info mariadb105 명령어를 실행하면 MariaDB 10.5 패키지에 대한 정보를 터미널에서 확인할 수 있습니다.

     

    6. sudo systemctl start httpd : 아파치 서버 실행  ( 아무 반응이 없으면 시작된 것임 😄 )

    참고 : 이제 서버가 동작했으니 브라우저에 고정 IP로 접속해 확인해본다. 제대로 설치했다면, 브라우저에 It works! 가 보일 것이다.  ( 아파치 서버를 중지하려면, sudo systemctl stop httpd 하면된다.)

    sudo systemctl start httpd 명령어는 systemd를 사용하여 Apache HTTP Server를 시작하는 명령어입니다. sudo는 관리자 권한으로 명령을 실행하기 위해 사용되는 명령어입니다. systemctl은 systemd의 서비스 관리 도구입니다. start는 서비스를 시작하는 명령어이며, httpd는 Apache HTTP Server의 서비스 이름입니다. 따라서 위의 명령어를 실행하면 Apache HTTP Server가 시작됩니다. 서비스가 성공적으로 시작되었는지 확인하려면 sudo systemctl status httpd 명령어를 사용할 수 있습니다

     

    7. sudo systemctl enable httpd : AWS 아마존 리눅스 서버가 재시작 되더라도 아파치 서버가 바로 동작하도록 하는 명령어

    sudo systemctl enable httpd 명령어는 systemd를 사용하여 Apache HTTP Server를 부팅 시 자동으로 시작되도록 설정하는 명령어입니다. sudo는 관리자 권한으로 명령을 실행하기 위해 사용되는 명령어입니다. systemctl은 systemd의 서비스 관리 도구입니다. enable은 서비스를 부팅 시 자동으로 시작되도록 설정하는 명령어이며, httpd는 Apache HTTP Server의 서비스 이름입니다. 위의 명령어를 실행하면 Apache HTTP Server가 부팅 시 자동으로 시작되도록 설정됩니다. 이제부터 시스템이 부팅될 때마다 Apache HTTP Server가 자동으로 실행될 것입니다.

     

    8. sudo systemctl is-enabled httpd : 7번 내용이 제대로 동작하는 지 확인하는 명령어

    참고 : 명령어 결과로 enabled 가 뜨면 제대로 설정한 것임.

    `sudo systemctl is-enabled httpd` 명령어는 systemd를 사용하여 Apache HTTP Server가 부팅 시 자동으로 시작되는지 확인하는 명령어입니다. `sudo`는 관리자 권한으로 명령을 실행하기 위해 사용되는 명령어입니다. `systemctl`은 systemd의 서비스 관리 도구입니다. `is-enabled`은 서비스가 부팅 시 자동으로 시작되는지 여부를 확인하는 명령어이며, `httpd`는 Apache HTTP Server의 서비스 이름입니다. 위의 명령어를 실행하면 `enabled` 또는 `disabled`라는 결과를 반환합니다. `enabled`는 Apache HTTP Server가 부팅 시 자동으로 시작되도록 설정된 경우를 나타내며, `disabled`는 설정되지 않은 경우를 나타냅니다. 따라서 위의 명령어를 실행하여 Apache HTTP Server의 자동 시작 여부를 확인할 수 있습니다.

     

    9. IP주소( AWS EC2 인스턴스에 할당된 탄력적 IP )를 브라우져 주소창에 입력

    => it works가 뜨면 성공~~!!! 😊

    맺음 말

    LAMP 스택 설치를 위한 상세한 가이드라인을 따라가시면서 어려움을 겪지 않았기를 바랍니다. Apache, MySQL, PHP를 사용하여 서버를 구축하고 운영하는 방법이 이제는 더 이상 어렵지 않으실 거라고 믿습니다. 그리고 이 글이 웹 서버 구축을 위한 가장 효율적인 방법을 찾는데 도움이 되었기를 바라며, 다음에도 더욱 유익한 정보를 제공할 수 있도록 노력하겠습니다. 이 글이 웹 서버 구축에 관한 여러분의 궁금증을 해결하는 데 도움이 되었기를 바랍니다.