Всем привет! Изучая Nginx дошел до того, что есть SAPI, и что их несколько видов и бла,бла,бла. Вопрос: у нас есть сервер(демон, который ждёт, когда же к нему придет запрос) и есть механизм обработки (запрос/сервер -> пхп интерпретатор -> ответ/сервер)
Вопрос возник в том свете, что Апач в моих глазаг, это:
Тогда как CGI/FastCGI/FPM ==> то же самое, только программа, которая на 80 порту другая, и php интерпретатор установлен как самостоятельное приложение, а не подпрограмма
Правильно ли, что SAPI, - это механизм, который определяет, как и куда сервер будет стучатся для обработки запроса, а так же куда и как вернуть эти данные обратно ?
Вопрос 2: как система понимает, что я запрос пришел через cli или mod_apache
Правильно ли, что SAPI, - это механизм, который определяет, как и куда сервер будет стучатся для обработки запроса, а так же куда и как вернуть эти данные обратно ?
Частично, если на пальцах то так:
[Клиент] <---> [WEB-Server] <----- SAPI ------> ([ZEND] <---> [PHP])
Тогда как ваши CGI/FastCGI/FPM
как раз и являются SAPI
.
Наглядно можно так:
[Apache] <----- CGI------> [PHP]
Вопрос 2: как система понимает, что я запрос пришел через cli или mod_apache
Обычно вы работаете только с одним SAPI
.
Вы немного запутались. Что значит система? Нет никакой системы.
В общем плане: апачу надо обработать запрос, у него есть набор инструментов (SAPI
), которыми он этот запрос может выполнить. Обычно вы берете один инструмент, который выгоден для вашей задачи, и всегда с ним работаете. Вы берете к примеру CGI
, и говорите ZEND
-y, вот мне нужен результат работы конкретного скрипта (апач уже знает какой нужен), верни мне результат, по стандарту CGI
. Тогда ZEND
говорит, а есть ли у меня информация, что такое стандарт CGI
, смотрит в свой кармашек и видит, что есть (ибо все что вы назвали поддерживается в php из коробки и даже больше). Раз есть, то отправляем на работу интерпретатору php, он дает результат и zend
по стандарту отправляет обратно.
В PHP
проверить SAPI
можно так: php_sapi_name()
.
Виртуальный выделенный сервер (VDS) становится отличным выбором
Как этим пользоваться? Что на что изменить? За что отвечает $oldAdapter, $oldToolBox и все переменные в этом коде, а так же на что их нужно заменять, проблема...
Решил добавить подобного рода соединения, как оказалось на примере он работает, а пример заключается в обновление файлаВ реальности при...
Есть база данных, после команды php artisan migrate:rollback изменился не тот table который был нужен