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

우분투/데비안에 PHP 5.3, Nginx 및 PHP-fpm 설치하기

우분투/데비안에 PHP 5.3, Nginx 및 PHP-fpm 설치하기

버전 1.1
트위터에서 나를 팔로우하세요

Apache는 대부분의 경우 메모리를 많이 사용하는 프로세스이기 때문에 사람들은 웹사이트를 호스팅할 수 있는 다양한 방법을 찾기 시작했습니다. Apache는 분명히 사용 가능한 유일한 웹 서버가 아닙니다. 몇 가지 좋은 예로는 lighttpd와 nginx가 있습니다. 이 튜토리얼에서는 우분투 서버에 설치하는 방법을 보여드리겠습니다. 이 튜토리얼은 데비안에도 적용됩니다. 아주 작은 차이만 있습니다.

준비되셨나요? 시작해봅시다.

단계 0 - 사전 노트

이 튜토리얼을 완료하기 위해서는 데비안 또는 우분투의 기본 시스템이 설치되어 있다고 가정합니다. 이것이 어떻게 이루어질 수 있는지는 다양한 튜토리얼에서 읽을 수 있습니다. 이 튜토리얼은 nginx+php를 번거롭지 않게 실행하는 데만 집중합니다.

단계 1 - Nginx

nginx 설치는 우리가 해야 할 첫 번째 단계입니다. 이는 저장소에서 다운로드하여 쉽게 수행할 수 있습니다.

sudo apt-get install nginx

기본 vhost는 제대로 작동하도록 변경해야 합니다.

sudo vim /etc/nginx/sites-available/default

구성을 위한 좋은 시작점은 다음과 같습니다:

server {
    listen   80;
    server_name  localhost;
    access_log  /var/log/nginx/localhost.access.log;

## 기본 위치
    location / {
        root   /var/www;
        index  index.php;
    }

## 이미지 및 정적 콘텐츠는 다르게 처리됨
    location ~* ^.+\.(jpg|jpeg|gif|css|png|js|ico|xml)$ {
      access_log        off;
      expires           30d;
      root /var/www;
    }

## /var/www 디렉토리의 모든 .php 파일 파싱
    location ~ .php$ {
        try_files $uri =404;
        fastcgi_split_path_info ^(.+\.php)(.*)$;
        fastcgi_pass   backend;
        fastcgi_index  index.php;
        fastcgi_param  SCRIPT_FILENAME  /var/www$fastcgi_script_name;
        include fastcgi_params;
        fastcgi_param  QUERY_STRING     $query_string;
        fastcgi_param  REQUEST_METHOD   $request_method;
        fastcgi_param  CONTENT_TYPE     $content_type;
        fastcgi_param  CONTENT_LENGTH   $content_length;
        fastcgi_intercept_errors        on;
        fastcgi_ignore_client_abort     off;
        fastcgi_connect_timeout 60;
        fastcgi_send_timeout 180;
        fastcgi_read_timeout 180;
        fastcgi_buffer_size 128k;
        fastcgi_buffers 4 256k;
        fastcgi_busy_buffers_size 256k;
        fastcgi_temp_file_write_size 256k;
    }

## .htaccess 및 .htpassword 보기 비활성화
    location ~ /\.ht {
        deny  all;
    }
}  
upstream backend {  
        server 127.0.0.1:9000;  
}  
 

좋습니다. 이제 PHP에 필요한 파일을 설치하겠습니다.

단계 2 - PHP 설치

많은 사이트가 위키, 포럼 소프트웨어, 블로그 또는 완전히 다른 것과 같은 동적 콘텐츠를 제공하기 위해 PHP에 의존합니다.

우분투를 실행 중이라면, 먼저 dotdeb 패키지에 필요한 두 가지 종속성을 해결해야 합니다. amd64 버전을 실행 중이라면 i386을 amd64로 교체해야 합니다.

데비안을 실행 중이라면 이 작업을 할 필요가 없습니다!

cd /tmp
wget http://us.archive.ubuntu.com/ubuntu/pool/main/k/krb5/libkrb53_1.6.dfsg.4~beta1-5ubuntu2_i386.deb
wget http://us.archive.ubuntu.com/ubuntu/pool/main/i/icu/libicu38_3.8-6ubuntu0.2_i386.deb
sudo dpkg -i *.deb

다시 말하지만, 이는 오직 우분투에서만 필요합니다.

튜토리얼의 나머지 부분은 우분투와 데비안 모두에 적용됩니다.

dotdeb 저장소를 APT 소스에 추가해야 하므로 PHP 5.3 및 php-fpm 패키지를 사용할 수 있습니다:

sudo echo "deb http://php53.dotdeb.org stable all" >> /etc/apt/sources.list

apt 업데이트:

sudo apt-get update

결과 텍스트에는 dotdeb가 포함되어야 합니다.

이제 PHP를 설치하겠습니다 (1부):

sudo apt-get install php5-cli php5-common php5-suhosin

나머지 설치 전에 cli를 먼저 설치해야 합니다. 그렇지 않으면 나중에 문제가 발생할 수 있습니다.

sudo apt-get install php5-fpm php5-cgi

데이터베이스를 사용하거나 특정 모듈(mcrypt, ldap, snmp 등)이 필요한 경우에도 설치할 수 있습니다.

좋습니다. 이제 nginx와 PHP가 설치되었습니다.

한 가지 사소한 언급: “php 짧은 태그” (

단계 3 - 마무리

이전에 변경한 구성 변경 사항을 반영하기 위해 nginx를 재시작합니다.

sudo /etc/init.d/nginx restart

재시작은 문제 없이 진행되어야 합니다.

php5-fpm을 설치한 후에는 시작되어야 합니다. php.ini 파일을 변경한 경우 php5-fpm을 재시작해야 합니다.

sudo /etc/init.d/php5-fpm restart

좋습니다. 이제 두 개 모두 실행 중이어야 합니다.

단계 4 - 테스트

PHP 실행이 작동하는지 테스트하기 위해 /var/www에 index.php 파일을 생성하고 다음 내용을 추가합니다:

웹 서버를 방문하면 생성된 phpinfo를 볼 수 있어야 합니다. 그렇지 않으면 뭔가 잘못된 것입니다.

단계 5 - 문제 해결 및 최종 노트

phpinfo를 보지 못했다면 뭔가 잘못되었을 수 있습니다. 무엇이 잘못되었는지 추적하기 위해 nginx 오류 로그를 확인할 수 있습니다:

sudo tail /var/log/nginx/error.log

php.ini를 변경한 경우 php5-fpm을 재시작해야 한다는 점을 기억하세요. nginx를 재시작할 필요는 없습니다.

내 예제 구성에서는 fastcgi 오류 가로채기를 활성화했습니다. 심각한 오류가 발생하면(예: “cannot redeclare class xyz”), nginx는 이 페이지를 가로채고 문제가 발생했다는 “멋진” 오류 페이지를 표시할 수 있습니다. 이렇게 하면 심각한 문제가 발생할 경우 제공되는 정보가 줄어듭니다.

이것이 마음에 들지 않으면 끌 수 있습니다.

php5-fpm이 실행 중이지 않으면 PHP 파일을 파싱할 수 없으며 nginx는 사용자에게 오류 페이지를 표시합니다.

좋습니다. 이제 우리는 완료되었고 새로운 nginx 기반 웹 서버로 PHP를 제공할 수 있습니다. Nginx는 꽤 좋으며 많은 구성을 할 수 있습니다. 리라이트가 필요하다면 nginx는 .htaccess 파일과 함께 작동하지 않음을 유의하세요. 리라이트가 작동하도록 하려면 vhost 설정을 변경해야 합니다.

Share: X/Twitter LinkedIn

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

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