서버 설치 · 3 min read · Jan 23, 2026
Debian Wheezy에서 PHP5(및 PHP-FPM) 및 MySQL 지원(Nginx) 설치하기
Nginx (“engine x”로 발음됨)은 무료, 오픈 소스, 고성능 HTTP 서버입니다. Nginx는 안정성, 풍부한 기능 세트, 간단한 구성 및 낮은 리소스 소비로 유명합니다. 이 튜토리얼에서는 PHP5 지원( PHP-FPM을 통해) 및 MySQL 지원이 포함된 Debian Wheezy 서버에 Nginx를 설치하는 방법을 보여줍니다 (LEMP = Linux + nginx (“ e ngine x”로 발음됨) + MySQL + PHP).
이것이 당신에게 작동할 것이라는 보장은 하지 않습니다!
1 사전 참고
이 튜토리얼에서는 호스트 이름 server1.example.com과 IP 주소 192.168.0.100을 사용합니다. 이러한 설정은 귀하의 경우 다를 수 있으므로 적절한 곳에서 교체해야 합니다.
2 MySQL 5 설치하기
MySQL을 설치하기 위해 다음 명령어를 실행합니다:
apt-get install mysql-server mysql-clientMySQL 루트 사용자에 대한 비밀번호를 제공하라는 메시지가 표시됩니다. 이 비밀번호는 사용자 root@localhost와 [email protected]에 유효하므로 나중에 MySQL 루트 비밀번호를 수동으로 지정할 필요가 없습니다:
MySQL “root” 사용자에 대한 새 비밀번호: <– yourrootsqlpassword
MySQL “root” 사용자에 대한 비밀번호를 반복 입력하세요: <– yourrootsqlpassword
3 Nginx 설치하기
Nginx는 Debian Wheezy용 패키지로 제공되며 다음과 같이 설치할 수 있습니다:
apt-get install nginx그 후 Nginx를 시작합니다:
/etc/init.d/nginx start웹 서버의 IP 주소 또는 호스트 이름을 브라우저에 입력하세요 (예: http://192.168.0.100), 그러면 다음 페이지가 표시됩니다:

Debian Wheezy의 기본 Nginx 문서 루트는 /usr/share/nginx/www입니다.
4 PHP5 설치하기
PHP5를 Nginx에서 PHP-FPM을 통해 작동하게 할 수 있습니다 (PHP-FPM (FastCGI Process Manager)은 모든 크기의 사이트, 특히 더 바쁜 사이트에 유용한 몇 가지 추가 기능이 있는 대체 PHP FastCGI 구현) 다음과 같이 설치합니다:
apt-get install php5-fpmPHP-FPM은 /var/run/php5-fpm.sock 소켓에서 FastCGI 서버를 실행하는 데몬 프로세스입니다 (init 스크립트는 /etc/init.d/php5-fpm입니다).
5 Nginx 구성하기
Nginx 구성은 /etc/nginx/nginx.conf에 있으며 지금 열어보겠습니다:
vi /etc/nginx/nginx.conf구성은 이해하기 쉽습니다 (여기에서 더 많은 정보를 배울 수 있습니다: http://wiki.nginx.org/NginxFullExample 및 여기: http://wiki.nginx.org/NginxFullExample2)
먼저 (선택 사항) 작업자 프로세스 수를 조정하고 keepalive_timeout을 합리적인 값으로 설정합니다:
| [...] worker_processes 4; [...] keepalive_timeout 2; [...] |
가상 호스트는 server {} 컨테이너에서 정의됩니다. 기본 vhost는 /etc/nginx/sites-available/default 파일에 정의되어 있습니다. 다음과 같이 수정해 보겠습니다:
vi /etc/nginx/sites-available/default| [...] server { listen 80; ## listen for ipv4; this line is default and implied listen [::]:80 default_server ipv6only=on; ## listen for ipv6 root /usr/share/nginx/www; index index.php index.html index.htm; # Make site accessible from http://localhost/ server_name localhost; location / { # First attempt to serve request as file, then # as directory, then fall back to displaying a 404. try_files $uri $uri/ /index.html; # Uncomment to enable naxsi on this location # include /etc/nginx/naxsi.rules } location /doc/ { alias /usr/share/doc/; autoindex on; allow 127.0.0.1; allow ::1; deny all; } # Only for nginx-naxsi used with nginx-naxsi-ui : process denied requests #location /RequestDenied { # proxy_pass http://127.0.0.1:8080; #} #error_page 404 /404.html; # redirect server error pages to the static page /50x.html # error_page 500 502 503 504 /50x.html; location = /50x.html { root /usr/share/nginx/www; } # pass the PHP scripts to FastCGI server listening on 127.0.0.1:9000 # location ~ \.php$ { try_files $uri =404; fastcgi_split_path_info ^(.+\.php)(/.+)$; # NOTE: You should have "cgi.fix_pathinfo = 0;" in php.ini # With php5-cgi alone: #fastcgi_pass 127.0.0.1:9000; # With php5-fpm: fastcgi_pass unix:/var/run/php5-fpm.sock; fastcgi_index index.php; include fastcgi_params; } # deny access to .htaccess files, if Apache's document root # concurs with nginx's one # location ~ /\.ht { deny all; } } [...] |
두 listen 줄의 주석을 제거하여 Nginx가 포트 80에서 IPv4 및 IPv6를 수신하도록 합니다.
servername ;는 이것을 기본 catchall vhost로 만듭니다 (물론, www.example.com과 같은 호스트 이름을 여기 지정할 수도 있습니다).
index.php를 index 줄에 추가했습니다. root /usr/share/nginx/www;는 문서 루트가 /usr/share/nginx/www 디렉토리임을 의미합니다.
PHP에 중요한 부분은 location ~ .php$ {} 구문입니다. 이를 활성화하려면 주석을 제거하십시오. 제로 데이 익스플로잇을 방지하기 위해 try_files $uri =404; 줄을 추가했습니다 (http://wiki.nginx.org/Pitfalls#Passing_Uncontrolled_Requests_to_PHP 및 http://forum.nginx.org/read.php?2,88845,page=3 참조).
이제 파일을 저장하고 Nginx를 다시 로드합니다:
/etc/init.d/nginx reload다음으로 /etc/php5/fpm/php.ini를 엽니다…
vi /etc/php5/fpm/php.ini… 그리고 cgi.fix_pathinfo=0으로 설정합니다:
| [...] ; cgi.fix_pathinfo는 CGI에 대한 *실제* PATH_INFO/PATH_TRANSLATED 지원을 제공합니다. PHP의 ; 이전 동작은 PATH_TRANSLATED를 SCRIPT_FILENAME으로 설정하고, ; PATH_INFO가 무엇인지 이해하지 못하는 것이었습니다. PATH_INFO에 대한 자세한 정보는 cgi 사양을 참조하십시오. 1로 설정하면 PHP CGI가 ; 경로를 사양에 맞게 수정합니다. 0으로 설정하면 PHP가 이전과 같이 동작합니다. 기본값은 1입니다. 스크립트를 수정하여 ; PATH_TRANSLATED 대신 SCRIPT_FILENAME을 사용해야 합니다. ; http://php.net/cgi.fix-pathinfo cgi.fix_pathinfo=0 [...] |
PHP-FPM을 다시 로드합니다:
/etc/init.d/php5-fpm reload이제 문서 루트 /usr/share/nginx/www에 다음 PHP 파일을 생성합니다:
vi /usr/share/nginx/www/info.php| |
이제 브라우저에서 해당 파일을 호출합니다 (예: http://192.168.0.100/info.php):

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