Скрипт Bash для запуска php-скрипта


У меня есть php-скрипт, который я хочу запускать с помощью bash-скрипта, поэтому я могу использовать Cron для запуска php-скрипта каждую минуту или около того.

Насколько мне известно, мне нужно создать скрипт bash для обработки php-скрипта, который затем позволит мне использовать инструмент/таймер Cron.

До сих пор мне говорили, что мне нужно поставить:

#!/pathtoscript/testphp.php

В начале моего php-скрипта. Я не уверен, что делать дальше...

Есть какие-нибудь советы? Спасибо.

Author: Rafe Kettler, 2011-04-01

8 answers

Если у вас установлен PHP в качестве инструмента командной строки (попробуйте ввести php в терминал и посмотрите, работает ли он), ваша строка shebang (#!) должна выглядеть так:

#!/usr/bin/php

Поместите это в начало своего сценария, сделайте его исполняемым (chmod +x myscript.php) и создайте задание Cron для выполнения этого сценария (так же, как вы бы выполнили сценарий bash).

Вы также можете использовать php myscript.php.

 61
Author: Rafe Kettler, 2011-03-31 22:11:42
#!/usr/bin/env bash
PHP=`which php`
$PHP /path/to/php/file.php
 12
Author: FDisk, 2015-04-19 11:14:56

На предыдущем плакате говорилось..

Если у вас установлен 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, как это часто бывает, но я не очень много знаю о /доверяю этому . КСОХО.

 10
Author: Alex Gray, 2012-01-09 07:31:47

Вам просто нужно установить:

/usr/bin/php path_to_your_php_file

В вашем кронтабе.

 7
Author: Spyros, 2011-03-31 22:11:56

Я почти уверен, что что-то вроде этого вы ищете:

#!/bin/sh

php /pathToScript/script.php

Сохраните это с нужным именем скрипта (например, runPHP.sh ) и предоставьте ему права на выполнение, тогда вы сможете использовать его так, как захотите.

Редактировать: Вы могли бы вообще не использовать скрипт bash и просто добавить команду "php..." на кронтаб, если я не ошибаюсь.

Удачи!

 6
Author: Sergio Morales, 2011-03-31 22:12:20

Сценарий bash должен быть примерно таким:

#!/bin/bash
/usr/bin/php /path/to/php/file.php

Вам нужен исполняемый файл php (обычно находится в /usr/bin) и путь к запускаемому php-скрипту. Теперь вам нужно только поместить этот скрипт bash на crontab, и все готово!

 4
Author: Bogdan Constantinescu, 2011-03-31 22:12:19

Быстрый способ узнать, где находится ВАШ конкретный исполняемый файл на вашем ПУТИ $, попробуйте.

Еще более быстрый способ узнать, где находится php...

whereis php

Я запускаю debian и выше команду, показывающую мне

php: /usr/bin/php /usr/share/php /usr/share/man/man1/php.1.gz

Надеюсь, это поможет.

 1
Author: Eddie B, 2016-10-20 07:21:27

Если вы ничего не делаете в своем скрипте bash, кроме запуска php-скрипта, вы можете просто запустить php-скрипт из cron с помощью команды, такой как /usr/bin/php/path/to/your/file.php .

 0
Author: Costi Ciudatu, 2011-03-31 22:11:53