웹사이트 검색

Debian 8(Jessie)에 PHP5(PHP-FPM) 및 MySQL과 함께 Lighttpd 설치


이 튜토리얼은 다음 OS 버전에 대해 존재합니다.

  • 데비안 4(에치)

이 페이지에서

  1. 1 서문
  2. 2 MySQL/MariaDB 설치
    1. 2.1 MariaDB 설치
    2. 2.2 MySQL 설치

    Lighttpd는 속도가 중요한 환경을 위해 설계된 안전하고 빠른 표준 준수 웹 서버입니다. 이 튜토리얼은 PHP5 지원(PHP-FPM을 통해) 및 MySQL 지원이 있는 Debian 8(Jessie) 서버에 Lighttpd를 설치하는 방법을 보여줍니다. PHP-FPM(FastCGI Process Manager)은 모든 규모의 사이트, 특히 사용량이 많은 사이트에 유용한 몇 가지 추가 기능이 있는 대체 PHP FastCGI 구현입니다. 이 튜토리얼에서는 Lighttpds spawn-fcgi 대신 PHP-FPM을 사용합니다.

    1 서문

    이 자습서에서는 호스트 이름 server1.example.com을 IP 주소 192.168.1.100과 함께 사용합니다. 이러한 설정은 사용자에 따라 다를 수 있으므로 적절하게 교체해야 합니다. 이 설치의 기반으로 Debian 최소 서버를 사용합니다. 이는 데이터 센터의 최소 이미지이거나 Debian 최소 서버 튜토리얼을 사용하여 처음부터 설치할 수 있습니다.

    2 MySQL/MariaDB 설치

    Debian 8은 2개의 MySQL 호환 데이터베이스, 기존 MySQL 데이터베이스 및 원래 MySQL 발명가인 Monty Widenius가 유지 관리하는 MySQL 포크인 MariaDB와 함께 제공됩니다. MariaDB는 현재 데이터베이스 속도와 개발 활동 면에서 선두를 달리고 있으므로 내 서버로 선택하겠습니다.

    아래에서는 원하는 데이터베이스를 선택할 수 있도록 MariaDB(2.1장) 및 MySQL(2.2장) 설치에 대해 설명합니다. 2.1장 또는 2.2장 중 하나를 따르되 둘 다 따르지는 않도록 하십시오.

    2.1 MariaDB 설치

    MariaDB를 설치하려면 이 명령을 실행합니다.

    apt-get install mariadb-server mariadb-client

    MariaDB 루트 사용자의 비밀번호를 입력하라는 메시지가 표시됩니다. 이 비밀번호는 [이메일 보호] 사용자에게 유효하므로 나중에 MariaDB 루트 비밀번호를 수동으로 지정할 필요가 없습니다.

    New password for the MariaDB "root" user: <-- yourrootsqlpassword
    Repeat password for the MariaDB "root" user: <-- yourrootsqlpassword

    2.2 MySQL 설치

    다음과 같이 MySQL 5를 설치합니다.

    apt-get install mysql-server mysql-client

    MySQL 루트 사용자의 비밀번호를 입력하라는 메시지가 표시됩니다. 이 비밀번호는 [이메일 보호] 사용자에게 유효하므로 나중에 수동으로 MySQL 루트 비밀번호를 지정할 필요가 없습니다.

    MySQL "root" 사용자의 새 비밀번호: <-- yourrootsqlpassword
    MySQL "root" 사용자의 비밀번호 반복: <-- yourrootsqlpassword

    3 Lighttpd 설치

    Lighttpd는 Debian 패키지로 제공되므로 다음과 같이 설치할 수 있습니다.

    apt-get install lighttpd

    이제 브라우저에서 http://192.168.1.100/으로 이동하면 Lighttpd 자리 표시자 페이지가 표시됩니다.

    Lighttpds 기본 문서 루트는 데비안에서 /var/www이고 구성 파일은 /etc/lighttpd/lighttpd.conf입니다.

    추가 구성은 /etc/lighttpd/conf-available 디렉토리의 파일에 저장됩니다. 이러한 구성은 /etc/lighttpd/conf-enabled 디렉토리에서 적절한 구성으로 symlink를 생성하는 lighttpd-enable-mod 명령으로 활성화할 수 있습니다. 파일은 /etc/lighttpd/conf-available.conf에 있습니다. lighttpd-disable-mod 명령으로 구성을 비활성화할 수 있습니다.

    4 PHP5 설치하기

    다음과 같이 설치하는 PHP-FPM을 통해 Lighttpd에서 PHP5가 작동하도록 만들 수 있습니다.

    apt-get install php5-fpm php5

    PHP-FPM은 소켓 /var/run/php5-fpm.sock에서 FastCGI 서버를 실행하는 데몬 프로세스(init 스크립트 /etc/init.d/php5-fpm 포함)입니다.

    5 Lighttpd 및 PHP5 구성

    Lighttpd에서 PHP5를 활성화하려면 /etc/php5/fpm/php.ini를 수정하고 cgi.fix_pathinfo=1 행의 주석 처리를 제거해야 합니다.

    nano /etc/php5/fpm/php.ini
    [...]
    ; cgi.fix_pathinfo provides *real* PATH_INFO/PATH_TRANSLATED support for CGI.  PHP's
    ; previous behaviour was to set PATH_TRANSLATED to SCRIPT_FILENAME, and to not grok
    ; what PATH_INFO is.  For more information on PATH_INFO, see the cgi specs.  Setting
    ; this to 1 will cause PHP CGI to fix its paths to conform to the spec.  A setting
    ; of zero causes PHP to behave as before.  Default is 1.  You should fix your scripts
    ; to use SCRIPT_FILENAME rather than PATH_TRANSLATED.
    ; http://php.net/cgi.fix-pathinfo
    cgi.fix_pathinfo=1
    [...]

    그리고 php5-fpm 서비스를 다시 시작하여 구성 변경 사항을 적용하십시오.

    systemctl restart php5-fpm.service

    PHP /etc/lighttpd/conf-available/15-fastcgi-php.conf용 Lighttpd 구성 파일은 spawn-fcgi와 함께 사용하기에 적합하지만 PHP-FPM을 사용하고 싶으므로 파일의 백업을 만듭니다( 이름을 15-fastcgi-php-spawnfcgi.conf로 지정하고 다음과 같이 15-fastcgi-php.conf를 수정합니다.

    cd /etc/lighttpd/conf-available/
    cp 15-fastcgi-php.conf 15-fastcgi-php-spawnfcgi.conf
    nano 15-fastcgi-php.conf
    # -*- depends: fastcgi -*-
    # /usr/share/doc/lighttpd/fastcgi.txt.gz
    # http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi
    
    ## Start an FastCGI server for php (needs the php5-cgi package)
    fastcgi.server += ( ".php" =>
            ((
                    "socket" => "/var/run/php5-fpm.sock",
                    "broken-scriptfilename" => "enable"
            ))
    )

    fastcgi 구성을 활성화하려면 다음 명령을 실행합니다.

    lighttpd-enable-mod fastcgi
    lighttpd-enable-mod fastcgi-php

    이렇게 하면 /etc/lighttpd/conf-available/10-fastcgi.conf 및 /etc/lighttpd/conf-enabled/15-fastcgi-php를 가리키는 심볼릭 링크 /etc/lighttpd/conf-enabled/10-fastcgi.conf가 생성됩니다. /etc/lighttpd/conf-available/15-fastcgi-php.conf를 가리키는 .conf:

    ls -l /etc/lighttpd/conf-enabled
    :/etc/lighttpd/conf-available# ls -l /etc/lighttpd/conf-enabled
    total 0
    lrwxrwxrwx 1 root root 33 Aug 11 08:20 10-fastcgi.conf -> ../conf-available/10-fastcgi.conf
    lrwxrwxrwx 1 root root 37 Aug 11 08:20 15-fastcgi-php.conf -> ../conf-available/15-fastcgi-php.conf

    그런 다음 Lighttpd를 다시 로드합니다.

    systemctl force-reload lighttpd.service

    6 PHP5 테스트/PHP5 설치에 대한 세부 정보 얻기

    기본 웹사이트의 문서 루트는 /var/www입니다. 이제 해당 디렉토리에 작은 PHP 파일(info.php)을 만들고 브라우저에서 호출합니다. 이 파일은 설치된 PHP 버전과 같은 PHP 설치에 대한 많은 유용한 정보를 표시합니다.

    nano /var/www/html/info.php
    <?php
    phpinfo();
    ?>

    이제 브라우저에서 해당 파일을 호출합니다(예: http://192.168.1.100/info.php).

    보시다시피 PHP5는 작동 중이며 서버 API 라인에 표시된 것처럼 FPM/FastCGI를 통해 작동합니다. 더 아래로 스크롤하면 PHP5에서 이미 활성화된 모든 모듈이 표시됩니다. MySQL은 목록에 없습니다. 즉, PHP5에서 아직 MySQL을 지원하지 않습니다.

    7 PHP5에서 MySQL 지원 받기

    PHP에서 MySQL 지원을 받으려면 php5-mysqlnd 패키지를 설치할 수 있습니다. MySQL 및 MariaDB와 호환되는 새로운 데이터베이스 드라이버입니다. 다른 PHP5 모듈을 설치하는 것이 좋으며 애플리케이션에 필요할 수도 있습니다. 다음과 같이 사용 가능한 PHP5 모듈을 검색할 수 있습니다.

    apt-cache search php5

    필요한 것을 선택하고 다음과 같이 설치하십시오.

    apt-get install php5-mysqlnd php5-curl php5-gd php5-intl php-pear php5-imagick php5-imap php5-mcrypt php5-memcache php5-pspell php5-recode php5-sqlite php5-tidy php5-xmlrpc php5-xsl

    Xcache는 PHP 중간 코드를 캐싱하고 최적화하기 위한 무료 개방형 PHP opcode 캐셔입니다. eAccelerator 및 APC와 같은 다른 PHP opcode 캐셔와 유사합니다. PHP 페이지 속도를 높이려면 이 중 하나를 설치하는 것이 좋습니다.

    Xcache는 다음과 같이 설치할 수 있습니다.

    apt-get install php5-xcache

    이제 PHP-FPM을 다시 로드합니다.

    systemctl restart php5-fpm.service

    이제 브라우저에서 http://192.168.1.100/info.php를 다시 로드하고 모듈 섹션으로 다시 스크롤하십시오. 이제 MySQL 모듈을 포함하여 많은 새 모듈을 찾을 수 있습니다.

    8 phpMyAdmin

    phpMyAdmin은 MySQL 데이터베이스를 관리할 수 있는 웹 인터페이스입니다. 설치하는 것이 좋습니다.

    apt-get install phpmyadmin

    다음과 같은 질문이 표시됩니다.

    자동으로 재구성할 웹 서버: <-- lighttpd

    Configure database for phpmyadmin with dbconfig-common? <-- Yes
    Password of the database's administrative user: <-- yourrootsqlpassword
    MySQL application password for phpmyadmin: <-- Press <enter>

    그런 다음 http://192.168.1.100/phpmyadmin/에서 phpMyAdmin에 액세스할 수 있습니다.

    9 PHP-FPM이 TCP 연결을 사용하도록 만들기

    기본적으로 PHP-FPM은 소켓 /var/run/php5-fpm.sock에서 수신 대기합니다. PHP-FPM이 TCP 연결을 사용하도록 만드는 것도 가능합니다. 이렇게 하려면 /etc/php5/fpm/pool.d/www.conf...를 엽니다.

    nano /etc/php5/fpm/pool.d/www.conf

    ... 다음과 같이 청취 라인을 만듭니다.

    [...]
    ;listen = /var/run/php5-fpm.sock
    listen = 127.0.0.1:9000
    [...]

    이렇게 하면 PHP-FPM이 IP 127.0.0.1(localhost)의 포트 9000에서 수신 대기하게 됩니다. 시스템에서 사용하지 않는 포트를 사용하고 있는지 확인하십시오.

    그런 다음 PHP-FPM을 다시 로드합니다.

    systemctl restart php5-fpm.service

    다음으로 Lighttpds PHP 구성 파일 /etc/lighttpd/conf-available/15-fastcgi-php.conf를 열고 소켓 행을 호스트 및 포트 행으로 바꿉니다.

    nano /etc/lighttpd/conf-available/15-fastcgi-php.conf
    # -*- depends: fastcgi -*-
    # /usr/share/doc/lighttpd/fastcgi.txt.gz
    # http://redmine.lighttpd.net/projects/lighttpd/wiki/Docs:ConfigurationOptions#mod_fastcgi-fastcgi
    
    ## Start an FastCGI server for php (needs the php5-cgi package)
    fastcgi.server += ( ".php" =>
            ((
                    "host" => "127.0.0.1",
                    "port" => "9000",
                    "broken-scriptfilename" => "enable"
            ))
    )

    마지막으로 Lighttpd를 다시 로드합니다.

    systemctl force-reload lighttpd.service

    10 링크

    • Lighttpd: http://www.lighttpd.net/
    • PHP: http://www.php.net/
    • PHP-FPM: http://php-fpm.org/
    • MySQL: http://www.mysql.com/
    • 데비안: http://www.debian.org/
    • phpMyAdmin: http://www.phpmyadmin.net/