XAMPP 아파치 서버에서 PHP 속도개선을 위해 Apache 2.0 핸들러 에서 fastCGI 로 변경하였다면 PHP 관련 지시문 설정을 php.ini 이외에도 fastCGI에도 해줘야 합니다.
해당 설정을 위해 httpd-xampp.conf 파일을 열어주세요. XAMPP를 사용하고 계신 것이 아니라면 httpd.conf 파일 혹은 include 파일 / 폴더에 해당 내용이 있을 수 있습니다.
이번 글은 아래의 링크 PHP 속도 개선 / 윈도우 웹서버 XAMPP FastCGI 적용방법에서 부터 계속되는 이야기 입니다.
이 글의 목차
FastCGI 지시문
#
# PHP-Module setup
#
LoadFile "/xampp/php/php8ts.dll"
LoadFile "/xampp/php/libpq.dll"
LoadFile "/xampp/php/libsqlite3.dll"
LoadModule fcgid_module modules/mod_fcgid.so
<IfModule fcgid_module>
FcgidInitialEnv PATH "/xampp/php"
FcgidInitialEnv SystemRoot "C:/Windows"
FcgidInitialEnv SystemDrive "C:"
FcgidInitialEnv TEMP "/xampp/tmp"
FcgidInitialEnv TMP "/xampp/tmp"
FcgidInitialEnv windir "C:/windows"
FcgidIOTimeout 64
FcgidConnectTimeout 16
FcgidMaxRequestsPerProcess 1000
FcgidMaxProcesses 3
FcgidMaxRequestLen 8131072
# Location php.ini:
FcgidInitialEnv PHPRC "/xampp/php"
FcgidInitialEnv PHP_FCGI_MAX_REQUESTS 1000
<Files ~ "\.php$">
Options Indexes FollowSymLinks ExecCGI
AddHandler fcgid-script .php
FcgidWrapper "/xampp/php/php-cgi.exe" .php
</Files>
</IfModule>
FcgidIOTimeout 64
이 설정은 FastCGI 프로세스가 응답을 생성하는 데 소요되는 최대 시간을 정의합니다. 일반적으로 이 시간이 초과되면 웹 서버는 해당 요청을 종료하고 오류를 발생시킵니다.
보통은 이 설정을 조정하여 웹 애플리케이션이 특정 작업을 완료하는 데 필요한 시간에 맞게 설정합니다.
더 높은 값으로 설정하면 긴 처리 시간이 필요한 작업에 대해 더 많은 여유 시간을 제공할 수 있지만, 동시에 더 오랜 시간 동안 클라이언트 요청을 처리하게 되므로 서버 리소스 관리에 유의해야 합니다.
FcgidConnectTimeout 16
시간 초과 연결 / 이는 Windows에서 FastCGI 응용 프로그램에 연결을 시도하는 동안 모듈이 대기하는 최대 시간입니다
Apache 웹 서버에서 FastCGI 프로세스 간의 연결 시간 제한을 설정하는 디렉티브입니다. 이 디렉티브는 프로세스가 서버에 연결되는 데 허용되는 시간을 지정합니다. 만약 지정된 시간 동안에 연결이 이루어지지 않으면, 연결 시간 초과 오류가 발생합니다.
위의 16값으로 설정하면 FastCGI프로세스가 서버에 연결되는 데 최대 16초까지 허용됩니다. 이 값을 조절하여 서버의 요구에 맞게 연결 시간을 조정해 보세요.
FcgidMaxRequestsPerProcess 1000
이 옵션은 하나의 FastCGI 프로세스가 처리할 수 있는 최대 요청 수를 지정합니다. 이 설정을 사용하면 웹 서버의 안정성을 향상시키고 메모리 누수를 방지할 수 있습니다.
예를 들어, “FcgidMaxRequestsPerProcess”를 1000으로 설정하면 각 프로세스가 1000개의 요청을 처리한 후에 재시작됩니다.
이를 통해 장기간 실행되는 프로세스가 불안정해지는 것을 방지하고 메모리 소비를 제한할 수 있습니다.
다만 여러개의 요청을 한번에 처리해야하는 경우 (예를 들면 phpMyadmin 에서 DB복원) 이 값을 크게 늘려주셔야 합니다.
FcgidMaxProcesses 3
이 설정은 FastCGI 프로세스의 최대 개수를 제어합니다. FastCGI는 웹 서버와 외부 프로세스 간의 통신을 효율적으로 처리하여 웹 서버의 성능을 향상시키는 데 사용됩니다.
설정 값은 서버의 성능, 리소스 및 사용 중인 애플리케이션에 따라 다르며, 너무 높게 설정하면 서버 부하가 발생할 수 있습니다. 설정을 변경할 때는 신중하게 조절하는 것이 좋습니다.
FcgidMaxRequestLen 8131072
이 매개변수는 FastCGI 프로세스에 전송되는 요청의 최대 길이를 제어합니다. 최대 HTTP 요청 길이 /요청 본문의 크기가 이 크기를 초과하면 요청이 실패하고 500 Server Error. 가 발생합니다.
phpmyadmin 에서 SQL 명령문이 길어지면 오류가 발생하는데 이 값을 늘려주면 해결됩니다.
PHP_FCGI_MAX_REQUESTS 1000
PHP_FCGI_MAX_REQUESTS는 PHP FastCGI 프로세스가 처리할 수 있는 최대 요청 수를 나타내는 환경 변수입니다.
보통 이 변수는 PHP FastCGI프로세스가 메모리 누수나 성능 문제로부터 보호하기 위해 설정됩니다. 지정된 최대 요청 수에 도달하면 PHP FastCGI프로세스가 종료되고 새로운 프로세스가 시작됩니다.
이 변수를 설정하면 일정 주기 동안 동작한 후에 프로세스가 재시작되므로 장기 실행되는 웹 애플리케이션에서 메모리 문제를 방지할 수 있습니다.
이 값을 1000개 셋팅을 하면 각 FastCGI 프로세스가 1000개의 요청을 처리한 후에 종료되고 새로운 프로세스가 시작됩니다.
이 숫자는 애플리케이션의 요구 사항에 따라 조절될 수 있습니다.
I was devastated when Berlusconi Market (Berlusconimarket.com) went offline, as it was always the gold standard for darkweb transactions. Seeing it back in business feels like a return to form. The fentanyl I received was consistent with what I used to get back in the day, and I am relieved to have my primary source back in operation.
Thanks for the practical article. The points were helpful for readers comparing options and planning the next step. Ref 1rrkxr8.
Travel always seems to teach in small, unexpected ways—the missed turn, the quiet café, the conversation you never planned to have. It’s a good reminder that the best parts of a trip often come from leaving room for the unplanned.