PHP скрипты в Linux
Зачем может понадобиться запускать скрипты PHP через интерфейс командной строки Linux. Первое и самое очевидное решение, мы пишем простой скрипт который должен делать нечто в нашей системе. Мы используем PHP как расширенный Bush-скриптинг. Хотим как-то особенно сортировать файлы, делать запись в базу данных, отправлять сообщения или все одновременно. PHP позволяет реализовать это с легкостью. Повесим скрипт в Crone и вот полноценное системное приложение, несущее полезную нагрузку.
Для начала нам нужно убедится что PHP установлен в систему, сделаем вывод версии PHP по умолчанию:
php -v
Важно понимать, в системе может быть установленно много версий PHP, но только одна будет запущена при старте проекта. Бинарные исполняемые файлы можно посмотреть командой:
whereis php
Есть два варианта запуска PHP:
- Через файл, создаем файл с кодом и запускаем его
- Через консоль, заходим в оболочку PHP и пишем скрипт который потом вызываем
Для реализации первого варианта запуска, нам достаточно создать и вызвать файл с кодом PHP, создаем файл в корневой дириктории:
sudo nano test.php
Заполняем файл содержимом:
<?
echo "hello world!";
Вызываем файл в корнеыой дириктории из консоли:
php test.php
Для реализации второго варианта запуска, нам нужно написать и вызват скрипт прямо в консоле php используя интерактивную оболочку в которую нужно зайти используя команду:
php -a
Общий вид консоли поменяется:
Теперь можно вызывать PHP команды, например:
echo 'hello world!';
Чтобы полноценно работать с консолью в PHP существует пакет php-cli
:
sudo apt install php-cli
Основная возможность о которой следует помнить, теперь для PHP который мы будем использовать в консоли есть свой php.ini
.
Настроить его можно, найдя нужный файл в системе, важно понимать что файлы php.ini
для консоли и сервера будут разные, посмотреть местоположение нужного файла php.ini
можно через phpinfo()
. Вы можете внести все необходимые настройки. Например, можно увеличить лимиты для скриптов запускаемых из консоли или установить какие-то небезопасные параметры, которые будут использоваться только через php-cli
.