Исполнение PHP файлов: варианты и примеры

Раздел: Программирование на PHP -> Выполнение скриптов

Способы запуска PHP скриптов

Как выполнить PHP файл без веб сервера?

Основной способ запуска PHP скрипта использует интерпретатор командной строки (CLI). Для этого достаточно вызвать команду php с указанием пути к файлу.

php /home/user/script.php

Интерпретатор читает содержимое файла, выполняет код и выводит результат в консоль. Этот метод подходит для отладки, фоновых задач, работы с файловой системой и любых сценариев, не требующих веб окружения.

Типичные ошибки:

  • php: command not found - PHP не установлен или отсутствует в системной переменной PATH. Решение: установите интерпретатор (sudo apt install php на Debian/Ubuntu) или укажите полный путь к исполняемому файлу.
  • Parse error - синтаксическая ошибка в коде. Проверьте файл с помощью php -l script.php.
  • Permission denied - недостаточно прав на чтение или выполнение файла. Используйте chmod +r script.php.

Как выполнить PHP скрипт в браузере через локальный сервер?

Поместите скрипт в корневую директорию веб сервера (например, /var/www/html для Apache) и обратитесь к нему через URL http://localhost/script.php. Сервер передаёт запрос интерпретатору, который обрабатывает код и отправляет результат в браузер. Это стандартный способ для разработки сайтов.

sudo cp script.php /var/www/html/
# или
sudo mv script.php /var/www/html/

Возможные проблемы:

  • Сервер не настроен на обработку PHP - установите модуль libapache2-mod-php для Apache или настройте FastCGI для Nginx.
  • Файл не отображается - проверьте права доступа и настройки DirectoryIndex.

Как быстро запустить PHP без установки Apache?

Встроенный веб сервер PHP запускается командой php -S localhost:8000. Запросы по адресу http://localhost:8000/script.php будут обрабатываться интерпретатором.

php -S localhost:8080 -t /путь/к/папке

Этот вариант удобен для быстрого тестирования, не требует настройки внешнего сервера.

При попытке использовать встроенный сервер с HTTPS или сложной маршрутизацией могут возникнуть ограничения. Для продакшена используйте полноценный сервер.

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

Добавьте задачу в cron, указав интервал и команду вызова.

# Запуск каждый день в 6 утра
0 6 * * * /usr/bin/php /путь/к/script.php >> /var/log/cron.log 2>&1

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

Как выполнить второй PHP скрипт внутри текущего?

Используйте функции exec, shell_exec или system. Они запускают новый процесс с указанной командой.

$output = shell_exec('php /путь/к/another.php');
echo $output;

Это полезно для параллельной обработки или вызова внешнего скрипта с ожиданием результата. Обратите внимание на безопасность: если в команду подставляются пользовательские данные, используют escapeshellcmd или escapeshellarg.

Вызов exec может не работать в режиме безопасного использования (disabled_functions). Проверьте настройки php.ini.

Как изолировать выполнение PHP скрипта в контейнере?

Создайте Docker образ с PHP и скопируйте скрипт внутрь. Запустите контейнер с командой php script.php.

FROM php:8.2-cli
COPY script.php /app/
CMD ["php", "/app/script.php"]

Соберите и выполните: docker build -t my-php-app . && docker run my-php-app. Этот метод гарантирует повторяемость окружения и не влияет на основную систему.

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

Расширенные примеры выполнения PHP сценариев

Передача аргументов командной строки

Скрипт может принимать параметры через переменные $argv (массив аргументов) и $argc (их количество). Пример:

Пример
// script.php
<?php
$name = $argv[1] ?? 'мир';
echo "Привет, $name!\n";
echo "Всего аргументов: $argc\n";
?>

Запуск:

Пример
php script.php Иван
Привет, Иван!
Всего аргументов: 2

Передача данных через STDIN

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

Пример
// read_input.php
<?php
$data = file_get_contents('php://stdin');
echo "Прочитано: $data";
?>
Пример
echo "Строка из конвейера" | php read_input.php
Прочитано: Строка из конвейера
Загрузка пользовательского конфигурационного файла

Иногда требуется запустить скрипт с особыми настройками PHP (например, увеличенным лимитом памяти).

Пример
php -c /путь/к/my.ini script.php

Содержимое my.ini может быть таким:

Пример
memory_limit = 256M
max_execution_time = 60

Проверить действующие настройки можно с помощью php -i | grep memory_limit или вызова ini_get в коде.

Выполнение кода без файла (для быстрых тестов)

PHP позволяет выполнять короткие скрипты прямо из командной строки.

Пример
php -r "echo 'Hello from CLI!';"
Hello from CLI!

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

Запуск в фоне и логирование

Для долгих задач на Unix системах можно запустить скрипт в фоне и перенаправить вывод.

Пример
nohup php /путь/к/long_task.php > /tmp/output.log 2>&1 &

Команда nohup защищает процесс от завершения при закрытии терминала. Проверить работающие процессы: ps aux | grep php. Ошибки обычно связаны с отсутствием прав на запись в лог файл.

Запуск PHP-файла - comments

En
Start php file (php)