웹사이트 검색

Ubuntu 15.10에서 PHP(PHP-FPM 모드) 및 MySQL 또는 MariaDB로 Lighttpd 설치


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

  • 우분투 15.10(Wily Werewolf)
  • 우분투 12.10(Quantal Quetzal)

이 페이지에서

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

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

    1 서문

    이 자습서에서는 호스트 이름 server1.example.com을 IP 주소 192.168.1.100과 함께 사용합니다. 이러한 설정은 사용자에 따라 다를 수 있으므로 적절하게 교체해야 합니다.

    루트 권한으로 이 튜토리얼의 모든 단계를 실행하고 있으므로 진행하기 전에 루트로 로그인했는지 확인하십시오.

    sudo su

    2 MySQL/MariaDB 설치

    Ubuntu는 원래 MySQL 데이터베이스 서버(MySQL 5.6) 및 MySQL 포크 MariaDB(10)용 패키지를 제공합니다. 오늘날 대부분의 사용자는 MySQL보다 약간 더 빠르고 개발이 더 빠르게 진행되는 MariaDB를 선호합니다. 여기에서 무엇을 설치할지 결정하고 두 가지 옵션을 모두 설명하겠습니다. 2.1장 또는 2.2장의 지침 중 하나를 따르되 둘 다는 따르지 마십시오.

    2.1 MySQL 설치

    다음과 같이 MySQL을 설치합니다.

    apt-get -y install mysql-server-5.6 mysql-client-5.6

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

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

    2.2 MariaDB 설치

    다음과 같이 MariaDB를 설치합니다.

    apt-get -y install mariadb-server mariadb-client

    이제 MariaDB의 루트 비밀번호를 설정합니다.

    mysql_secure_installation

    다음과 같은 질문을 받게 됩니다.

    Enter current password for root (enter for none): <-- press enter
    Set root password? [Y/n] <-- y
    New password: <-- Enter the new MariaDB root password here
    Re-enter new password: <-- Repeat the password
    Remove anonymous users? [Y/n] <-- y
    Disallow root login remotely? [Y/n] <-- y
    Reload privilege tables now? [Y/n] <-- y

    3 Lighttpd 설치

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

    apt-get -y install lighttpd

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

    Lighttpds 기본 문서 루트는 Ubuntu의 /var/www/html이고 구성 파일은 /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 PHP 5.6 설치

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

    apt-get -y install php5-fpm php5

    PHP-FPM은 소켓 /var/run/php5-fpm.sock에서 FastCGI 서버를 실행하는 데몬 프로세스(systemd 서비스 단위 php5-fpm.service 포함)입니다.

    5 Lighttpd 및 PHP 구성

    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
    [...]

    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
    # /usr/share/doc/lighttpd-doc/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 Nov 11 13:59 10-fastcgi.conf -> ../conf-available/10-fastcgi.conf
    lrwxrwxrwx 1 root root 37 Nov 11 13:59 15-fastcgi-php.conf -> ../conf-available/15-fastcgi-php.conf

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

    service lighttpd force-reload

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

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

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

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

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

    7 PHP5에서 MySQL 지원 받기

    PHP에서 MySQL 지원을 받으려면 php5-mysqlnd 패키지를 설치할 수 있습니다. MySQL과 MariaDB를 지원하는 최신 MySQL 드라이버가 포함되어 있으므로 php5-mysql 패키지보다 선호됩니다. 다른 PHP5 모듈을 설치하는 것이 좋으며 애플리케이션에 필요할 수도 있습니다. 다음과 같이 사용 가능한 PHP5 모듈을 검색할 수 있습니다.

    apt-cache search php5

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

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

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

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

    apt-get -y install php5-xcache

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

    service php5-fpm reload

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

    8 phpMyAdmin

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

    apt-get -y install phpmyadmin

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

    자동으로 재구성할 웹 서버: <-- lighttpd
    dbconfig-common을 사용하여 phpmyadmin용 데이터베이스를 구성하시겠습니까? <-- 예

    Password of the database's administrative user: <-- Enter the MySQL/MariaDB root password
    MySQL application password for phpmyadmin: <-- Press ENTER

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

    9 TCP 연결을 사용하여 PHP-FPM 만들기(선택 사항)

    기본적으로 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을 다시 로드합니다.

    service php5-fpm reload

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

    nano /etc/lighttpd/conf-available/15-fastcgi-php.conf
    # /usr/share/doc/lighttpd-doc/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를 다시 로드합니다.

    service lighttpd force-reload

    10 이 튜토리얼의 가상 머신 이미지 다운로드

    이 튜토리얼은 Howtoforge 구독자를 위해 ovf/ova 형식의 가상 머신 이미지를 사용할 준비가 된 상태로 제공됩니다. VM 형식은 VMWare 및 Virtualbox와 호환됩니다. 가상 머신 이미지는 다음 로그인 세부 정보를 사용합니다.

    SSH/쉘 로그인

    사용자 이름: administrator
    비밀번호: howtoforge

    이 사용자는 sudo 권한이 있습니다.

    MySQL/MariaDB 로그인

    사용자 이름: root
    비밀번호: howtoforge

    VM의 IP는 192.168.1.100이며 /etc/network/interfaces 파일에서 변경할 수 있습니다. 위의 모든 암호를 변경하여 가상 머신을 보호하십시오.

    11 링크

    • Lighttpd: http://www.lighttpd.net/
    • PHP: http://www.php.net/
    • PHP-FPM: http://php-fpm.org/
    • MySQL: http://www.mysql.com/
    • 우분투: http://www.ubuntu.com/
    • phpMyAdmin: http://www.phpmyadmin.net/