PHP има различни интерфейси (SAPI) за взаимодействие със средата, в която работи, и за връзка с външни (за PHP) технологии. Два от интерфейсите са PHP CLI и PHP CGI (FastCGI).
От версия 4.3.0 PHP поддържа допълнителен интерфейс, наречен CLI (Command Line Interface), който е предназначен за ползване през шел.
PHP CLI може да се ползва за създаване на PHP приложения, които могат да се стартират чрез крон задачи, за администриране, тестове и други цели подходящи за изпълнение през шел. PHP CLI работи директно в средата на сървъра, без да се обръща към CGI (FastCGI) интерфейса за връзка с уеб сървъра.
PHP CLI се различава от другите интерфейси основно по това:
- че не връща HTTP хедъри; стартира по подразбиране с опция -q (quiet-mode), което предотвратява изпращането на хедъри към стандартния изход (stdout);
- не променя работната директория с тази на изпълняващия се скрипт;
- използва само обикновен текст за съобщенията за грешки; php.ini директивата е зададена: html_errors: FALSE. Това е така, защото е доста затруднено в команден режим да се четат съобщенията за грешки, които са в HTML код. Затова HTML форматирането е деактивирано;
- някои php.ini директиви са системно зададени за PHP CLI, поради несвойствената им употреба при изпълнение през шела;
- max_execution_time: 0 (unlimited) – няма ограничение за времето, което един скрипт може да се изпълнява;
- max_input_time: FALSE – PHP CLI не поддържа GET, POST и качване на файлове;
PHP е конфигурирано и инсталирано на сървъра с два отделни изпълними/бинарни файла, използващи се за двата интерфейса CLI и CGI (FastCGI).
За всички версии на PHP: | |
PHP FastCGI | /opt/cpanel/ea-phpXX/root/usr/bin/php-cgi |
PHP CLI | /opt/cpanel/ea-phpXX/root/usr/bin/php |
ea-phpXX – заменете с версията на PHP, например /opt/cpanel/ea-php72/root/usr/bin/php |
Настройките на PHP се различават за двата интерфейса:
🔗 Ползване на различна PHP (cli) версия през SSH | Help
🔗 Ползване на различна PHP (cgi/fcgi) версия през Уеб | Help
🔗 Ползване на различен php.ini файл за PHP (cli) през SSH | Help
🔗 Ползване на различен php.ini файл за PHP (cgi/fcgi) през Уеб | Help