Debian 8(Jessie)에 PHP5(PHP-FPM) 및 MySQL과 함께 Lighttpd 설치
이 튜토리얼은 다음 OS 버전에 대해 존재합니다.
- 데비안 4(에치)
이 페이지에서
- 1 서문
- 2 MySQL/MariaDB 설치
- 2.1 MariaDB 설치
- 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: <-- yourrootsqlpassword2.2 MySQL 설치
다음과 같이 MySQL 5를 설치합니다.
apt-get install mysql-server mysql-client
MySQL 루트 사용자의 비밀번호를 입력하라는 메시지가 표시됩니다. 이 비밀번호는 [이메일 보호] 사용자에게 유효하므로 나중에 수동으로 MySQL 루트 비밀번호를 지정할 필요가 없습니다.
MySQL "root" 사용자의 새 비밀번호: <-- yourrootsqlpassword
MySQL "root" 사용자의 비밀번호 반복: <-- yourrootsqlpassword3 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/