서버 설정 · 4 min read · Dec 30, 2025

CentOS 6.3에서 Apache2와 PHP5-FPM 사용하기

CentOS 6.3에서 Apache2와 PHP5-FPM 사용하기

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

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

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

1 사전 참고

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

2 추가 리포지토리 활성화

나중에 mod_fastcgi를 설치해야 하며, 이는 RPMforge 리포지토리에서 사용할 수 있습니다. RPMforge는 다음과 같이 활성화할 수 있습니다:

rpm --import http://dag.wieers.com/rpm/packages/RPM-GPG-KEY.dag.txt
cd /tmp  
wget http://pkgs.repoforge.org/rpmforge-release/rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm  
rpm -ivh rpmforge-release-0.5.2-2.el6.rf.x86_64.rpm

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.rpm
rpm --import http://rpms.famillecollet.com/RPM-GPG-KEY-remi  
rpm -ivh http://rpms.famillecollet.com/enterprise/remi-release-6.rpm
yum 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을 설치하려면 다음과 같이 합니다:

yum install mysql mysql-server

그런 다음 MySQL의 시스템 시작 링크를 생성하여 시스템 부팅 시 MySQL이 자동으로 시작되도록 하고 MySQL 서버를 시작합니다:

chkconfig --levels 235 mysqld on  
/etc/init.d/mysqld start

MySQL root 계정의 비밀번호를 설정합니다:

mysql_secure_installation

[root@server1 ~]# mysql_secure_installation

NOTE: RUNNING ALL PARTS OF THIS SCRIPT IS RECOMMENDED FOR ALL MySQL
SERVERS IN PRODUCTION USE! PLEASE READ EACH STEP CAREFULLY!

MySQL을 안전하게 하려면 로그인하기 위해 현재
root 사용자에 대한 비밀번호가 필요합니다.
MySQL을 방금 설치했으며
아직 root 비밀번호를 설정하지 않았다면,
비밀번호는 비어 있으므로
여기서 그냥 Enter를 누르세요.

현재 root 비밀번호 입력(없으면 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 Apache2 설치

Apache2는 CentOS 패키지로 제공되므로, 다음과 같이 설치할 수 있습니다:

yum install httpd

이제 시스템을 구성하여 부팅 시 Apache가 시작되도록 합니다…

chkconfig --levels 235 httpd on

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

/etc/init.d/httpd start

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

Apache의 기본 문서 루트는 CentOS에서 /var/www/html이며, 구성 파일은 /etc/httpd/conf/httpd.conf입니다. 추가 구성은 /etc/httpd/conf.d/ 디렉토리에 저장됩니다.

5 PHP5 설치

PHP5를 Apache2에서 PHP-FPM 및 Apache의 mod_fastcgi 모듈을 통해 작동하게 할 수 있으며, 다음과 같이 설치합니다:

yum install mod_fastcgi php-fpm

그런 다음 /etc/php.ini를 엽니다:

vi /etc/php.ini

다음과 같은 오류를 피하기 위해:

[08-Aug-2011 18:07:08] PHP Warning: phpinfo(): It is not safe to rely on the system's timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected 'Europe/Berlin' for 'CEST/2.0/DST' instead in /usr/share/nginx/html/info.php on line 2

… 브라우저에서 PHP 스크립트를 호출할 때 /var/log/php-fpm/www-error.log에 나타나지 않도록 하려면, /etc/php.ini에서 date.timezone을 설정해야 합니다:

| [...] [Date] ; Defines the default timezone used by the date functions ; 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 start

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

다음으로 Apache를 재시작합니다:

/etc/init.d/httpd restart
Share: X/Twitter LinkedIn

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

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