2

У меня есть файл php, расположенный, например, в:

/data/web/process.php

Этот файл не является общедоступным (в этой папке не запущен виртуальный хост, но установлен Apache). Мне нужно выполнять этот файл каждую минуту каждый день.

Я знаю, что могу открыть crontab с помощью crontab -e , но я не уверен, что именно я должен записать в файл, чтобы все, что мне нужно было сделать, работало.

Любая помощь, пожалуйста?

2 ответа2

1

Попробуйте следующее:

/path/to/php -f /data/web/process.php

0

запустите crontab -e и добавьте строку:

* * * * * /usr/bin/php -f /data/web/process.php 2>&1 >> /path/to/output/file.log

Прежде чем сделать это, убедитесь, что /usr/bin/php -f /data/web/process.php делает то, что вы хотите. Также обратите внимание, что cron будет запускать его как тот же пользователь, который вызвал crontab -e , поэтому, если вы запустите его как пользователь rimmer, он будет работать как rimmer, если как root, он будет работать как root.

если вы хотите, чтобы он выполнялся как пользователь apache, выполните:

sudo -u www-data crontab -e

при условии, что www-data - ваш пользователь apache. Вы также можете создать файл /etc/cron.d/my-php-job .

Убедитесь, что плохие парни не могут отредактировать файл /data/web/process.php и внимательно просмотреть этот файл. Я бы сделал этот файл коренным владельцем и с разрешением 644. Не делайте это apache пользовательским и доступным для записи.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .