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

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'
Resolving www.myurl.com... myip
Connecting to www.myurl.com|myip|:80... failed: Connection refused. 

Могу ли я что-нибудь сделать для этого?

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

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

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

Если вы можете изменить 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...

вы также можете попробовать использовать параметр --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 вместо локального.