Назад | Перейти на главную страницу

Проблемы с запуском файла PHP для включения каталогов через Linux?

Я использую сервер Centos 5 и хочу настроить cronjob для запуска каждые 10-е число каждого месяца, но у меня есть следующие проблемы.

Файл PHP, который мне нужно запустить, находится в /var/www/html/test/ называется sendMails.php

Если я перейду в тестовый каталог, например. cd /var/www/html/test и введите ./sendMails.php мой сценарий работает идеально.

В тестовом каталоге находится папка с именем template, а в папке с шаблоном находится файл с именем index.htm. index.htm читается в sendMails.php через функцию php file_get_contents .

Теперь я запускаю сценарий из моего домашнего каталога, например. php /home/roland/sendMails.php и я получаю следующую ошибку file_get_contents(template/index.htm): failed to open stream: No such file or directory и не понимаю, почему, теперь это тоже не удастся, если я настрою cron.

Любые советы будут оценены

Как уже было сказано, лучше использовать абсолютный путь.

Я думаю яНе рекомендуется жестко указывать абсолютный путь в каждом скрипте, по крайней мере, если в этом нет реальной необходимости. Это сильный предел переносимости.

Правильный путь - это вычислить абсолютный путь во время выполнения с помощью dirname (__ FILE__) для получения каталога текущего скрипта (самого скрипта, а не автора скрипта, если он существует)

В вашем случае вы можете сделать

<?php
#Sendmail.php

file_get_contents(dirname(__FILE__).'/template/index.htm')
?>

Это должно работать везде!

Вы тоже переместили каталог шаблонов?

Лучше поместить файлы куда-нибудь и сделать скрипт своими абсолютными путями. Например. /path/to/your/script.php и в скрипте включить (/path/to/your/include/dir/index.html)

Создайте сценарий оболочки, который изменяет каталог и запускает сценарий php; затем вызовите этот сценарий оболочки из cronjob.

Вы можете добавить «chdir ('/ var / www / blabla');» в верхней части вашего файла PHP.