Bash script для запуска PHP скрипт
У меня есть php script, который я хочу запустить с помощью bash script, поэтому я могу использовать Cron для запуска PHP скрипт каждую минуту или около того.
Насколько мне известно, мне нужно создать bash script для обработки PHP скрипт, который затем позволит мне использовать инструмент/таймер Cron.
До сих пор мне сказали, что мне нужно поставить:
#!/pathtoscript/testphp.php
в начале моего php script. Я не уверен, что делать дальше...
Любые советы? Спасибо.
Ответы
Ответ 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