Скрипт Bash для запуска php-скрипта
У меня есть php-скрипт, который я хочу запускать с помощью bash-скрипта, поэтому я могу использовать Cron для запуска php-скрипта каждую минуту или около того.
Насколько мне известно, мне нужно создать скрипт bash для обработки php-скрипта, который затем позволит мне использовать инструмент/таймер Cron.
До сих пор мне говорили, что мне нужно поставить:
#!/pathtoscript/testphp.php
В начале моего php-скрипта. Я не уверен, что делать дальше...
Есть какие-нибудь советы? Спасибо.
8 answers
Если у вас установлен PHP в качестве инструмента командной строки (попробуйте ввести php
в терминал и посмотрите, работает ли он), ваша строка shebang (#!
) должна выглядеть так:
#!/usr/bin/php
Поместите это в начало своего сценария, сделайте его исполняемым (chmod +x myscript.php
) и создайте задание Cron для выполнения этого сценария (так же, как вы бы выполнили сценарий bash).
Вы также можете использовать php myscript.php
.
#!/usr/bin/env bash
PHP=`which php`
$PHP /path/to/php/file.php
На предыдущем плакате говорилось..
Если у вас установлен PHP в качестве инструмента командной строки… ваша строка shebang (#!) должна выглядеть так:
#!/usr/bin/php
Хотя это может быть правдой… просто потому, что вы можете ввести php
, не обязательно означает, что php будет именно там... /usr/bin/php
- это обычное место... но, как и в любом другом месте… он должен быть адаптирован к ВАШИМ env
.
Быстрый способ узнать, ГДЕ находится ВАШ конкретный исполняемый файл расположенный на вашем $PATH
, попробуйте..
➜which -a php
ВВЕДИТЕ, что для меня выглядит как..
php is /usr/local/php5/bin/php
php is /usr/bin/php
php is /usr/local/bin/php
php is /Library/WebServer/CGI-Executables/php
Первый - это значение по умолчанию, которое я получил бы, если бы просто набрал php в командной строке... но я могу использовать любой из них в shebang или напрямую… Вы также можете объединить имя исполняемого файла с env
, как это часто бывает, но я не очень много знаю о /доверяю этому . КСОХО.
Вам просто нужно установить:
/usr/bin/php path_to_your_php_file
В вашем кронтабе.
Я почти уверен, что что-то вроде этого вы ищете:
#!/bin/sh
php /pathToScript/script.php
Сохраните это с нужным именем скрипта (например, runPHP.sh ) и предоставьте ему права на выполнение, тогда вы сможете использовать его так, как захотите.
Редактировать: Вы могли бы вообще не использовать скрипт bash и просто добавить команду "php..." на кронтаб, если я не ошибаюсь.
Удачи!
Сценарий bash должен быть примерно таким:
#!/bin/bash
/usr/bin/php /path/to/php/file.php
Вам нужен исполняемый файл php (обычно находится в /usr/bin) и путь к запускаемому php-скрипту. Теперь вам нужно только поместить этот скрипт bash на crontab, и все готово!
Быстрый способ узнать, где находится ВАШ конкретный исполняемый файл на вашем ПУТИ $, попробуйте.
Еще более быстрый способ узнать, где находится php
...
whereis php
Я запускаю debian
и выше команду, показывающую мне
php: /usr/bin/php /usr/share/php /usr/share/man/man1/php.1.gz
Надеюсь, это поможет.
Если вы ничего не делаете в своем скрипте bash, кроме запуска php-скрипта, вы можете просто запустить php-скрипт из cron с помощью команды, такой как /usr/bin/php/path/to/your/file.php .