Debian 11에 LLMP 스택 구축

처음 뵙겠습니다.저는 42Tokyo의 학생 니노마입니다.
이번에 VirtualBox의 가상화 환경에서 Debian 11에 LLMP 스택을 구축했기 때문에 총괄과 동시에 투고하겠습니다.
부적절한 표현도 있는 것 같은데 신경 쓰이면 댓글로 부드럽게 알려주세요.
LMP 스택과 부식 63?
Linux+Lighttpd+MariaDB(MySQL)+PHP의 실행 환경입니다.LAMP 스택, LEMP 스택과 유사합니다.웹 서버에서 각각 아파치를 사용하느냐,nginx를 사용하느냐가 다르다고 생각합니다.
배경.
왜 아파치와nginx를 사용하지 않고 Lighttpd를 사용하는지 이유가 필요하다.(찾아봐도 아파치나nginx처럼 정보가 없어 힘들어...)
Lighttpd 자체는 오픈 소스에서 개발한 웹 서버로 속도가 빠르고 유연한 것이 특징이다.연기에 있어서nginx와 같은 표현을 하고 있는 것 같습니다.
LLMP 스택을 구축하면 어떤 트래픽이 있어도 LAMP 스택을 능가할 수 있다고 한다.Ligttpd와nginx의 비교는 성능이 거의 같다고 한다.
일반적으로 개발에서 사용할 때nginx는 더욱 일반적인 선택이다. LEMP 설정은 지역사회의 우수한 지원이 있기 때문에 그것을 선택하는 것이 좋다.
참조: Apache Vs Nginx Vs Lighttpd: Comparing Performance, Resource Usage And Features
Debian 11 서버에 Lighttpd, MarriaDB, PHP-FPM 설치
0. 개발 환경
  • VirtualBox 6.1.16
  • Debian 11.2.0
  • sudo, ufw 설치 완료
  • 1. 사전 준비
    서버 내의 패키지 관리 시스템을 최신 상태로 만듭니다.
    sudo apt update && apt upgrade
    
    VirtualBox 측에서 호스트 8080번 포트를 고객의 80번 포트로 전송하도록 설정합니다.
    2. Lighttpd 설치
    lighttpd를 설치합니다.
    sudo apt install lighttpd
    
    설치가 완료되면 lighttpd를 시작하여 웹 서버를 시작합니다.enable 모드로 미리 설정하면 가상 컴퓨터를 다시 시작할 때lighttpd를 잘 시작합니다
    sudo systemctl start lighttpd
    sudo systemctl enable lighttpd
    
    부팅 확인
    sudo systemctl status lighttpd
    
    3. 웹 서비스의 동작에 필요한 포트를 미리 엽니다.
    이번에는 HTTP의 기본 포트(80번)를 사용하기 때문에 UFW 측면에서 개방됩니다.
    sudo ufw allow http
    
    설정된 확인 방법은 다음과 같은 명령이다.아로우 80이 되면 괜찮을 거야.
    sudo ufw status
    
    설정이 완료되면 ufw 설정을 다시 불러옵니다
    sudo ufw reload
    
    이 단계에서 브라우저localhost:[ポート番号]에 액세스하여 Plaaceholder Page를 보면 성공합니다.
    4.MariaDB 설치 및 초기
    설치하다.
    sudo apt install mariadb-server
    
    설치가 완료되면 MarriaDB가 바로 시작되지만 시작에 실패할 경우 다음 명령을 사용하여 MarriaDB를 시작합니다.여기에lighttpd와 마찬가지로 enable 모드로 미리 설정되어 가상 기기의 재부팅 후에도 자동으로 SQL 서버가 시작됩니다.
    sudo systemctl start mariadb
    sudo systemctl enable mariadb
    
    마리아DB의 상태를 확인한다.
    sudo systemctl mariadb
    
    MarriaDB의 초기 설정 진행
    MarriaDB는 초기 설치 상태에서 보안에 취약한 부분이 있습니다.따라서 MarriaDB의 패키지와 함께 설치된 보안 script를 실행합니다.
    sudo mysql_secure_installation
    
    만약 집행한다면 몇 가지 문제를 제기할 것이다.
  • Enter current password for root
  • MarriaDB의 루트 사용자의 암호를 입력합니다.
  • 설치 후 즉시 설정 없이 Return 키를 누릅니다.
    그 다음 모두 Y로 대답하면 된다.
  • 5. PHP-Fast CGI 프로세스 매니저(PHP-FPM) 설치
    PHP-FPM은 성능이 낮은 서버에서도 많은 액세스를 처리할 수 있습니다.
    최신 버전의 PHP-FPM 패키지를 설치하려면 다음 명령을 실행합니다.또 이때 이후 필요한 포장도 함께 설치한다.
    sudo apt install php-fpm php-cgi php-mysql
    
    자신의 환경에서 php7.4 개의 시스템이 설치되어 있습니다.
    PHP-FPM의 초기 설정
  • php.ini 파일을 편집하여 설정할 수 있음
  • sudo cd /etc/php/7.4/fpm
    sudo vim php.ini
    
  • cgi.fix_pathinfo=1줄 찾기, 댓글 출력 해제
  • PHP-FPM 시작
  • sudo systemctl start php7.4-fpm
    sudo systemctl enable php7.4-fpm
    
  • 부팅 여부 확인
  • sudo systemctl status php7.4-fpm
    
    6. Lighttpd와 PHP-FPM의 결합 설정
    편집15-fastcgi-php.conf은 Light pd와 PHP-FPM을 연결합니다.
  • lighttpd 설정 파일이 있는 디렉터리로 이동하여 좋아하는 편집기에서 열기
  • sudo cd /etc/lighttpd/conf-available
    sudo vim 15-fastcgi-php.conf
    
    기본 PHP-CGI 설정을 다음과 같이 변경합니다.
    fastcgi.server += (".php" =>
    		((
    				"socket" => "/var/run/php/php7.4-fpm.sock",
    				"broken-scriptfilename" => "enable"
    		))
    )
    
    FastCGI Lighttpd 모듈 시작
    sudo lighttpd-enable-mod fastcgi
    sudo lighttpd-enable-mod fastcgi-php
    
    새로운 설정을 반영하여 Light pd 웹 서버를 다시 시작합니다.
    sudo systemctl restart lighttpd
    
    7. 구축된 서버 테스트
    테스트를 위해 문서 경로/var/www/html에 다음 파일을 만듭니다.
    file.php
    <?php
    phpinfo();
    ?>
    
    phpinfo () 는 php에 대한 정보를 표시하는 방법입니까?
    브라우저localhost:[ポート番号]/file.php에 액세스하여 설정되었는지 확인합니다.
    수고하셨습니다.
    아래에 참고 페이지가 있으니 가능하면 참고하세요.
    참고 자료
    https://allthings.how/install-llmp-stack-on-ubuntu-20-04-lts/
    https://hostadvice.com/how-to/how-to-install-the-llmp-stack-on-ubuntu-18-04-vps-server-or-dedicated-server/
    https://redmine.lighttpd.net/projects/lighttpd/wiki/Docs_ModFastCGI
    https://mebee.info/2020/07/10/post-11998/

    좋은 웹페이지 즐겨찾기