서버 설정 · 4 min read · Oct 22, 2025
CentOS 6.3에서 PHP5(및 PHP-FPM) 및 MySQL 지원으로 Nginx 설치하기
CentOS 6.3에서 PHP5(및 PHP-FPM) 및 MySQL 지원으로 Nginx 설치하기
버전 1.0
저자: Falko Timme
Twitter에서 나를 팔로우하세요
Nginx(발음: “엔진 엑스”)는 무료이며 오픈 소스인 고성능 HTTP 서버입니다. Nginx는 안정성, 풍부한 기능 세트, 간단한 구성 및 낮은 자원 소비로 잘 알려져 있습니다. 이 튜토리얼에서는 PHP5 지원( PHP-FPM을 통해) 및 MySQL 지원으로 CentOS 6.3 서버에 Nginx를 설치하는 방법을 보여줍니다.
이것이 귀하에게 작동할 것이라는 보장은 하지 않습니다!
1 사전 참고
이 튜토리얼에서는 호스트 이름 server1.example.com과 IP 주소 192.168.0.100을 사용합니다. 이러한 설정은 귀하의 경우 다를 수 있으므로 적절한 곳에서 교체해야 합니다.
2 추가 리포지토리 활성화
php-fpm은 공식 CentOS 리포지토리에서 사용할 수 없지만 EPEL 리포지토리에 의존하는 Remi RPM 리포지토리에서 사용할 수 있습니다. 두 리포지토리를 다음과 같이 활성화할 수 있습니다:
rpm --import https://fedoraproject.org/static/0608B895.txt
rpm -ivh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-7.noarch.rpmrpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpmyum install yum-priorities/etc/yum.repos.d/epel.repo를 편집합니다…
vi /etc/yum.repos.d/epel.repo… 그리고 [epel] 섹션에 priority=10 줄을 추가합니다:
| [epel] name=Extra Packages for Enterprise Linux 6 - $basearch #baseurl=http://download.fedoraproject.org/pub/epel/6/$basearch mirrorlist=https://mirrors.fedoraproject.org/metalink?repo=epel-6&arch=$basearch failovermethod=priority enabled=1 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-EPEL-6 [...] |
그런 다음 /etc/yum.repos.d/remi.repo의 [remi] 섹션에 대해 동일한 작업을 수행하고 enabled를 1로 변경합니다:
vi /etc/yum.repos.d/remi.repo| [remi] name=Les RPM de remi pour Enterprise Linux $releasever - $basearch #baseurl=http://rpms.famillecollet.com/enterprise/$releasever/remi/$basearch/ mirrorlist=http://rpms.famillecollet.com/enterprise/$releasever/remi/mirror enabled=1 priority=10 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi failovermethod=priority [remi-test] name=Les RPM de remi en test pour Enterprise Linux $releasever - $basearch #baseurl=http://rpms.famillecollet.com/enterprise/$releasever/test/$basearch/ mirrorlist=http://rpms.famillecollet.com/enterprise/$releasever/test/mirror enabled=0 gpgcheck=1 gpgkey=file:///etc/pki/rpm-gpg/RPM-GPG-KEY-remi |
3 MySQL 5 설치하기
먼저 다음과 같이 MySQL 5를 설치합니다:
yum install mysql mysql-server그런 다음 MySQL의 시스템 시작 링크를 생성하여 시스템이 부팅될 때마다 MySQL이 자동으로 시작되도록 하고 MySQL 서버를 시작합니다:
chkconfig --levels 235 mysqld on
/etc/init.d/mysqld start이제 네트워킹이 활성화되었는지 확인합니다. 다음을 실행합니다:
netstat -tap | grep mysql다음과 같은 결과가 표시되어야 합니다:
[root@server1 ~]# netstat -tap | grep mysql
tcp 0 0 *:mysql *:* LISTEN 1799/mysqld
[root@server1 ~]#만약 그렇지 않다면 /etc/my.cnf를 편집하고 skip-networking 옵션을 주석 처리합니다:
vi /etc/my.cnf| [...] #skip-networking [...] |
그리고 MySQL 서버를 재시작합니다:
/etc/init.d/mysqld restart다음 명령을 실행하여 root 사용자에 대한 비밀번호를 설정합니다(그렇지 않으면 누구나 귀하의 MySQL 데이터베이스에 접근할 수 있습니다!):
mysql_secure_installationNOTE: 이 스크립트의 모든 부분을 실행하는 것이 프로덕션에서 사용되는 모든 MySQL 서버에 권장됩니다! 각 단계를 주의 깊게 읽으십시오!
MySQL에 로그인하여 보안을 설정하려면 현재 root 사용자에 대한 비밀번호가 필요합니다. MySQL을 방금 설치했으며 root 비밀번호를 아직 설정하지 않았다면 비밀번호는 비어 있으므로 여기서 그냥 Enter를 누르십시오.
현재 root 비밀번호 입력(없으면 Enter): <– ENTER
OK, 비밀번호가 성공적으로 사용되었습니다. 계속 진행합니다…
root 비밀번호를 설정하면 적절한 권한 없이 누구도 MySQL root 사용자로 로그인할 수 없도록 보장합니다.
root 비밀번호를 설정하시겠습니까? [Y/n] <– ENTER
새 비밀번호: <– yourrootsqlpassword
새 비밀번호를 다시 입력하십시오: <– yourrootsqlpassword
비밀번호가 성공적으로 업데이트되었습니다!
권한 테이블을 다시 로드하는 중..
… 성공!
기본적으로 MySQL 설치에는 익명 사용자가 있어 누구나 사용자 계정을 생성하지 않고도 MySQL에 로그인할 수 있습니다. 이는 테스트 용도로만 의도되며 설치를 조금 더 원활하게 진행하기 위한 것입니다. 프로덕션 환경으로 이동하기 전에 이를 제거해야 합니다.
익명 사용자를 제거하시겠습니까? [Y/n] <– ENTER
… 성공!
일반적으로 root는 ‘localhost’에서만 연결할 수 있어야 합니다. 이는 누군가가 네트워크에서 root 비밀번호를 추측할 수 없도록 보장합니다.
원격으로 root 로그인을 허용하지 않으시겠습니까? [Y/n] <– ENTER
… 성공!
기본적으로 MySQL에는 누구나 접근할 수 있는 ‘test’라는 데이터베이스가 있습니다. 이는 테스트 용도로만 의도되며 프로덕션 환경으로 이동하기 전에 제거해야 합니다.
테스트 데이터베이스 및 접근 권한을 제거하시겠습니까? [Y/n] <– ENTER
- 테스트 데이터베이스 삭제 중…
… 성공! - 테스트 데이터베이스에 대한 권한 제거 중…
… 성공!
권한 테이블을 다시 로드하면 지금까지의 모든 변경 사항이 즉시 적용됩니다.
지금 권한 테이블을 다시 로드하시겠습니까? [Y/n] <– ENTER
… 성공!
정리 중…
모든 작업이 완료되었습니다! 위의 모든 단계를 완료했다면 MySQL 설치가 이제 안전해야 합니다.
MySQL을 사용해 주셔서 감사합니다!
[root@server1 ~]#
4 Nginx 설치하기
Nginx는 CentOS 6.3( EPEL에서) 패키지로 제공되며 다음과 같이 설치할 수 있습니다:
yum install nginx그런 다음 nginx의 시스템 시작 링크를 생성하고 시작합니다:
chkconfig --levels 235 nginx on
/etc/init.d/nginx start웹 서버의 IP 주소 또는 호스트 이름을 브라우저에 입력합니다(예: http://192.168.0.100), 그러면 nginx 환영 페이지가 표시됩니다:

5 PHP5 설치하기
PHP-FPM을 통해 Nginx에서 PHP5를 작동시킬 수 있습니다(PHP-FPM(FastCGI Process Manager)은 모든 크기의 사이트, 특히 바쁜 사이트에 유용한 몇 가지 추가 기능이 있는 대체 PHP FastCGI 구현입니다). 다음과 같이 php-fpm과 php-cli 및 MySQL을 PHP 스크립트에서 사용하려면 필요한 php-mysql과 같은 PHP5 모듈을 함께 설치할 수 있습니다:
yum install php-fpm php-cli php-mysql php-gd php-imap php-ldap php-odbc php-pear php-xml php-xmlrpc php-magickwand php-magpierss php-mbstring php-mcrypt php-mssql php-shout php-snmp php-soap php-tidyAPC는 PHP 중간 코드를 캐싱하고 최적화하기 위한 무료 오픈 PHP opcode 캐셔입니다. 이는 eAccelerator 및 Xcache와 같은 다른 PHP opcode 캐셔와 유사합니다. PHP 페이지 속도를 높이기 위해 이러한 것 중 하나를 설치하는 것이 강력히 권장됩니다.
APC는 다음과 같이 설치할 수 있습니다:
yum install php-pecl-apc그런 다음 /etc/php.ini를 열고 cgi.fix_pathinfo=0으로 설정합니다:
vi /etc/php.ini| [...] ; 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://www.php.net/manual/en/ini.core.php#ini.cgi.fix-pathinfo cgi.fix_pathinfo=0 [...] |
(이렇게 해야 하는 이유에 대한 자세한 내용은 http://wiki.nginx.org/Pitfalls를 읽어보십시오.)
또한 다음과 같은 오류를 피하기 위해:
[08-Aug-2011 18:07:08] PHP Warning: phpinfo(): 시스템의 시간대 설정에 의존하는 것은 안전하지 않습니다.
필수적으로 date.timezone 설정 또는 date_default_timezone_set() 함수를 사용해야 합니다.
이러한 방법 중 하나를 사용했지만 여전히 이 경고가 표시되면 시간대 식별자를 잘못 입력했을 가능성이 높습니다.
대신 '/usr/share/nginx/html/info.php'의 2행에서 'Europe/Berlin'을 선택했습니다.… /var/log/php-fpm/www-error.log에서 PHP 스크립트를 브라우저에서 호출할 때, /etc/php.ini에서 date.timezone을 설정해야 합니다:
| [...] [Date] ; 날짜 함수에서 사용하는 기본 시간대를 정의합니다. ; http://www.php.net/manual/en/datetime.configuration.php#ini.date.timezone date.timezone = "Europe/Berlin" [...] |
시스템의 올바른 시간대를 찾으려면 다음을 실행합니다:
cat /etc/sysconfig/clock[root@server1 nginx]# cat /etc/sysconfig/clock
ZONE="Europe/Berlin"
[root@server1 nginx]#다음으로 php-fpm의 시스템 시작 링크를 생성하고 시작합니다:
chkconfig --levels 235 php-fpm on
/etc/init.d/php-fpm startPHP-FPM은 포트 9000에서 FastCGI 서버를 실행하는 데몬 프로세스입니다.
새 게시물을 받은 편지함에서 받기
스팸은 없습니다. 언제든지 구독 해지 가능합니다.