WGET Localhost 0 байтов

Привет, я пытаюсь выполнить wget локально, используя cron, мой хостинг сказал мне, что из-за локальной обратной связи это не будет работать?

Я пытаюсь выполнить следующую команду:

wget -q -O /pathtofile/blah.xml "http://myurl/myfeed.php?id=26"

Здесь я пытаюсь сделать вывод (rss) и сохранить его на своем веб-сервере в формате xml. Я сделал это, открыв URL-адрес и сохранив исходный код в xml и загрузив его, поэтому я хотел бы автоматизировать этот.

Текст ошибки:

--12: 38: 58-- http://www.myurl.com/mydir/myfeed.php?id=26
=> `myfeed.php? id = 26 '
Разрешение www.myurl.com... myip
Соединение с www.myurl.com|myip|:80... не удалось: соединение отклонено. 

Есть ли что-то, что я могу сделать, чтобы достичь этого?

3 ответа

Решение

Вы также можете попробовать использовать опцию --bind-address.

  --bind-address=ADDRESS
       When making client TCP/IP connections, bind to ADDRESS on the local machine. ADDRESS may be specified as a hostname or IP
       address.  This option can be useful if your machine is bound to multiple IPs.

и привязать к внешнему ip, а не к локальному.

Если вы можете изменить myfeed.php взять переменные командной строки, а также $_POST/$_GET, тогда вы можете просто запустить PHP из cron:

php /path/to/myfeed.php --id=26

Смотрите здесь для получения дополнительной информации о передаче аргументов в командной строке PHP.

Вам нужно будет сделать что-то вроде этого в верхней части вашего файла:

define('CLI', php_sapi_name() == 'cli');

if(CLI){
   $input =& $argv;
}else{
  $input =& $_POST;
}

if(isset($input['id'])) // etc...

Это будет работать, если:

  1. Ваш веб-сервер прослушивает локальный интерфейс; а также
  2. Ваш файл /etc/hosts имеет www.myurl.com, указывающий на локальный IP.

Иначе это не получится. Если вы можете сделать netstat -untap и убедитесь, что ваш веб-сервер прослушивает локальный интерфейс, он должен работать.

Другие вопросы по тегам