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

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

달소 달소 471

1

0

​​​​​

 

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

이번편도 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까지 구성하면 워드프레스를 간단하게 구축하실 수있습니다~

신고공유스크랩
0

달소 달소
98Lv. 194128P
다음 레벨까지 1892P


메인서버 - Ryzen 5700G / Proxmox 7.2 / Ubuntu / Xpenology / 기타 VM 등등
보조서버 - Intel i9-9900ES(QQC0) / H370M / Proxmox 7.1 / 아직개발용서버로 사용중
백업스토리지서버 - DS920+ 
하드웨어,가상화 등등 여러 IT분야에 관심이 두루두루많습니다만 깊게알고있는건 없습니다 하하하

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

취소 댓글 등록

신고

"님의 댓글"

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

댓글 삭제

"님의 댓글"

삭제하시겠습니까?


목록

공유

facebooktwitterpinterestbandkakao story
번호 분류 제목 글쓴이 날짜 조회 추천
잡담 proxmox로 갈아탔습니다 7 기현 1일 전07:34 359 +2
잡담 Immich가 FUTO에 합류했습니다.(Immich 핵심 팀은 정규직으로 근무합니다.) 4 달소 2일 전11:38 277 +1
정보 오픈아이콘 제공 사이트(https://cdn.jsdelivr.net) 오류 발생 => 복구됨 2 지딱코 3일 전14:31 222 +1
3894 질문
normal
스키피95 1일 전00:07 88 0
3893 질문
normal
고심분투 1일 전17:10 171 0
3892 질문
image
경호 1일 전15:50 83 0
3891 질문
normal
경호 1일 전13:23 53 0
3890 잡담
image
기현 1일 전07:34 359 +2
3889 잡담
image
keiminem 2일 전13:12 458 0
3888 잡담
normal
달소 2일 전11:38 277 +1
3887 질문
image
EXP 3일 전23:48 88 0
3886 질문
normal
홍익 3일 전19:26 211 0
3885 정보
image
지딱코 3일 전14:31 222 +1
3884 가이드
image
달소 4일 전22:22 372 +3
3883 가이드
image
ljr10 4일 전08:20 172 0
3882 가이드
image
달소 4일 전06:46 189 +1
3881
image
달소 4일 전05:50 217 +6
3880 정보
image
달소 4일 전05:38 128 0
3879 잡담
image
달소 4일 전05:20 422 0
3878 오픈소스
image
keiminem 5일 전17:43 367 +3
3877 질문
normal
purndal 5일 전14:32 243 0
3876 질문
image
초보나스 5일 전10:46 108 0
3875 후기
image
달소 5일 전10:03 342 0