Ubuntu 22.04에 Wordpress 설치 및 호스팅 (3. php8.1-fpm 설치)

P4·2023년 5월 13일
0
post-thumbnail

참고한 글

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


PHP 설치하기

sudo 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 버전 확인

PHP 설정

  • vim 에디터가 깔려있지 않다면 sudo apt install vim을 통해 설치해주도록 하자

  • 검색방법 : 명령모드에서 /검색할 내용 (방향키 위 아래로 스크롤), 찾았으면 Enter

  • 입력방법 : i를 누른 후 입력

  • 저장 후 나가기 : 명령모드에서 :wq, (저장만 하는건 :w)

  • 저장하지 않고 나가기 : 명령모드에서 :q!

sudo vim /etc/php/8.1/fpm/pool.d/www.conf
  • 에디터로 들어갔으면 /listen = 을 검색해 소켓통신용 파일 링크로 되어 있는 부분을
    listen = 127.0.0.1:9000 으로 수정해주면 된다. 그 후 :wq

PHP 최적화

  • 이 부분은 참고한 글의 설정값과 똑같이 맞춰주었다.
sudo vim /etc/php/8.1/fpm/pool.d/www.conf

# 프로세스 설정값
pm.max_children = 120
pm.start_servers = 12
pm.min_spare_servers = 6
pm.max_spare_servers = 18

########################################################################

sudo vim /etc/php/8.1/fpm/pool.d/www.conf

# 메모리 및 업로드 크기
memory_limit = 1024M
post_max_size = 128M
upload_max_filesize = 128M
# 서비스 재시작 후 프로세스 변화 확인
sudo systemctl restart php8.1-fpm
ps -ef | grep php

nginx 설정추가 (1)

  • 참고한 글에서는 그냥 default.conf의 내용을 변경했지만, 이 글에서는 관리의 용이성을 위해 sites-enabled에 설정파일을 넣어줄 것이다.
sudo vim /etc/nginx/nginx.conf
  • 이곳으로 이동해 include /etc/nginx/sites-enabled/*;줄이 있는지, 주석처리가 해제되어 있는지 확인한다.

  • server_names_hash_bucket_size 64;도 주석처리가 되어있다면 해제해준다.

sudo vim /etc/nginx/sites-available/본인이 알아보기 편한이름.conf
  • 아래 내용을 복붙 (ctrl + shift + c, ctrl + shift + v) 후 도메인 주소를 넣고 저장
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 `noip에서 발급받은 도메인주소` <-- (따옴표 제거할것);

    access_log  /var/log/nginx/web.access.log;
    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;
    }
}
  • 저장 후 sites-enabled에 심볼릭 링크 생성
    sudo ln -s /etc/nginx/sites-available/본인이 알아보기 편한이름.conf /etc/nginx/sites-enabled/본인이 알아보기 편한이름.conf

  • nginx -t로 테스트 후 이상이 없다면 sudo systemctl restart nginx


nginx 설정추가 (2)

  • php.info창이 뜨는지 확인해볼것이다.
mkdir -p /var/www/html
sudo vim /var/www/html/index.php
  • 아래 내용을 복붙한다.
<?php
phpinfo();
?>
  • 이후 외부 인터넷으로 연결된 pc로 도메인 접속시 php.info화면이 뜬다면 성공

  • 같은 LAN상에 있는 컴퓨터로는 접속이 안되서 방법을 찾았으나... 결국 발견하지 못함ㅠㅠ

  • 임시방편으로 server_name 도메인주소 서비스하는pc의ip; 두개를 적어주면 그 ip로 접속가능, 하지만 속도가 매우 느림


마치며

내부망에서 도메인 주소로 접속이 되지않아 매우 답답했었다. 사전공부를 더욱 열심히 하고 진입했어야 했다는 후회가 든다.

다음에는 DB를 설치해볼것이다.

profile
지식을 담습니다.

0개의 댓글