Подтвердить что ты не робот

Bash script для запуска PHP скрипт

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

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

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

#!/pathtoscript/testphp.php

в начале моего php script. Я не уверен, что делать дальше...

Любые советы? Спасибо.

4b9b3361

Ответ 1

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

#!/usr/bin/php

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

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

Ответ 2

#!/usr/bin/env bash
PHP=`which php`
$PHP /path/to/php/file.php

Ответ 3

Предыдущий плакат сказал..

Если у вас установлен PHP как инструмент командной строки... ваша строка shebang (#!) должна выглядеть так: #!/usr/bin/php

Хотя это может быть правдой... только потому, что вы можете ввести php, НЕ обязательно означает, что там, где php будет... /usr/bin/php - это общее место... но как с любым shebang... это должно быть с учетом ВАШЕГО env.

быстрый способ узнать, ГДЕ ЕЕ конкретный исполняемый файл находится на вашем $PATH, попробуйте.. ➜ which -a php ENTER, который для меня выглядит..

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, как это часто видно, но я действительно мало знаю об этом/доверии. XOXO.

Ответ 4

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

/usr/bin/php path_to_your_php_file

в вашем crontab.

Ответ 5

Я почти уверен, что вот что вы ищете:

#!/bin/sh

php /pathToScript/script.php

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

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

Удачи!

Ответ 6

bash script должен выглядеть примерно так:

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

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

Ответ 7

быстрый способ узнать, ГДЕ ЕЕ конкретный исполняемый файл находится на вашем $PATH, попробуйте.

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

whereis php

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

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

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

Ответ 8

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

Ответ 9

Я нашел php-cgi на моем сервере. И это на пути к окружающей среде, поэтому я смог бежать из любого места. Я file.php выполнил file.php в моем скрипте bash.

#!/bin/bash
php-cgi ../path/file.php

И скрипт вернул это после того, как PHP-скрипт был выполнен:

X-Powered-By: PHP/7.1.1 Тип содержимого: text/html; кодировка = UTF-8

сделанный!

Кстати, сначала проверьте, проверив версию, выдав команду php-cgi -v