Перейти к содержанию
Fire Monkey от А до Я

Delphi FastCGI клиент для php-fpm и подобного


Рекомендуемые сообщения

Класс для работы с FastCGI серверами, такими как php-fpm.

Для тех кто не в теме : веб-сервер, к примеру nginx, получает запросы и отправляет их на исполнение FastCGI серверу, к примеру php-fpm, php-fpm получает имя скрипта, параметры, выполняет все и возвращает результат в nginx, который в свою очередь возвращает этот результат запросившему клиенту.

С помощью класса вы можете так же, выполнять php скрипты на локальном или удаленном сервере.

Исходники https://github.com/EvgeniyKorepov/FastCGIClient

Пример delphi

var
  FFastCGI : TFastCGI;
...

procedure TFormMain.FormCreate(Sender: TObject);
var AHost : String;
    APort : Word;
    AScriptFileName, ARequest, AContent : String;    
begin
  AHost := '10.0.0.4';
  APort := 9000;
  FFastCGI := TFastCGI.Create(AHost, APort);
  FFastCGI.KeepAlive := True;    
  
  AScriptFileName := '/opt/xxx.php';
  ARequest := 'request=1234567890';
  
  if FFastCGI.Get(AScriptFileName, ARequest, AContent) then
    Memo.Text :=  AContent
  else
    Memo.Text := FFastCGI.StatusCode.ToString + ' ' + FFastCGI.StatusText;
end;

пример php 

<?php

header('Content-Type: text/html; charset=utf-8');

if (isset($_REQUEST["request"])) 
	if ($_REQUEST["request"] == "1234567890") {
		header("Status: 200");
		echo 'OK';
	} else {
		http_response_code(400);
		echo "ERROR";
	}

 

Изменено пользователем Евгений Корепов
Ссылка на комментарий

Присоединяйтесь к обсуждению

Вы можете написать сейчас и зарегистрироваться позже. Если у вас есть аккаунт, авторизуйтесь, чтобы опубликовать от имени своего аккаунта.

Гость
Ответить в этой теме...

×   Вставлено с форматированием.   Вставить как обычный текст

  Разрешено использовать не более 75 эмодзи.

×   Ваша ссылка была автоматически встроена.   Отображать как обычную ссылку

×   Ваш предыдущий контент был восстановлен.   Очистить редактор

×   Вы не можете вставлять изображения напрямую. Загружайте или вставляйте изображения по ссылке.

×
×
  • Создать...