
Выполнение PHP-скриптов из командной строки позволяет тестировать и автоматизировать код без обращения к веб-серверу. Это особенно полезно при написании cron-скриптов, миграций базы данных или CLI-инструментов на PHP. Для запуска необходим установленный интерпретатор PHP, доступный из переменной окружения PATH.
Минимальный синтаксис запуска: php имя_файла.php. При этом важно находиться в каталоге, где расположен файл, или указать полный путь. Пример: php /var/www/project/script.php. Если в системе установлено несколько версий PHP, можно явно указать нужную: /usr/bin/php8.1 script.php.
При передаче аргументов используется массив $argv. Первый элемент массива – имя самого скрипта, последующие – переданные значения. Например: php script.php test 123 создаст массив [‘script.php’, ‘test’, ‘123’]. Количество аргументов можно проверить через $argc.
Если PHP вызывается из оболочки Linux, стоит использовать шебанг в начале файла: #!/usr/bin/env php. После этого можно сделать файл исполняемым командой chmod +x script.php и запускать его напрямую: ./script.php.
Для отладки можно использовать флаги: -l для проверки синтаксиса (php -l script.php) и -d для временного изменения конфигурации, например: php -d memory_limit=512M script.php. Это позволяет тестировать поведение скриптов в разных условиях без редактирования php.ini.
Проверка установленной версии PHP в терминале

Откройте терминал и выполните команду php -v. В результате отобразится строка с номером версии, например: PHP 8.2.5 (cli) (built: Apr 12 2023 09:45:23). Эта информация позволяет определить, какая версия интерпретатора используется по умолчанию.
Если команда вызывает ошибку или сообщает об отсутствии PHP, проверьте, установлен ли интерпретатор и прописан ли путь к нему в переменной окружения PATH. На Unix-подобных системах можно использовать which php для определения пути к исполняемому файлу. В Windows – where php.
Если на системе установлено несколько версий PHP, уточнить активную можно через символьные ссылки (например, ls -l /usr/bin/php в Linux) или использовать менеджеры версий, такие как update-alternatives (Debian/Ubuntu) или brew link (macOS при использовании Homebrew).
Настройка переменной среды PATH для доступа к PHP из любой директории

Откройте свойства системы: нажмите Win+R, введите sysdm.cpl, перейдите на вкладку «Дополнительно» и нажмите «Переменные среды».
В разделе «Системные переменные» найдите переменную Path и выберите «Изменить».
Нажмите «Создать» и укажите путь к каталогу, где находится исполняемый файл php.exe. Например: C:\php или C:\Program Files\php, в зависимости от места установки.
Сохраните изменения во всех окнах и перезапустите командную строку, чтобы обновить переменные среды.
Проверьте доступность PHP, введя в командной строке php -v. Если путь указан корректно, отобразится версия установленного PHP.
Если используется несколько версий PHP, убедитесь, что нужная директория указана первой в списке путей.
Запуск PHP файла из текущей директории с помощью команды php

Откройте терминал и перейдите в нужную директорию с помощью cd. Например:
cd /var/www/project
Убедитесь, что файл имеет расширение .php и доступен для чтения. Для запуска используйте следующую команду:
php имя_файла.php
Если используется php без абсолютного пути, интерпретатор должен быть добавлен в переменную среды PATH. Проверить доступность можно командой:
php -v
При возникновении ошибки «command not found», укажите полный путь к интерпретатору, например:
/usr/bin/php имя_файла.php
php -d display_errors=1 имя_файла.php
Если файл содержит относительные пути, выполнение из другой директории приведёт к ошибкам. Чтобы избежать этого, используйте __DIR__ в скрипте для определения текущей директории выполнения.
Передача аргументов в PHP скрипт через командную строку

Пример запуска: php script.php файл.txt 123 true. Внутри script.php массив $argv будет содержать:
$argv[0] // script.php
$argv[1] // файл.txt
$argv[2] // 123
$argv[3] // true
Количество аргументов доступно через переменную $argc, которая считает все элементы, включая имя файла. В приведённом примере $argc === 4.
Для обработки аргументов с ключами, как в формате --key=value, придётся использовать разбор вручную или подключать библиотеку, например, getopt(). Пример: php script.php --mode=test --limit=5.
Вызов getopt('', ['mode:', 'limit:']) вернёт ассоциативный массив: ['mode' => 'test', 'limit' => '5']. Двоеточие после имени означает, что параметр обязательный. Без двоеточия – флаг без значения.
Массив $argv доступен только при запуске из CLI. В веб-контексте он не определён.
Обработка входных данных в скрипте, запущенном из консоли

Для приёма данных в PHP-скрипте, запущенном из терминала, используется массив $argv. В нём хранятся все переданные параметры, включая имя самого файла как первый элемент.
$argv[0]– путь к исполняемому файлу.$argv[1]и далее – аргументы, переданные при запуске.
Пример запуска:
php script.php param1 param2
Обработка аргументов может выглядеть так:
if ($argc < 3) {
fwrite(STDERR, "Ожидается минимум 2 параметра\n");
exit(1);
}
$first = $argv[1];
$second = $argv[2];
// Пример приведения типов
$count = (int)$first;
$name = trim($second);
Для парсинга ключей рекомендуется использовать цикл:
$options = [];
for ($i = 1; $i < $argc; $i++) {
if (preg_match('/^--(\w+)=(.+)$/', $argv[$i], $matches)) {
$options[$matches[1]] = $matches[2];
}
}
Обработка таких аргументов:
php script.php --user=admin --limit=10
Результат:
$options['user'] => 'admin' $options['limit'] => '10'
Для чтения из stdin:
$input = stream_get_contents(STDIN);
Полезно при передаче данных через пайп:
cat data.txt | php script.php
Рекомендации:
- Проверять количество и формат аргументов перед выполнением основной логики.
- При необходимости считывать большие объёмы данных – использовать потоковую обработку через
STDIN. - Всегда обрабатывать некорректный ввод: пустые значения, неверные типы, неизвестные ключи.
Простой пример:
При выполнении такого скрипта в командной строке, результатом будет строка: Hello, World!.
Результат будет включать тип переменной и её содержимое:
array(3) { [0]=> int(1) [1]=> int(2) [2]=> int(3) }
Запуск PHP файла с указанием абсолютного или относительного пути

Запуск PHP файла через командную строку требует точного указания пути к файлу. Важно понимать разницу между абсолютным и относительным путём, так как это влияет на корректность выполнения скрипта.
Абсолютный путь – это полный путь к файлу от корня файловой системы. Пример для Linux или macOS: /var/www/html/script.php. В Windows абсолютный путь будет выглядеть как C:\xampp\htdocs\script.php. При использовании абсолютного пути можно запускать файл из любой директории, так как путь не зависит от текущего положения в файловой системе.
Относительный путь указывается относительно текущей директории, в которой вы находитесь в момент выполнения команды. Например, если вы находитесь в папке /var/www, а файл находится в /var/www/html/script.php, относительный путь будет html/script.php. Для Windows пример будет: htdocs\script.php. Важно, чтобы относительный путь был указан верно относительно места, где запускается команда.
Для запуска PHP файла с абсолютным путём используется команда:
php /путь/к/файлу/script.php.
Для относительного пути команда будет такой:
php ./script.php, если файл находится в текущей папке, или
php html/script.php, если файл в подпапке.
Необходимо помнить, что при работе с относительными путями важно учитывать, в какой директории выполняется команда, иначе PHP не сможет найти файл. Для диагностики ошибок в таких случаях можно использовать команду pwd (Linux/macOS) или cd (Windows) для проверки текущей директории.
Вопрос-ответ:
Как запустить PHP файл через командную строку в Windows?
Для того чтобы запустить PHP файл через командную строку в Windows, необходимо выполнить несколько шагов. Во-первых, убедитесь, что PHP установлен на вашем компьютере и добавлен в переменную среды PATH. Для этого откройте командную строку и введите команду `php -v`. Если PHP установлен корректно, вы увидите его версию. Затем откройте командную строку, перейдите в каталог, где находится ваш PHP файл, используя команду `cd`. После этого выполните команду `php название_файла.php`. Если все сделано правильно, файл будет исполнен, и вы увидите результаты в командной строке.
Что делать, если команда `php` не распознается в командной строке?
Если команда `php` не распознается в командной строке, это означает, что PHP не добавлен в системную переменную PATH. Чтобы исправить эту проблему, нужно добавить путь к директории с PHP в переменную окружения. Для этого выполните следующие действия: откройте "Свойства системы" (правая кнопка по "Этот компьютер" > "Свойства" > "Дополнительные параметры системы"), затем нажмите "Переменные среды". В разделе "Системные переменные" найдите переменную `Path`, выберите её и нажмите "Изменить". Добавьте путь к папке, где установлен PHP (например, `C:\php`), и сохраните изменения. После этого откройте новую командную строку и проверьте команду `php -v`. Если все сделано правильно, PHP будет доступен для выполнения в командной строке.
