CentOS 7 : Nginx + PHP7 + MariaDB 설치 #1
CentOS 7 : Nginx + PHP7 + MariaDB 설치 #2
CentOS 7 : Nginx + PHP7 + MariaDB 설치 #3
CentOS 7 : Nginx + PHP7 + MariaDB 설치 #4
이전 글에 이어서 CentOS 7 에서 PHP 7.0 설치를 알아보자.
2. PHP7 설치
remi 저장소를 추가한다.
yum install http://rpms.remirepo.net/enterprise/remi-release-7.rpm
remi-release는 epel-release에 의존성이 있다. epel-release 가 설치되어 있겠지만 확인 해보자.
# rpm -qa | grep remi-release
활성화를 위하여 remi.repo, remi-php70.repo 파일을 수정하거나 php70 설치시 –enablerepo 로 remi 저장소를 활성화해야 한다.
vi /etc/yum.repo.d/remi.repo
[remi]
...
enabled=0 <= 이 부분을 1로 수정한다.
...
# vi /etc/yum.repo.d/remi-php70.repo
[remi-php70]
...
enabled=0 <= 이 부분을 1로 수정한다.
...
저장소가 추가 되었으면 php 및 주로 사용하는 모듈을 설치한다.
yum install php70-php-cli php70-php-fpm php70-php-mysqlnd php70-php-mbstring php70-php-opcache php70-php-xml php70-php-gd php70-php-pecl-zip
전역 설정 파일을 아래와 같이 생성한다.
vi /etc/opt/remi/php70/php.d/z-php.ini
[PHP]
date.timezone = Asia/Seoul
expose_php = Off
; 레거시 코드에 <? 사용된 코드가 많으므로, 소스 노출 예방 차원에서 활성화
;short_open_tag = On
; 에러 로그를 syslog(/var/log/messages) 에 남기기
error_log = syslog
; 에러를 화면에 보여주기. 개발서버이거나 레거시 코드라 별도 에러 처리가 불가할 경우 On
;display_errors = On
;display_startup_errors = On
; 에러 출력 레벨.
;error_reporting = E_ALL & ~E_DEPRECATED & ~E_STRICT ; 기본값. 강력한 에러 확인!
;error_reporting = E_ALL & ~E_DEPRECATED & ~E_NOTICE ; 레거시 호환용. 선언되지 않은 변수 사용시 에러 등 숨김.
[Upload]
upload_max_filesize = 20M
post_max_size = 30M
[OPcache]
; 최대 메모리 사용량. 기본값은 128MB 이며 사이트나 패키지가 많을 때 적절히 늘려주어야 함. 단, 서버 메모리가 충분한 경우에 한함
;opcache.memory_consumption=128
; 최대 캐싱 파일수. 기본 4000 개로는 기본 5000개인 라라벨도 힘들기 때문에 1만~10만개 권장.
opcache.max_accelerated_files=100000
; 캐싱된 파일의 수정 여부 확인 주기.
; 기본 2초는 파일 수정 시간이 2초 지나야 해당 파일의 수정여부를 체크한다는 의미입니다.
; 즉, 소스 수정하고 2초 이내에 화면 새로고침해도 수정된 결과가 반영되지 않는다는 의미입니다.
;opcache.revalidate_freq=2 ; 운영용으로 적합. 최적의 성능.
;opcache.revalidate_freq=1 ; 운영하면서 라이브로 수정할 경우 적합.
;opcache.revalidate_freq=0 ; 개발서버일 경우 0초는 필수! 수정하고 즉시 결과 확인 가능.
; PHP CLI (/usr/bin/php) 실행시, OPcache 활성화 여부.
; 반복되는 실행시 속도가 더 느려지거나, 랜덤하게 에러가 발생하는 사례가 있었으므로 미사용 권장.
;opcache.enable_cli=1
Nginx 와 연동을 위하여 소켓 파일 폴더를 생성하고 php-fpm 데몬 설정 파일을 아래와 같이 수정한다.
mkdir /var/run/php-fpm
vi /etc/opt/remi/php70/php-fpm.d/www.conf
...
user = nginx
group = nginx
...
security.limit_extensions = .php
...
listen = /var/run/php-fpm/php-fpm.sock
...
소켓 파일 및 캐쉬, 세션 폴더들의 그룹을 수정한다.
chgrp nginx /var/run/php-fpm/php-fpm.sock
chgrp nginx /var/opt/remi/php70/lib/php/*
php-fpm 데몬을 부팅시 실행으로 설정하고 서비스를 시작한다.
systemctl enable php70-php-fpm
systemctl start php70-php-fpm
터미널 실행을 위해 심볼릭 링크를 추가한다.
ln -sv /usr/bin/php70 /usr/bin/php
Nginx 에 fastcgi 설정을 아래와 같이 추가한다.
vi /etc/nginx/conf.d/1-fastcgi-upstream.conf
# http://nginx.org/en/docs/http/ngx_http_upstream_module.html
upstream php70_backend {
server unix:/var/run/php-fpm/php-fpm.sock;
# server 127.0.0.1:9000;
}
vi /etc/nginx/fastcgi_php.conf
location ~ \.(php)$ {
try_files $uri =404;
fastcgi_pass $APP_BACKEND;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}
Nginx 설정이 올바르게 되어 있는지 테스트 해보고 설정을 재적용 한다.
nginx -t
systemctl reload nginx
다음은 MariaDB 설치에 대해서 알아보자.