• 돌아가기
  • 아래로
  • 위로
  • 목록
  • 댓글
Ubuntu

Ubuntu 22 에 php(php-fpm) 8.1 설치 및 최적화.

달소 달소 1210

4

2

​​​​​

 

안녕하세요. 달소입니다.

이번편도 Ubuntu 22에서 워드프레스나 기타 php 사이트를 운영할 수 있도록 셋팅하는 준비단계인 php설치 단계입니다.

php-fpm은 nginx와 짝꿍처럼 동작하기때문에 nginx 설치가 안되어있다면 아래글을 참고해서 설치해주세요.

 

04/29 기준 nginx repo도 업뎃됐습니다~ 안녕하세요. 달소입니다. 이번글은 앞서 설치한 Ubuntu 22.04 LTS버전에 Nginx 최신버전을 설치하는 ...
달소 | 2022.05.03

이번 Ubuntu 22에서는 php버전이 기본 8.1로 되어있기 때문에 기존에 7.4로 설치하셨던 경험이있으시다면 숫자만 잘바꿔주셔도 됩니다 ㅎ

필수모듈까지 같이설치해보겠습니다~

PHP-FPM 설치하기

apt install -y php8.1-fpm php8.1-gd php-json php8.1-mysql php8.1-curl php8.1-mbstring php8.1-intl php-imagick php8.1-xml php8.1-zip

설치가 완료되면 php -v 명령어로 버전확인이 가능합니다.

php-fpm 설정하기

php가 동작하는 방식을 여기서는 두가지 방법중 하나로 선택할 수 있습니다.

먼저 소켓으로 통신하는 소켓통신 방법과
IP로 통신하는 IP통신 방법입니다.

이걸 공부했을때가 좀 오래됐는데.. IP가 낫다고 기억해서.. 저는 ip로 진행하겠습니다.

vi /etc/php/8.1/fpm/pool.d/www.conf

의 내용중에 listen= 을찾아서 수정하면 됩니다.

겸사겸사 최적화 설정도 진행하도록 하겠습니다.

PHP 최적화(프로세스)

vi /etc/php/8.1/fpm/pool.d/www.conf

들어가서 /pm = dynamic으로 찾고 아래와같이 수정해줍니다.

pm.max_children = 120
pm.start_servers = 12
pm.min_spare_servers = 6
pm.max_spare_servers = 18

다시 재시작 시켜주고 프로세스를 확인해보면 이렇게 기본 프로세스가 12개로 되어있는걸 확인하실 수 있습니다.

PHP 최적화(메모리 및 업로드 크기)

vi /etc/php/8.1/fpm/php.ini

들어가서 차례 차례 수정해주면 됩니다. // 메모리, 용량은 용도에 맞춰

memory_limit = 1024M
post_max_size = 128M
upload_max_filesize = 128M

이것도 바꾸고 서비스를 재시작해주면 적용됩니다.

nginx 설정파일 변경

nginx php를 읽을수있게하려면 설정파일을 변경해야합니다.

vi /etc/nginx/conf.d/default.conf

기본내용은 다 날리고 다시 작성하는게 편합니다.

upstream php-handler {
    server 127.0.0.1:9000;
}
server {
    client_max_body_size 128M;
    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;
    }
}

위 파일을 수정한 뒤 nginx 를 재시작한번해주세요.
service nginx restart

php 테스트하기

테스트는 php 파일을 샘플로 만들어서 진행하겠습니다.

default 의 root 경로에 넣어주면 됩니다.

저같은 경우 /var/www/html 입니다

mkdir -p /var/www/html
vi /var/www/html/index.php

내용은 간단하게 아래 복붙

<?php
phpinfo();
?>

이제 nginx테스트때처럼 웹으로 ip를 접속해봅니다.

이렇게 php info 페이지가 잘 나오면 정상입니다.

여기에 db까지 구성하면 워드프레스를 간단하게 구축하실 수있습니다~

신고공유스크랩
2
4명이 추천
1등
zepinos 2023.04.24. 22:30
nginx 의 default.conf 설정 중 access_log 마지막에 main 은 빼야하지 않나요? 문법 오류 뜨더라구요.

댓글 쓰기 권한이 없습니다. 로그인

취소 댓글 등록

cmt alert

신고

"님의 댓글"

이 댓글을 신고하시겠습니까?

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story

본 게시판은 서버구축 게시판과 통합되었습니다.

서버구축 게시판 이동하기
분류 제목 글쓴이 날짜 조회 추천
공지 서버OS(ESXi/Linux/Router 등) 게시판 이용안내. 달소 21.11.16.17:43 586 +1
ESXi 공지 ESXi 관련 추천글 모음 5 달소 21.04.23.12:19 3760 +6
ESXi USB LAN으로 ESXi8 설치하기.(Feat. Realtek LAN) 15 달소 23.01.01.18:51 2183 +2
Assistant OS 당신이 알아야할 새로운 스탠다드 Matter란 무엇인가 5 DarkAcid 22.12.30.02:38 739 +1
Proxmox 인텔 igpu는 gvt-g를 이용해 두개 이상의 가상머신에 패스스루 해줄 수 있네요. 13 니즛 22.12.23.02:19 1380 +1
질문
normal
초코코알라 23.05.06.18:14 667 0
Proxmox
image
굿럭 23.01.05.12:59 1432 0
Linux
image
달소 23.01.05.10:23 365 0
질문
image
swift89 23.01.04.14:05 379 0
질문
image
DarkAcid 23.01.04.12:34 443 0
Linux
image
콜라 23.01.03.23:07 622 0
질문
normal
ENTJ도플랜 23.01.03.13:15 307 0
Proxmox
image
eyeball 23.01.02.14:42 1235 0
ESXi
image
달소 23.01.01.18:51 2183 +2
질문
normal
누구냐 23.01.01.00:06 465 0