[Rocky] NGINX PHP TCP/IP 통신

2024. 12. 10. 14:40·Linux/Rocky 8.10

유닉스 소켓 포스팅은

 

 

[Rocky] NGINX PHP 유닉스 소켓통신

보통 웹을 찍먹해보고 싶거나, 이 일을 시작한지 얼마 안된 주니어 분들은 아주 밑의 명령어들을 남발을 했을 것이라고 생각함# dnf install nginx mysql# dnf install php php-fpmnginx와 php 간에는 소켓 방식

hochelin.co.kr

개념을 잘 모른다면 잡고가는게 맞는것같다

이어서 하면 

이제 프로세스에서 php-fpm을 다 죽이자

일단 현재 php가 살아있는지 확인

# ps aux | grep php-fpm

php-fpm을 죽일건데, 

PID로 kill을 해도되고, killall로 프로세스 이름으로 해도된다. 

# killall php-fpm

다시 조회

# ps aux | grep php-fpm

 

php-fpm 프로세스가 사라졌으니 

이제 TCP/IP 기반 소켓으로 통신을 할건데,

nginx와 php-fpm의 각각 서비스를 시작을 한다.

연결 과정 중 nginx에서 php-fpm이 설정한 listen을 토대로 통신을 함

실제로 해보자

nginx 설정파일 디렉터리의 conf / nginx.conf

worker_processes  1;

events {
    worker_connections  1024;
}


http {
    include       mime.types;
    default_type  application/octet-stream;
        
         upstream php_load {
                server 127.0.0.1:9700 weight=1 max_fails=5 fail_timeout=10s;
                
        }
        include vhosts/*.conf;
}

여기다가 직접 server 설정을 해도 되는데, 

확장성을 위해 각 서버는 따로 관리함

conf 디렉터리에 나는 vhosts라는 디렉터리를 만들었다

그 안에 vhost.conf conf 파일을 만들었다.

        server {
                listen       80;
                server_name  222.234.220.133;
                root /usr/local/nginx/html;
                index index.html index.htm;

                access_log logs/9700-access_log;
                error_log logs/9700-error_log;


                location ~* \.php$ {
                        fastcgi_pass   php_load;
                        fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name;
                        fastcgi_read_timeout 300s;
                        fastcgi_buffers 8 16k;
                        fastcgi_buffer_size 32k;
                        include /usr/local/nginx/conf/fastcgi_params;
                }
                
       }

nginx.conf 파일에서 vhost.conf 파일을 include 하면서 upstream 에 정의된 php_load 블록에 대한 설정을 vhost.conf 파일의 fastcgi_pass 블록을 참조함

이제 php-fpm 설정파일을 보자

역시 관리의 효율성 및 확장성을 위해 9700.conf파일을 따로 만들었다

php 설치 경로가 어디냐고 나한테는 묻지말아라..ㅠㅠ

[global]
pid = /usr/local/php7/var/run/php-fpm9700.pid

[php9700]
user = nobody
group = nobody
listen = 127.0.0.1:9700
pm = dynamic
pm.max_children = 100
pm.start_servers = 10
pm.min_spare_servers = 10
pm.max_spare_servers = 15
pm.max_requests = 8192
php_admin_value[error_log] = /usr/local/php7/var/log/fpm-php9700.log
php_admin_flag[log_errors] = on
php_admin_value[memory_limit] = 2G
php_admin_value[date.timezone] = Asia/Seoul

이제 php 디렉터리의 sbin 디렉터리로 들가자

그럼 php-fpm 파일이 있는데

그냥 한 번 실행해보자

이런 이유가 뜨는 이유가 뭘까?

php 소스 설치한 디렉터리에 가서 ./configure --help를 보자

이 중 
  --with-config-file-path=PATH
                          Set the path in which to look for php.ini [PREFIX/lib]
                          Set the path where to scan for configuration files
부분을 볼 수 있는데
  --with-config-file-path=PATH
                          php.ini [PREFIX/lib]를 찾을 경로를 설정합니다.
                          구성 파일을 검색할 경로를 설정합니다.

즉 configure 할 때 config-file-path를 지정해줬으면 이런 에러가 안날테지만,

지정을 안해줬으니 기본 default 값인

/usr/local/php7/etc/php-fpm.conf' 파일을 찾는데,

있을리가 없지

그래서 시작할 때 옵션을 줘야한다

# ./php-fpm --help

여러 옵션들 중 눈에 띄는 옵션 --fpm-config

이 옵션을 사용해 아까 9700.conf 파일을 적용시켜주자

# ./php-fpm --fpm-config /usr/local/php7/etc/php-fpm.d/9700.conf

다시 프로세스 조회를 해본다

# ps aux | grep php-fpm

이제 phpinfo 테스트 파일을 만들어서 접속이 되는지 보자

<?php
        phpinfo();
?>

정상적으로 접속이 된다.

혹시나 안되는 분들은 댓글 남겨주세용

저작자표시 비영리

'Linux > Rocky 8.10' 카테고리의 다른 글

[Rocky] NGINX PHP 유닉스 소켓통신  (0) 2024.12.04
ssh 키 등록 후에도 접속안됨  (0) 2024.11.21
[Rocky] ssh 패스워드 없이 접속 - 공개키 접속  (1) 2024.11.04
[Rocky] iptables 방화벽 설정  (0) 2024.09.05
[Rocky] firewall 아웃바운드 설정  (0) 2024.09.02
'Linux/Rocky 8.10' 카테고리의 다른 글
  • [Rocky] NGINX PHP 유닉스 소켓통신
  • ssh 키 등록 후에도 접속안됨
  • [Rocky] ssh 패스워드 없이 접속 - 공개키 접속
  • [Rocky] iptables 방화벽 설정
ssnong
ssnong
캠핑 맛집 여행 윈도우 리눅스 PHP DB 등 기록 공간입니다
  • ssnong
    호슐랭
    ssnong
  • 전체
    오늘
    어제
    • 분류 전체보기 (42)
      • Linux (21)
        • ubuntu (4)
        • Rocky 8.10 (16)
      • Windows (5)
      • git (3)
      • Lang (3)
        • javascript (3)
        • PHP (0)
      • Database (3)
        • MySQL8.0 (2)
        • MariaDB (1)
        • PostgreSQL(17.2) (0)
      • AWS (1)
      • ERROR! (4)
  • 링크

    • 일상은 여기서!
  • 공지사항

  • 인기 글

  • 태그

    linux postgresql설치
    리눅스 nftables
    nginx php 소켓통신
    git push
    postgresql.conf 설정
    rocky 8 postgresql 설치
    ssh 접속
    centos nftables
    nftables
    리눅스
    linux nftables
    리눅스 nft
    git pull
    pg_hba.conf 설정
    rocky
    hyper-v vm 생성
    linux nft
    Linux
    rocky postgresql설치
    rocky nftables
  • 최근 댓글

  • 최근 글

  • hELLO· Designed By정상우.v4.10.0
ssnong
[Rocky] NGINX PHP TCP/IP 통신
상단으로

티스토리툴바