앞써 글로 쓴대로 2019년 10월22일날 부터 php-fpm nginx 취약점이 발표되어서 내 홈서버로 사용하고있는 웹과 클라우드 서버 모두 업데이트를 진행중이다.
php의 경우 apt로 설치하게 되면 7.2까지만 설치하게 되어서 새로 작성한다.
설치환경 : Ubuntu 18.04.03 LTS Server
최신버전의 PHP-FPM 레포지토리 등록
sudo apt install software-properties-common
sudo add-apt-repository ppa:ondrej/php
sudo apt update
sudo apt install php7.3-fpm
추가로 워드프레스 등등 mysql과 함께 사용하면 아래 모듈들도 설치해줘야한다.
sudo apt install php-xml
sudo apt install php-mysql
sudo apt install php7.3-gd
설치 확인
간단하게 php -v
php-fpm 설정
먼저 php파일이 들어오면 읽어낼수있도록 nginx 설정을 바꿔준다.
vi /etc/nginx/conf.d/default.conf
로들어가서 아래내용을 넣어준다.
upstream php-handler {
server 127.0.0.1:9000;
}
server {
client_max_body_size 64M;
listen 80;
listen [::]:80;
root /var/www/html;
index index.php index.html index.htm;
server_name 서버 IP;
access_log /var/log/nginx/web.access.log main;
error_log /var/log/nginx/web.error.log;
location / {
try_files $uri $uri/ /index.php?$args;
}
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/html;
}
location ~ \.php$ {
#include /etc/nginx/snippets/fastcgi-php.conf;
fastcgi_pass php-handler;
fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
include fastcgi_params; fastcgi_read_timeout 300;
}
location ~ /\.ht {
deny all;
}
}
설정 완료후에는 service nginx restart
코드를 보면 알겠지만 php파일이 들어오면 php 핸들러 루프백:9000번으로 해석요청을한다. 그러니까 php-fpm 설정도 바꿔야겠지..?
vi /etc/php/7.3/fpm/pool.d/www.conf
의 내용중에 listen= 을찾아서 수정하면된다.
그리고 service php7.3-fpm restart
로 재시작.netstat -lntp
로 수신확인.
동작 확인
Nginx 에서 php를 사용하기위해 설치하는 php-fpm이다보니 간단한 php파일을 생성해서 동작하는지 확인하면 된다.
동작전에 파일을 만들어보겠다. 위에보면 알겠지만 root 경로가 /var/www/html 이니 참고.
vi /var/www/html/index.php
내용은 간단하게 아래 복붙
<?php
phpinfo
?>
그리고 웹으로 IP를 쳐서 들어가보자.
이렇게 뜨면 완료된거다~