WebGraf » 2010.04.27 22:00

Код:

1
2
3
4
5
6
require_once ('/home/user/config.php');
 
mysql_query("DELETE FROM table WHERE `id`='25'; ");
header('Location: http://site.ru/'.$var);
die();

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

Как не делаю выполняет только mysql запрос и то при условии что конфиг в этом же файле.

Gemorroj » 2010.04.27 22:10

крон - это просто командная строка. т.е. туда можно написать все что и в командную строку. в том числе и весь этот php код. а Location не сработает, т.к. это не браузер и заголовки передавать тут некому. получит удаленную страницу через file_get_contents, например.
Добавлено спустя   4 минуты  17 секунд:
точнее крон, это просто утилита консольная, но комманда ему задается имеено та, которая будет выполнена в консоли

WebGraf » 2010.04.27 22:38

на счет file_get_contents понял

а вот весь код писать в ком строку неудобно.
Можно прописать команду чтобы сработало require_once ?

Если туплю немного не обращайте внимания, устал ужасно, не выспался...

Gemorroj » 2010.04.27 22:45

да, на сколько я понимаю, она должна работать. путь точно корректно указан?

WebGraf » 2010.04.27 22:50

да. так как при запросе через браузер срабатывает
сейчас стоит команда php -f
пробовал wget, linyx --dump

WebGraf » 2010.04.28 00:58

гм. Что же придумать...

Gemorroj » 2010.04.28 09:42

WebGraf, не, при запросе через браузер работает другой php. через консоль - консольная версия, и домашняя директория у них, наверняка разная. так что путь будет разный. попробуй указывать путь к файлу настроек через dirname(__FILE__) или просто __DIR__ если php5.3

WebGraf » 2010.04.28 10:51

require (dirname(__FILE__).'/config.php');
прописал. Но без изменений.
файл который в кроне записан и файл конфиг в одной директории.

WebGraf » 2010.04.28 12:17

Код:

1
2
chdir(dirname(__FILE__));
include_once 'config.php';

так уже писал. всеравно не работает

WebGraf » 2010.04.28 12:39

Какие настройки серва могут блокировать данную операцию?

Gemorroj » 2010.04.28 13:14

disable_functions. какие ошибки получаешь при запуске скрипта через крон? опиши подробнее.

WebGraf » 2010.04.28 14:05

disable_functions    symlink,shell_exec,exec,proc_close,proc_open,popen,system,dl,passthru,escapeshellarg,escapeshellcmd,ini_restore,set_time_limit,max_execution_time,get_current_user,posix_getuid,posix_geteuid,posix_getgid,posix_mkfifo,chgrp,posix_setuid,posix_setsid,posix_setpgid,posix_kill,getmyuid,apache_child_terminate,pfsockopen,imap_list,imap_body

Apr 28 13:54:01 server1 crond[19182]: (user) CMD (linyx --dump http://site.ru/script.php  > /dev/null 2>&1

Gemorroj » 2010.04.28 15:08

так ты через http вообще открываешь?
включи логирование ошибок, посмотри есть ли ошибки при выполнении запроса.

WebGraf » 2010.04.28 17:52

Во-первых, в том виде, как у вас, скрипт вызывается обычным образом (как из браузера) и проблем с путями быть не должно.
Во-вторых, не работает, возможно из-за того, то нет lynx. И лучше сделать вызов так:
/path/to/php -f /path/to/script.php > /path/to/script.log

/path/to/php — путь к интерпретатору php. Например, /usr/local/bin/php
/path/to/script.php — путь к вашему скрипту, включая путь к вашей домашней директории
/path/to/script.log — аналогично, путь к файлу, в который запишется результат выполнения, в т.ч. ошибки

Это подсказали в другом месте и я нашел ошибку. Благодарю

Gemorroj » 2010.04.28 18:59

ну правильно, обращаться к локальному скрипту через http это все равно что в собственной квартире по комнатам перемещаться лазая через окна)