Может ли кто-нибудь объяснить мне ограничения сценариев работы cron?

Я думаю, что не совсем понимаю, в чем разница между запуском PHP-скрипта в качестве задания cron и доступом к нему через браузер. Когда я тестирую test.php, запуская его с помощью Safari, он, как и ожидалось, записывает в текстовый файл, делает записи в БД и т. д. Когда он запускается как задание cron, он делает все, кроме записи в текстовый файл.

Я уже разобрался с этим, не обращаясь к синтаксическому анализатору PHP, вставив: #!/usr/bin/php в начале файла.

Почему мой скрипт не записывает в мой текстовый файл через cron, когда он работает через Safari?

(Это прямой фрагмент кода fopen, fwrite, fclose, поэтому я не думаю, что его раскрытие не будет освещать)


person Alex Mcp    schedule 14.08.2009    source источник


Ответы (2)


это будут права пользователя. в то время как apache (или любой другой веб-сервер, который вы используете) может иметь разрешение на запись в эту папку, пользователь cron не имеет, если вы сделаете их обоих членами одной и той же группы или сделаете папку доступной для записи, что должно решить вашу проблему

имейте в виду, что доступность для записи во всем мире не является хорошей мерой безопасности

person bumperbox    schedule 14.08.2009
comment
Ооо хорошая идея. Я посмотрю, позволит ли хост мне установить группы пользователей (хостинг Joyent). - person Alex Mcp; 14.08.2009

Попробуйте chdir в какое-то существующее доступное для записи место, прежде чем делать fopen. Вы никогда не знаете, где cron хранит ваши данные.

person Stefano Borini    schedule 14.08.2009