Запуск php скрипта из консоли linux

Запуск php скрипта из консоли

Запуск php скрипта из консоли linux

В данном материале мы рассмотрим такие вопросы как: настройка PHP для работы в командной строке, выполнение PHP-кода в командной строке, запуск PHP скриптов в командной строке без аргументов и с аргументами.

«На дисерт», в последнем пункте материала, будет показан процесс установки через командную строку менеджера зависимостей для PHP getcomposer.org.

Начиная с PHP 4.3.0 дистрибутив для Windows влючает в себя CLI-модуль php.exe, расположенный в отдельной директории cli, полное имя — cli/php.exe. Начиная с PHP 5, CLI-модуль расположен в основной директории и называется php.exe. CGI-модуль также включен в дистрибутив под названием php-cgi.exe. Начиная с PHP 5, в дистрибутив для Windows входит новый файл php-win.exe. Он полностью эквивалентен CLI, за исключением того, что php-win абсолютно ничего не выводит, что приводит к отстутствию консоли (окно DOS не появляется на экране).

Настраиваем работу PHP из командной строки

Прежде всего Вы должны узнать расположение CLI-модуля, файла с именем «php.exe». В моем случае полный путь до данного файла выглядит так — «C:\php\php.exe».

Теперь нам нужно проверить работает ли PHP в командной строке. Для этого откроем командную строку (желательно от имени администратора) и выполним команду:

C:\Windows\system32>C:\php\php.exe —help

укажем полный путь до CLI-модуля, файла «php.exe» (т.е. «C:\php\php.exe»), и через пробел добавим ключ «—help».
(вызов «PHP» в консоли с ключем «—help» покажет справочную информацию).

Если после выполнения данной команды Вы получили предупреждения или сообщения об ошибках, то вероятнее всего, Вами был не верно указан путь до CLI-модуля «C:\php\php.exe».

При удачном выполнение команды должна отобразиться справочная информация. Поздравляю, Ваш PHP работает в консоли.

Вы наверное согласитесь со мной, что каждый раз указывать путь «C:\php\php.exe» довольно-таки не приятно, и конечно же, запуск PHP можно настроить без необходимости указывать полный путь до файла «C:\php\php.exe». Для этого необходимо в «Переменные среды» в переменную «PATH» добавить путь до этого файла.

Давайте ради интереса, до внесения изменений в переменную «PATH», попробуем вызвать в консоли PHP:

выполняем команду с опцией «php —help»

C:\Windows\system32>php —help

В ответ Вы скорее всего получите:

C:\Windows\system32>php —help «php» не является внутренней или внешней командой, исполняемой программой или пакетным файлом.

Теперь добавим путь до CLI-модуля «php.exe» в переменную «PATH». Найти данную переменную можно выполнив ряд действий (визуально представлено на изображениях ниже):

«Пуск» → пункт «Панель управления» → «Система» → «Изменить параметры» → вкладка «Дополнительно» → «Переменные среды» → в нижнем блоке (Системные переменные) выделяем Переменную «Path» или «PATH» → «Изменить»

В данной переменной уже имеются пути, которые разделены точкой с запятой (;). Вам необходимо добавить в конец переменной свой путь до CLI-модуля, файла «php.exe», В моем случае путь это — «C:\php\». (Будьте внимательны, при внесении изменений не удалите текущие значения).

добавим путь до CLI-модуля, файла «php.exe», в переменную «PATH»

Снова выполняем команду с ключем «php —help»

C:\Windows\system32>php —help или C:\Windows\system32>php -h

команда «php» с ключем «—help» покажет справочную информацию

Примеры работы PHP в командной строке

Откроем консоль (желательно от имени администратора) и перейдем к практике.

Рассмотрим два способа запуска PHP-кода:

  • Передача PHP-кода напрямую в командной строке
  • Указание конкретного файла для запуска
Читайте также  Как задать параметры запуска ярлыка?

Первый способ. Опция «-r» (или «—run») позволяет выполнять PHP-код, указанный непосредственно в командной строке. Открывающие и завершающие PHP-теги () не нужны.

C:\Windows\system32>php -r «printf(1);» 1 C:\Windows\system32>php -r «printf(1+2);» 3 C:\Windows\system32>php -r «printf('Hello world');» или C:\Windows\system32>php -r «print_r('Hello world');» C:\Windows\system32>php -r «echo 'Hello world';» Hello world C:\Windows\system32>php -r «var_dump($_SERVER);»

Второй способ. Опция «-f» (или «—file») позволяет исполнять указанный файл. Является не обязательной и может отсутствовать, достаточно просто указать имя файла.

Исполним индексный файл веб-сервера Apache с расширением «.html»

C:\Windows\system32>php -f C:\Apache24\htdocs\index.html или C:\Windows\system32>php C:\Apache24\htdocs\index.html

It works!

Запуск php скрипта из консоли linux
C:\Windows\system32>php C:\Apache24\htdocs\phpinfo.php

Передаем аргументы php скрипту в консоли

Как и любое другое консольное приложение, PHP может принимает аргументы, а PHP-скрипт также может получать аргументы. Рассмотрим данную возможность на примере. В корневой директории управления сайтами «C:\Apache24\htdocs» создадим файл «console.php» и внесем в него строки:

Исполним php скрипт «console.php» без передачи параметров

C:\Windows\system32>php C:\Apache24\htdocs\console.php The number of array elements \$argv = 1 Array ( [0] => C:\Apache24\htdocs\console.php )

количество аргуметов переданных в консоли равно 1,
этим аргументом является путь до файла «C:\Apache24\htdocs\console.php»

Исполним php скрипт «console.php» с передачей параметров

C:\Windows\system32>php C:\Apache24\htdocs\console.php param1 param2 The number of array elements \$argv = 3 Array ( [0] => C:\Apache24\htdocs\console.php [1] => param1 [2] => param2 )

количество аргуметов переданных в консоли равно 3,
первым аргументом является путь до файла «C:\Apache24\htdocs\console.php»
вторым и третим — param1, param2

Установка composer

На официальном сайте getcomposer.org есть инструкция по его установке для «Installation — Linux / Unix / OSX» и для «Installation — Windows».

Перед скачиванием архива «composer.phar» убедитесь, что в конфигурационном файле «C:\php\php.ini» подключено расширение «php_openssl.dll». (Для этого раскомментируйте строку «extension=php_openssl.dll»).

для того, чтобы скачать «composer.phar» выполните следующие команды

C:\Windows\system32>cd C:\Apache24\htdocs C:\Apache24\htdocs>php -r «readfile('https://getcomposer.org/installer');» | php #!/usr/bin/env php All setting correct for using Composer Downloading… Composer successfully installed to: C:\Apache24\htdocs\composer.phar Use it: php composer.phar

первой командой перейдем в директорию «C:\Apache24\htdocs»
второй командой скачаем архив «composer.phar» в эту директорию Перевод: Все настройки верны для использования Composer Загрузка… Composer успешно установлен: C:\Apache24\htdocs\composer.phar

Использовать: php composer.phar

создадим файл «composer.bat»

C:\Apache24\htdocs>echo @php «%~dp0composer.phar» %*>composer.bat

после выполнения данной команды рядом с архивом «composer.phar» появится файл «composer.bat»

теперь находясь в директории где расположены файлы «composer.phar» и «composer.bat» можно выполнить следующие команды

C:\Apache24\htdocs>composer -V Composer version 1.0-dev (xx…xx) 2015-xx-xx xx:xx:xx C:\Apache24\htdocs>composer -h

первая команда выводит версию composer
вторая команда выводит справочную информацию

По итогам изучения данного материала мы осуществили настройку PHP для работы в командной строке, на практике рассмотрели примеры выполнения PHP-кода и запуска PHP скриптов в командной строке. А также нами был выполнен процесс установки composer`a.

Источник: https://resource-gsv.ru/webserver/run-sprit-console.html

Как запустить PHP скрипт без веб-сервера

Запуск php скрипта из консоли linux

Интерпретатор PHP стал неотъемлемой частью практически каждого веб-сервера. Подавляющее большинство веб-приложений написаны на PHP. Поэтому технология PHP очень стойко у многих ассоциируется именно с веб окружением, со средой веб-сервера. Но на самом деле, запускать скрипты PHP можно без веб-браузера. Речь идёт не о специально созданных как веб приложения программах, таких как WordPress, phpMyAdmin, гостевые книги, форумы и прочее.

Такие скрипты специально создавались для работы в условиях веб-сервера и для вывода результатов в веб-браузер. Вряд ли удастся полноценно с ними работать в командной строке. Речь идёт о консольных программах на PHP, которые могут выполнять различные, не обязательно связанные с веб сервисами функциями. По сути, PHP является очень гибким языком с хорошим набором классов и на нём можно написать консольную программу под любые функции.

Либо ядро программы (так называемый бэк-энд) к которому будер обращаться графический пользовательский интерфейс.

Ещё запуск PHP скриптов в консоли удобен для изучающих язык. Хотя кто-то может с этим не согласиться. При выводе результатов в консоль, а также при передаче аргументов в скрипт, не нужно уделять внимание HTML. Но если вы изучаете PHP для создания веб-приложений и онлайн сервисов, то вам всё равно потом придётся доучивать особенности передачи аргументов из веб-браузера (в окружении сервера), а также HTML вообще, поскольку весь вывод скриптов нужно будет оформлять для браузеров пользователей.

Читайте также  Запуск рабочего стола через командную строку

Как запустить PHP скрипт в командной строке Linux

У вас должен быть установлен PHP, к счастью, в Linux интерпретатор PHP устанавливается очень просто, а в некоторых дистрибутивах присутствует по умолчанию. Если у вас его ещё нет, то установите его одной из следующей команд.

В Debian, Kali Linux, Linux Mint, Ubuntu:

sudo apt install php

В Arch Linux, BlackArch:

sudo pacman -S php

Установка полного веб-сервера в Linux Mint описана здесь, в Ubuntu здесь, в Arch Linux/BlackArch здесь, а в Kali Linux он уже установлен, про то, как его запустить здесь.

В остальном запуск скриптов в консоли, в том числе опции запуска, в Linux и Windows идентичные.

Если вы совсем новичок в Linux, то также смотрите Азы работы в командной строке.

Как запустить PHP скрипт в командной строке Windows

Если вы знакомы с запуском консольных программ в Windows или хотя бы в Linux, то для вас всё совсем просто — везде программы запускаются примерно одинаково. Но начнём по порядку для новичков.

Если вы хотите не только возможность запускать PHP из командной строки, но и полноценный веб-сервер Apache + PHP + MySQL на Windows, то выполните установку по этой статье.

Для запуска PHP в командной строке необязательно устанавливать веб-сервер, достаточно скачать и распаковать архив с PHP интерпретатором. О том, где скачать PHP с официального сайта и как разобраться с версиями, смотрите эту статью.

Если вы часто будете запускать PHP скрипты из командной строки Windows, то настоятельно рекомендуется Добавить путь до PHP в переменную окружения PATH в Windows. Благодаря этому не придётся каждый раз указывать полный путь до файла php.exe.

Теперь, когда PHP установлен и путь до php.exe добавлен в переменную окружения Windows, открываем командную строку, для этого нажмите сочетание клавиш Win+x и выберите Windows PowerShell.

Для проверки, что нормально установилось, посмотрим справку по PHP:

php -h

На самом деле, мы запускаем файл php.exe, но расширение можно отбросить. То есть предыдущая запись эквивалентна

php.exe -h

Справка и опции запуска PHP скриптов в командной строке

Справка содержит опции для разнообразных вариантов запуска файлов .php в командной строке, поэтому приведу её перевод полностью.

Использование:

php [опции] [-f] [—] [аргументы…] php [опции] -r [—] [аргументы…] php [опции] [-B ] -R [-E ] [—] [аргументы…] php [опции] [-B ] -F [-E ] [—] [аргументы…] php [опции] -S : [-t docroot] [router] php [опции] — [аргументы…] php [опции] -a

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

Опции:

Источник: https://hackware.ru/?p=8454

Интерактивное консольное приложение на PHP

Запуск php скрипта из консоли linux

PHP является одним из наиболее популярных языков программирования в вебе. Своей популярностью он в первую очередь обязан легкости в изучении и многофункциональности. Но сфера его применения не заканчивается только на создании простых веб-страничек. PHP-скрипты можно запускать из командной строки, что позволяет писать на нем полноценные консольные приложения.

Как запустить php-скрипт из командной строки?

Независимо от используемой операционной системы, для запуска скрипта необходимо набрать в консоли следующую команду:

php script.php

Ваша ОС может выдать сообщение о том, что команда php ей неизвестна. В таком случае, и если вы уверены, что сам интерпретатор PHP установлен корректно, поможет указание полного пути к интерпретатору во время запуска скрипта.

Читайте также  Кулер ноутбука крутится при запуске и останавливается

В Windows:

C:\php\php.exe script.php

Для UNIX-подобных систем:

/usr/bin/php script.php

Обратите внимание, что путь к интерпретатору PHP на вашей системе может быть другим, поэтому это тоже надо учесть. Например, для пользователей популярного пакета WampServer путь может быть таким:

C:\wamp\bin\php\php5.3.8\php.exe

Ну и наконец, чтобы не вводить полный путь каждый раз, следует добавить путь к интерпретатору в переменную окружения PATH вашей операционной системы.

Пишем простой скрипт для проверки кода ответа сервера

Для того, чтобы показать особенности работы скрипта из командной строки, напишем простое приложение, которое будет брать текстовый файл со ссылками и проверять код ответа сервера для каждой из этих ссылок. Причем предусмотрим возможность выбора нужного файла в интерактивном режиме, чтобы заодно узнать, как это делается.

Сразу после запуска скрипт выбирает все файлы с расширением *.txt из папки files. Затем выводит данный список пользователю в формате номер => имя и ждет от пользователя ввода номера интересующего его файла.

Получение всех файлов по маске делается просто, для этого воспользуемся стандартной функцией glob, а вот с чтением данных из консоли всё немного интересней. Дело в том, что после запуска скрипта из командной строки в нем открываются три стандартных потока: для вывода (STDOUT), ввода (STDIN) и ошибок (STDERR). Указатели на эти потоки доступны для скрипта в виде одноименных констант и работать с ними можно так же как, например, с обычными файлами. Таким образом, чтобы прочитать данные из консоли достаточно просто прочитать строку из потока ввода: fgets(STDIN).

$files = glob('files/*.txt'); $files or exit('No files to check.'.PHP_EOL); echo 'Files in folder: '.count($files).PHP_EOL; foreach ($files as $index => $name) { echo «[{$index}] => {$name}».PHP_EOL; } echo 'Choose the file: '; $choice = intval(fgets(STDIN));

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

array_key_exists($choice, $files) or exit('Wrong file selected.'.PHP_EOL); $file = $files[$choice]; echo «Processing file '{$file}'…».PHP_EOL; $start_time = microtime(true); $code_stats = array(); $f = fopen($file, 'r');

С помощью цикла while начинаем перебирать все строки в файле. Строки должны быть корректными url-адресами иначе мы не сможем определить правильный код ответа сервера. Заголовки для каждого адреса получаем с помощью стандартной функции get_headers, а код ответа находится обычно в первой строке заголовка.

while ($url = trim(fgets($f))) { $headers = get_headers($url); if (is_array($headers)) { array_key_exists($headers[0], $code_stats) or $code_stats[$headers[0]] = 0; $code_stats[$headers[0]]++; echo date('H:i:s').» HTTP code '{$headers[0]}' for url '{$url}'».PHP_EOL; } else { array_key_exists('Unknown', $code_stats) or $code_stats['Unknown'] = 0; $code_stats['Unknown']++; echo date('H:i:s').» Problem with url '{$url}'».PHP_EOL; } } fclose($f);

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

$elapsed_time = round(microtime(true) — $start_time, 3); echo «File processed in {$elapsed_time}s».PHP_EOL; echo «Code stats are:».PHP_EOL; print_r($code_stats);

Результатом работы такого приложения может быть, например, такой вывод:

$ php check.php Files in folder: 1 [0] => files/db.txt Choose the file: 0 Processing file 'files/db.txt'… 18:33:43 HTTP code 'HTTP/1.0 200 OK' for url 'http://mail.ru/' 18:33:45 HTTP code 'HTTP/1.1 301 Moved Permanently' for url 'http://yandex.ru/' 18:33:46 HTTP code 'HTTP/1.1 302 Moved Temporarily' for url 'http://rambler.ru/' 18:33:47 HTTP code 'HTTP/1.0 301 Moved Permanently' for url 'http://google.ru/' File processed in 5.558s Code stats are: Array ( [HTTP/1.0 200 OK] => 1 [HTTP/1.1 301 Moved Permanently] => 1 [HTTP/1.1 302 Moved Temporarily] => 1 [HTTP/1.0 301 Moved Permanently] => 1 )

Выводы

Вот и всё, простое и интерактивное консольное приложение на PHP готово. Мне не хотелось писать какую-нибудь совершенно бесполезную программу, поэтому этот скрипт подходит не только для изучения, но и для использования. Например, если сохранить в текстовый файл карту сайта, то скрипт поможет определить возможные ошибки с ссылками, а если его немного доработать, то даже укажет с какими именно :).

Само приложение можно скачать здесь.

Источник: http://codinghamster.info/php/konsolnoe-prilozhenie-na-php/