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

OpenSUSE 12.1에서 Apache2와 함께 PHP5-FPM 사용하기 - 2페이지

6 Apache 구성

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

| AllowOverride None Options +ExecCGI -Includes SetHandler fastcgi-script Order allow,deny Allow from all DirectoryIndex index.html index.shtml index.cgi index.php 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/mod_fastcgi.conf에 넣거나 PHP-FPM을 사용해야 하는 각 vhost에 배치할 수 있습니다. 모든 vhost에서 PHP-FPM을 사용하고 싶으므로 /etc/apache2/conf.d/mod_fastcgi.conf를 엽니다…

vi /etc/apache2/conf.d/mod_fastcgi.conf

… 그리고 다음 섹션을 끝에 추가합니다:

| [...] AllowOverride None Options +ExecCGI -Includes SetHandler fastcgi-script Order allow,deny Allow from all DirectoryIndex index.html index.shtml index.cgi index.php 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 |

/usr/lib/cgi-bin/ 디렉토리가 존재해야 하므로 다음과 같이 생성합니다:

mkdir /usr/lib/cgi-bin/

그 후 Apache를 재시작합니다:

systemctl restart apache2.service

이제 기본 Apache vhost의 문서 루트 /srv/www/htdocs에 다음 PHP 파일을 생성합니다:

vi /srv/www/htdocs/info.php

| |

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

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

7 PHP5에서 MySQL 지원 받기

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

yast2 -i php5-mysql php5-bcmath php5-bz2 php5-calendar php5-ctype php5-curl php5-dom php5-ftp php5-gd php5-gettext php5-gmp php5-iconv php5-imap php5-ldap php5-mbstring php5-mcrypt php5-odbc php5-openssl php5-pcntl php5-pgsql php5-posix php5-shmop php5-snmp php5-soap php5-sockets php5-sqlite php5-sysvsem php5-tokenizer php5-wddx php5-xmlrpc php5-xsl php5-zlib php5-exif php5-fastcgi php5-pear php5-sysvmsg php5-sysvshm

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

systemctl reload php-fpm.service

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

8 phpMyAdmin

phpMyAdmin은 MySQL 데이터베이스를 관리할 수 있는 웹 인터페이스입니다.

phpMyAdmin은 다음과 같이 설치할 수 있습니다:

yast2 -i phpMyAdmin

나중에 ISPConfig를 통해 생성된 모든 웹사이트에서 /phpmyadmin(예: http://www.example.com/phpmyadmin) 및 /phpMyAdmin(예: http://www.example.com/phpMyAdmin)를 사용하여 phpMyAdmin에 접근할 수 있도록 하려면 /etc/apache2/conf.d/phpMyAdmin.conf를 열고…

vi /etc/apache2/conf.d/phpMyAdmin.conf

… 다음 두 개의 별칭을 맨 처음에 추가합니다:

| Alias /phpMyAdmin /srv/www/htdocs/phpMyAdmin Alias /phpmyadmin /srv/www/htdocs/phpMyAdmin [...] |

Apache를 재시작하고 PHP-FPM을 다시 로드합니다:

systemctl restart apache2.service  
systemctl reload php-fpm.service

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

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

기본적으로 PHP-FPM은 127.0.0.1의 포트 9000에서 수신 대기합니다. TCP 오버헤드를 피하기 위해 PHP-FPM이 Unix 소켓을 사용하도록 설정할 수도 있습니다. 이렇게 하려면 /etc/php5/fpm/php-fpm.conf를 열고…

vi /etc/php5/fpm/php-fpm.conf

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

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

소켓의 소유자, 그룹 및 권한을 다음과 같이 설정합니다:

| [...] ; Set permissions for unix socket, if one is used. In Linux, read/write ; permissions must be set in order to allow connections from a web server. Many ; BSD-derived systems allow connections regardless of permissions. ; Default Values: user and group are set as the running user ; mode is set to 0666 listen.owner = nobody listen.group = nobody listen.mode = 0666 [...] |

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

systemctl reload php-fpm.service

다음으로 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/conf.d/mod_fastcgi.conf

| [...] AllowOverride None Options +ExecCGI -Includes SetHandler fastcgi-script Order allow,deny Allow from all DirectoryIndex index.html index.shtml index.cgi index.php 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를 다시 로드합니다:

systemctl reload apache2.service

10 링크

Share: X/Twitter LinkedIn

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

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