Короткий ответ: PHP-скрипт можно запустить двумя способами. Если это веб-скрипт, его загружают в папку сайта и открывают через браузер. Если это служебный скрипт, его запускают из терминала командой php script.php или ставят в cron. Перед запуском нужно проверить, что на сервере установлен PHP, файл лежит в правильной папке, права доступа не мешают, а ошибки пишутся в лог
Запрос “как запустить скрипт на сервере” часто слишком широкий. Один пользователь скачал готовый PHP-скрипт, второй хочет выполнить обработчик формы, третий пытается запустить парсер по расписанию, четвертый загрузил файл на хостинг и видит белую страницу. Поэтому сначала нужно понять тип скрипта
Веб-скрипт и консольный скрипт
Веб-скрипт открывается через браузер
https://example.com/script.php
Консольный скрипт запускается на сервере через командную строку
php script.php
Если скрипт должен отвечать пользователю, принимать форму, показывать страницу или отдавать JSON, скорее всего он веб-скрипт. Если он должен пересчитать данные, отправить отчеты, почистить файлы или выполнить задачу ночью, скорее всего он консольный
Куда загружать файл
На обычном хостинге файлы сайта лежат в публичной папке. Она может называться public_html, www, htdocs, public или совпадать с доменом. Если положить PHP-файл не туда, браузер его не увидит
Пример структуры
site-root/
public_html/
index.php
script.php
После загрузки откройте файл через домен
https://example.com/script.php
Если браузер скачивает файл или показывает PHP-код как текст, сервер не выполняет PHP. Это уже проблема настройки веб-сервера, а не самого скрипта
Проверочный скрипт
Перед запуском большого файла создайте самый простой тест
<?php
echo "PHP работает";
Назовите его test.php, загрузите в папку сайта и откройте через браузер. Если текст появился, PHP работает. Если нет, сначала исправляйте окружение, а не большой скрипт
Запуск через терминал
Если у вас есть SSH-доступ, перейдите в папку со скриптом
cd /path/to/project
php script.php
Если скрипт использует относительные пути, запускать его нужно из правильной директории. Например, file_get_contents('data/input.txt') ищет файл относительно текущей рабочей папки, а не всегда относительно самого скрипта
Для надежности в PHP-коде часто используют __DIR__
<?php
$file = __DIR__ . '/data/input.txt';
echo file_get_contents($file);
Запуск по расписанию
Если скрипт должен выполняться автоматически, его ставят в cron. Пример запуска раз в час
0 * * * * /usr/bin/php /path/to/project/script.php
Перед cron обязательно запустите эту же команду вручную. Если вручную не работает, по расписанию она тоже не заработает. В cron окружение обычно беднее, чем в обычном терминале, поэтому лучше указывать полный путь к PHP и полный путь к скрипту
Права доступа
Для PHP-файлов на веб-сервере обычно достаточно прав на чтение. Не нужно ставить 777 на весь проект. Если скрипт должен писать в папку, права нужны именно на эту папку, а не на все файлы сайта
Пример
chmod 644 script.php
chmod 755 storage
Конкретные права зависят от владельца файлов и настроек хостинга. Если вы не уверены, лучше использовать файловый менеджер панели или документацию хостинга
Как увидеть ошибки
На публичном сервере лучше смотреть ошибки в логах, а не выводить их всем посетителям. Для быстрой проверки в учебном окружении можно временно добавить
<?php
ini_set('display_errors', '1');
error_reporting(E_ALL);
Если это рабочий сайт, безопаснее включить логирование и смотреть файл ошибок. Белая страница почти всегда означает, что PHP завершился с ошибкой, но вывод ошибок скрыт
Мини-практика
Создайте test.php с выводом PHP работает, загрузите его в публичную папку сайта и откройте через браузер. Затем создайте script.php, который выводит текущую дату
<?php
echo date('Y-m-d H:i:s');
После этого запустите тот же файл из терминала командой php script.php. Так вы увидите разницу между запуском через браузер и запуском через CLI
Частые ошибки
Файл загрузили не в публичную папку. В FTP он есть, но по адресу сайта не открывается
Сервер скачивает PHP-файл. Значит веб-сервер не настроен на выполнение PHP
Скрипт работает в браузере, но не работает в терминале. Обычно причина в другой версии PHP, другом php.ini или относительных путях
Скрипт работает вручную, но не работает в cron. Чаще всего не указан полный путь к PHP, не та рабочая директория или нет нужных переменных окружения
Ставят права 777 на весь сайт. Это не лечение ошибок, а риск для безопасности
Не смотрят логи. Без логов человек видит только “не работает”, хотя причина может быть в одной строке
Что почитать дальше по PHP
Если нужен общий маршрут по теме, откройте рубрику PHP. Для соседних задач пригодятся эти разборы:
- Open Server: как запустить скачанные PHP-скрипты
- PHP-скрипт: что это такое и как написать первый файл
- Как добавить PHP-скрипт в Denwer и открыть его в браузере
- Как запустить PHP-файл в браузере через localhost



