Intereting Posts
PHPMailer AddStringAttachment с PDF Php str_replace не работает со специальными символами Как использовать file_get_contents или file_get_html? Создание многомерного вложенного массива из результата MySQL с повторяющимися значениями (PHP) Перерисовать диаграмму Google на основе ввода пользователем через запрос AJAX Подготовленный оператор не работает с табличными запросами ALTER Как я могу аутентифицироваться на паровом сайте? Как устранить разрыв строки из функции fgets в PHP? MySQL вставляет данные из другой таблицы Защищенные от PHP классы и свойства, защищенные от кого? Веб-сайт в wordpress перенаправляет на старый URL после миграции AWS: политика пользователя IAM для SES не работает Получение действия контроллера до того, как код поведения будет запущен в Yii2 JQuery: Как я могу объединить два объекта данных json и опубликовать их? Назначение xml, сгенерированного циклом while переменной

Сценарий Bash для запуска скрипта php

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

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

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

#!/pathtoscript/testphp.php 

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

Любой совет? Благодарю.

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

 #!/usr/bin/php 

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

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

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

Если у вас установлен 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.

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

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

 /usr/bin/php path_to_your_php_file 

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

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

 #!/bin/sh php /pathToScript/script.php 

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

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

Удачи!

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

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

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

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

Еще быстрее узнать, где 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.