서버 설정 · 3 min read · Jan 09, 2026

Ubuntu 12.04 LTS에서 Apache2와 함께 PHP5-FPM 사용하기

Ubuntu 12.04 LTS에서 Apache2와 함께 PHP5-FPM 사용하기

버전 1.0
저자: Falko Timme
Twitter에서 나를 팔로우하세요

이 튜토리얼은 PHP5( PHP-FPM을 통해) 및 MySQL 지원과 함께 Ubuntu 12.04 LTS 서버에 Apache2 웹 서버를 설치하는 방법을 보여줍니다. PHP-FPM(FastCGI Process Manager)은 모든 규모의 사이트, 특히 더 바쁜 사이트에 유용한 몇 가지 추가 기능이 있는 대체 PHP FastCGI 구현입니다.

이것이 당신에게 작동할 것이라는 보장은 하지 않습니다!

1 사전 참고

이 튜토리얼에서는 호스트 이름 server1.example.com과 IP 주소 192.168.0.100을 사용합니다. 이러한 설정은 귀하와 다를 수 있으므로 적절한 곳에서 교체해야 합니다.

저는 이 튜토리얼의 모든 단계를 루트 권한으로 실행하고 있으므로 루트로 로그인되어 있는지 확인하세요:

sudo su

2 MySQL 5 설치하기

먼저 다음과 같이 MySQL 5를 설치합니다:

apt-get install mysql-server mysql-client

MySQL 루트 사용자에 대한 비밀번호를 제공하라는 메시지가 표시됩니다. 이 비밀번호는 사용자 root@localhost와 [email protected]에 유효하므로 나중에 MySQL 루트 비밀번호를 수동으로 지정할 필요가 없습니다:

MySQL “root” 사용자에 대한 새 비밀번호: <– yourrootsqlpassword
MySQL “root” 사용자에 대한 비밀번호 반복: <– yourrootsqlpassword

3 Apache2 설치하기

Apache2는 Ubuntu 패키지로 제공됩니다. 우리는 다음과 같이 apache2-mpm-worker 패키지를 설치해야 합니다:

apt-get install apache2-mpm-worker

이제 브라우저를 http://192.168.0.100으로 이동하면 Apache2 자리 표시자 페이지(작동합니다!)를 볼 수 있습니다:

Apache의 기본 문서 루트는 Ubuntu에서 /var/www이며, 구성 파일은 /etc/apache2/apache2.conf입니다. 추가 구성은 /etc/apache2 디렉토리의 하위 디렉토리에 저장됩니다. 예를 들어 /etc/apache2/mods-enabled(Apache 모듈용), /etc/apache2/sites-enabled(가상 호스트용), /etc/apache2/conf.d.

4 PHP5 설치하기

다음과 같이 PHP-FPM과 Apache의 mod_fastcgi 모듈을 통해 Apache2에서 PHP5를 작동시킬 수 있습니다:

apt-get install libapache2-mod-fastcgi php5-fpm php5

PHP-FPM은 포트 9000에서 FastCGI 서버를 실행하는 데몬 프로세스입니다(초기 스크립트 /etc/init.d/php5-fpm).

다음으로 다음 Apache 모듈을 활성화합니다…

a2enmod actions fastcgi alias

… 그리고 Apache를 재시작합니다:

/etc/init.d/apache2 restart

5 Apache 구성하기

Apache가 PHP-FPM과 함께 작동하도록 하려면 다음 구성이 필요합니다:

| AddHandler php5-fcgi .php Action php5-fcgi /php5-fcgi Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization |

( FastCgiExternalServer 지시문에 대해 자세히 알아보려면 http://www.fastcgi.com/mod_fastcgi/docs/mod_fastcgi.html#FastCgiExternalServer를 참조하세요.)

이를 전역 Apache 구성에 넣을 수 있습니다(모든 vhost에 대해 활성화됨). 예를 들어 /etc/apache2/conf.d/php5-fpm.conf에 넣을 수 있습니다(이 파일은 존재하지 않으므로 생성해야 합니다). 또는 PHP-FPM을 사용해야 하는 각 vhost에 배치할 수 있습니다. 기본 vhost와 함께 PHP-FPM을 사용하고 싶으므로 vhost 구성 파일 /etc/apache2/sites-available/default를 엽니다…

vi /etc/apache2/sites-available/default

… 그리고 사이의 어딘가에 다음 섹션을 넣습니다:

| [...] AddHandler php5-fcgi .php Action php5-fcgi /php5-fcgi Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization [...] |

그 후 Apache를 재시작합니다:

/etc/init.d/apache2 restart

이제 문서 루트 /var/www에 다음 PHP 파일을 생성합니다:

vi /var/www/info.php

| |

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

보시다시피 PHP5가 작동하고 있으며, Server API 줄에 표시된 대로 FPM/FastCGI를 통해 작동하고 있습니다. 아래로 스크롤하면 PHP5에서 이미 활성화된 모든 모듈을 볼 수 있습니다. MySQL은 거기에 나열되어 있지 않으므로 PHP5에서 MySQL 지원이 아직 없음을 의미합니다.

6 PHP5에서 MySQL 지원 받기

PHP에서 MySQL 지원을 받으려면 php5-mysql 패키지를 설치할 수 있습니다. 애플리케이션에 필요할 수 있는 다른 PHP5 모듈도 설치하는 것이 좋습니다. 다음과 같이 사용 가능한 PHP5 모듈을 검색할 수 있습니다:

apt-cache search php5

필요한 모듈을 선택하고 다음과 같이 설치합니다:

apt-get install php5-mysql 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

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

/etc/init.d/php5-fpm reload

이제 브라우저에서 http://192.168.0.100/info.php를 다시 로드하고 모듈 섹션으로 다시 스크롤합니다. 이제 MySQL 모듈을 포함하여 많은 새로운 모듈을 찾아야 합니다:

7 phpMyAdmin

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

apt-get install phpmyadmin

다음 질문이 표시됩니다:

자동으로 재구성할 웹 서버: <– apache2
phpmyadmin의 데이터베이스를 dbconfig-common으로 구성하시겠습니까? <– 아니오

그 후 http://192.168.0.100/phpmyadmin/에서 phpMyAdmin에 접근할 수 있습니다:

8 PHP-FPM을 Unix 소켓 사용하도록 설정하기

기본적으로 PHP-FPM은 127.0.0.1의 포트 9000에서 수신 대기합니다. TCP 오버헤드를 피하기 위해 PHP-FPM이 Unix 소켓을 사용하도록 설정하는 것도 가능합니다. 이렇게 하려면 /etc/php5/fpm/pool.d/www.conf를 엽니다…

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

… 그리고 listen 줄을 다음과 같이 변경합니다:

| [...] ;listen = 127.0.0.1:9000 listen = /tmp/php5-fpm.sock [...] |

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

/etc/init.d/php5-fpm reload

다음으로 Apache 구성 및 모든 vhost를 통해 FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -host 127.0.0.1:9000 -pass-header Authorization 줄을 FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /tmp/php5-fpm.sock -pass-header Authorization으로 변경합니다. 예를 들어 다음과 같이:

vi /etc/apache2/sites-available/default

| [...] AddHandler php5-fcgi .php Action php5-fcgi /php5-fcgi Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /tmp/php5-fpm.sock -pass-header Authorization [...] |

마지막으로 Apache를 다시 로드합니다:

/etc/init.d/apache2 reload

9 링크

저자 소개

Falko Timme는 Timme Hosting(초고속 nginx 웹 호스팅)의 소유자입니다. 그는 HowtoForge의 수석 유지 관리자(2005년부터)이며 ISPConfig의 핵심 개발자 중 한 명(2000년부터)입니다. 그는 또한 O’Reilly의 “Linux System Administration” 책에 기여했습니다.

Share: X/Twitter LinkedIn

새 게시물을 받은 편지함에서 받기

스팸은 없습니다. 언제든지 구독 해지 가능합니다.