Підготовка до роботи c php

Використання PHP в командному рядку

Починаючи з версії 4.3.0, PHP підтримує новий вид SAPI (інтерфейс розробки серверних додатків) під назвою CLI. що означає # 13; інтерфейс командного рядка. Як видно з назви, цей вид SAPI призначений для розробки консольних (або навіть десктопних) додатків на PHP. Є кілька несуттєвих відмінностей між CLI SAPI і іншими видами SAPI. які будуть розглянуті в цьому розділі. Буде корисно помітити, що CLI і CGI - різні SAPI -Інтерфейс, хоча в їхній поведінці багато спільного.

# 13; Вперше в якості експерименту CLI SAPI був включений в реліз PHP 4.2.0, і при запуску скрипта ./configure необхідно було явно вказувати опцію --enable-cli. Починаючи з PHP 4.3.0, CLI SAPI не є експериментальним, і опція збірки --enable-cli присутній за замовчуванням. Ви можете відключити CLI SAPI за допомогою опції --disable-cli.

# 13; Що стосується PHP 4.3.0, ім'я, розташування і існування бінарних модулів CLI / CGI залежить від того, як саме встановлений PHP. За замовчуванням при виконанні make створюється як CGI, так і CLI модуль, в каталогах sapi / cgi / php і sapi / cli / php відповідно, всередині директорії з вихідними кодами PHP. Cледует помітити, що обидва файли мають однакову назву: PHP. Що станеться при виконанні make install. залежить від того, які опції ви вказали на стадії конфігурування. У разі, якщо ви віддали перевагу такому модулю SAPI як apxs, або вказали опцію --disable-cgi. модуль CLI буде скопійований в / bin / php при виконанні make install. в іншому випадку буде скопійований CGI-модуль. Наприклад, якщо при запуску скрипта ./configure ви вказали опцію --with - apxs. CLI-версія буде скопійована в / bin / php при виконанні make install. Якщо ви хочете перекрити встановлений CGI-модуль, використовуйте make install-cli після виконання make install. В якості альтернативи ви могли б вказати опцію --disable-cgi при виконанні скрипта ./configure. # 13;

Зауваження: Оскільки обидві опції, --enable-cli і # 13; - enable-cgi. присутні за замовчуванням, одного присутності рядка --enable-cli при виконанні скрипта ./configure недостатньо для того, щоб CLI-версія була встановлена ​​в / bin / php при виконанні make install.

# 13; Дистрибутиви для Windows між версіями PHP 4.2.0 і PHP 4.2.3 включають в себе CLI-модуль як php-cli.exe. розташований в тій же директорії, що і CGI-модуль php.exe. Починаючи з PHP 4.3.0 дистрибутив для Windows влючає в себе CLI-модуль php.exe. розташований в окремій директорії cli. повне ім'я - cli / php.exe. Починаючи з PHP 5, CLI-модуль розташований в основний директорії і називається php.exe. CGI-модуль також включений в дистрибутив під назвою php-cgi.exe.

# 13; Починаючи з PHP 5, в дистрибутив для Windows входить новий файл php-win.exe. Він повністю еквівалентний CLI, за винятком того, що php-win абсолютно нічого не виводить, що призводить до ВІДСУТНІСТЬ консолі (вікно DOS не з'являється на екрані). Це поведінка схоже на php-gtk. При складанні з вихідних кодів вам необхідно вказати опцію --enable-cli-win32.

Який з варіантів SAPI встановлений. Виконайте з командного рядка php -v для отримання інформації про те, який з двох модулів PHP встановлений: CGI або CLI. Також ви можете використовувати для цього функцію php_sapi_name () або константу # 13; PHP_SAPI.

Зауваження: Відповідна сторінка керівництва Unix була додана в PHP 4.3.2. Ви можете побачити її, виконавши в консолі man php.

# 13; Основні відмінності CLI SAPI від інших реалізацій SAPI.

# 13; На відміну від CGI SAPI заголовки не пишуть в потік виводу.

# 13; Не дивлячись на те, що в CGI SAPI є спосіб придушити HTTP-заголовки, в CLI SAPI немає можливості їх включити.

# 13; CLI за замовчуванням запускається в режимі з придушенням повідомлень, проте, ключі -q і --no-header збережені для зворотної сумісності, що дозволяє використовувати написані раніше CGI-скрипти.

# 13; Поточна директорія не змінюється на робочу директорію скрипта. (Ключі -C і --no-chdir збережені для зворотної сумісності)

# 13; Повідомлення про помилки видаються в текстовому режимі (без HTML-форматування).

# 13; Деякі настройки php.ini перевизначені в CLI SAPI. оскільки вони не мають особливого сенсу при роботі в командному рядку:

Таблиця переобумовлених директив php.ini

Схожі статті