Herkese merhaba!

Uzun yıllardır bol miktarda kişisel zaman ve enerji harcayarak bilgimizi hepinizle paylaşıyoruz. Ancak şu andan itibaren bu blogu çalışır durumda tutabilmek için yardımınıza ihtiyacımız var. Yapmanız gereken tek şey, sitedeki reklamlardan birine tıklamak olacaktır, aksi takdirde hosting vb. masraflar nedeniyle maalesef yayından kaldırılacaktır. Teşekkürler.

PHP-FPM'nin düzgün çalışıp çalışmadığını, Nginx veya Apache gibi bir web sunucusu olmadan test etmek istiyorsanız, aşağıdaki örneği takip edebilirsiniz.


Yapılandırma


Öncelikle fcgi paketini kurun, data sonra aşağıdaki satırları /usr/local/etc/php-fpm.d/www.conf dosyasına ekledikten sonra PHP-FPM'i yeniden başlatın.


pm.status_path=/status
ping.path=/ping
ping.response=pong

Testler


İletişim


$ SCRIPT_NAME=/ping \
SCRIPT_FILENAME=/ping \
REQUEST_METHOD=GET \
cgi-fcgi -bind -connect localhost:9000

X-Powered-By: PHP/7.2.13
Content-type: text/plain;charset=UTF-8
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Cache-Control: no-cache, no-store, must-revalidate, max-age=0

pong

Basit durum


$ SCRIPT_NAME=/status \
SCRIPT_FILENAME=/status \
REQUEST_METHOD=GET \
cgi-fcgi -bind -connect localhost:9000

X-Powered-By: PHP/7.2.13
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Cache-Control: no-cache, no-store, must-revalidate, max-age=0
Content-type: text/plain;charset=UTF-8

pool: www
process manager: dynamic
start time: 21/May/2019:19:25:24 +0000
start since: 38
accepted conn: 5
listen queue: 0
max listen queue: 0
listen queue len: 128
idle processes: 1
active processes: 1
total processes: 2
max active processes: 1
max children reached: 0
slow requests: 0

Ayrıntılı durum


$ SCRIPT_NAME=/status \
SCRIPT_FILENAME=/status \
QUERY_STRING=full \
REQUEST_METHOD=GET \
cgi-fcgi -bind -connect localhost:9000

X-Powered-By: PHP/7.2.13
Expires: Thu, 01 Jan 1970 00:00:00 GMT
Cache-Control: no-cache, no-store, must-revalidate, max-age=0
Content-type: text/plain;charset=UTF-8

pool: www
process manager: dynamic
start time: 23/May/2019:18:37:17 +0000
start since: 824
accepted conn: 7
listen queue: 0
max listen queue: 0
listen queue len: 128
idle processes: 1
active processes: 1
total processes: 2
max active processes: 1
max children reached: 0
slow requests: 0

************************
pid: 6
state: Idle
start time: 23/May/2019:18:37:17 +0000
start since: 824
requests: 3
request duration: 717
request method: GET
request URI: -
content length: 0
user: -
script: /app/index.php
last request cpu: 0.00
last request memory: 2097152

************************
pid: 7
state: Running
start time: 23/May/2019:18:37:17 +0000
start since: 824
requests: 4
request duration: 155
request method: GET
request URI: /status?full
content length: 0
user: -
script: -
last request cpu: 0.00
last request memory: 0

Ayrıntılı durum formatları


Yukarıdaki çıktı QUERY_STRING="full&{format}" eki kullanılarak JSON, XML ve HTML şeklinde de alınabilir. Örnek: QUERY_STRING="full&json". Eğer bu çıktıyı tarayıcınızda da görmek isterseniz, Nginx'e location bloğu ekleyebilirsiniz.


Uygulama testi


SCRIPT_FILENAME=/app/index.php \
REQUEST_URI= \
QUERY_STRING= \
REQUEST_METHOD=GET \
cgi-fcgi -bind -connect localhost:9000

X-Powered-By: PHP/7.2.13
Cache-Control: no-cache, private
Date: Tue, 21 May 2019 19:20:58 GMT
Content-Type: application/json

"UP"

Bash dosyası


#!/bin/sh
set -e

CMD="SCRIPT_FILENAME=/app/index.php REQUEST_METHOD=GET cgi-fcgi -bind -connect localhost:9000"
RESPONSE=$(eval "$CMD" | tail -1)

echo $RESPONSE # Prints UP