Skip to main content

라즈베리파이3 OS 설치과정 – part5 (WordPress 블로그 용도)

지난번 포스팅에 이어 php를 설치합니다.

php-fpm 설치

php는 패키지로 설치합니다. nginx와 연동하기 위해서는 php-fpm을 설치해야 합니다. 이 패키지는 기본 php 패키지와는 다르게 nginx 처럼 켜고 끌 수 있습니다. 즉, php가 서버처럼 실행되는 방식이라고 볼 수 있습니다. apache 서버는 그 자체로 항상 실행되어 php 코드 실행이 필요할 때는 직접 php를 실행하는 방식이라면, nginx는 php 코드 실행이 필요한 경우 php-fpm에게 넘기고 그 결과를 받아 넘겨주는 방식으로 동작하는 차이점이 있습니다.

이 글을 작성하는 시점에서는 php7이 최신으로 기존 버전에 비해20% 이상의 성능향상이 있다고 합니다. 워드프레스 또한 이에 발마추어 php7.0을 정식으로 지원하도록 업데이트 한 바 있습니다. 하지만 현재 라즈베리파이 공식 패키지 저장소에서는 제공되지 않고 있습니다. 따라서 php7을 설치하기 위해서는 php7.0 패키지를 제공하는 다른 패키지 저장소를 등록해야 하는 과정이 필요합니다.

php7.0을 제공하는 패키지 저장소를 추가하는 과정입니다.

$ sudo nano /etc/apt/sources.list

해당 파일 맨 아래에 다음 2줄을 추가하고 저장합니다.

# php 7 from Mati75's repository (for Debian Jessie)
deb http://repozytorium.mati75.eu/raspbian jessie-backports main contrib non-free
# gpg 키를 추가합니다.
$ sudo gpg --keyserver pgpkeys.mit.edu --recv-key CCD91D6111A06851
$ gpg --keyserver pgpkeys.mit.edu --recv-key CCD91D6111A06851
# 추가한 패키지 저장소의 패키지 목록을 갱신합니다.
$ sudo apt-get update

이제 php7.0을 설치하기 위한 사전 준비 작업이 완료 되었습니다. 이제 php7.0과 자주 사용되는 라이브러리을 설치합니다.

$ sudo apt-get install php7.0-fpm php7.0-opcache php7.0-mysql php7.0-gd php7.0-curl

설치가 완료되면 php-fpm의 init 스크립트를 인식 시키고 서비스를 실행합니다.

$ sudo systemctl daemon-reload
$ sudo service php-fpm start

이제 nginx에서 php파일을 요청할 때 php-fpm 서버로 넘겨주기 위한 설정을 추가합니다.

# sudo nano /usr/local/nginx/conf/nginx.conf 실행
# 해당 파일의 server {} 블럭 안에 다음의 코드를 추가합니다.
#
# php7.0 Settings
#
location ~ \.php$ {
try_files $uri =404;
fastcgi_split_path_info ^(.+\.php)(/.+)$;
fastcgi_pass unix:/run/php/php7.0-fpm.sock;
fastcgi_index index.php;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params;
}

이제 변경한 nginx 설정을 적용시킵니다.

$ sudo service nginx reload

모든 설정이 완료 되었습니다. php 정보를 출력하는 페이지를 하나 만들고 웹브라우저를 통해 접속하여 정상적으로 php가 작동하는지 확인하는 과정을 진행합니다.

# sudo nano /usr/local/nginx/html/info.php 실행 후 다음 한 줄을 저장
<?php phpinfo(); ?>

웹브라우저로 http://라즈베리파이ip/info.php 형식으로 접속하여 php 관련 페이지가 출력되는지 확인합니다.