Shlyahten
@Shlyahten

Почему cron выполняет php в корне?

Такая проблема, больше эстетическая.
На хостинге лежит файл в директории /www/example.ru/dir/index.php
Я запускаю в кроне хостинга вот такую команду:
php -f /var/www/vh12345/data/www/example.ru/dir/index.php

Все хорошо работает, но проблема в том, что файлы, которые пишет скрипт (там txt и jpg) создаются в корневой директории: /var/www/vh12345/data/

Если запускать не через крон, то все нормально и файлы создаются в директории скрипта. Как это можно было бы исправить?
Пример кода для файла:
if (!copy($pic_file, "picture.jpg")) {
    echo "не удалось скопировать $pic_file...\n";
}


Спасибо
  • Вопрос задан
  • 333 просмотра
Решения вопроса 2
Shlyahten
@Shlyahten Автор вопроса
Нашел вот такой код, возможно поможет:
$path_parts = pathinfo($_SERVER['SCRIPT_FILENAME']); // определяем директорию скрипта
chdir($path_parts['dirname']); // задаем директорию выполнение скрипта
Ответ написан
Sanasol
@Sanasol Куратор тега PHP
нельзя просто так взять и загуглить ошибку
Значит то в скрипте у вас указаны относительные пути.

Запуска из крона таким образом запускает скрипт в текущей рабочей директории юзера т.е. ваш корень на хостинге.

Или делайте cd /var/www/vh12345/data/www/example.ru/dir/ && php index.php или прописывайте в коде пути абсолютные для данных.
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы