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...
Это будет работать, если:
- Ваш веб-сервер прослушивает локальный интерфейс; а также
- Ваш файл /etc/hosts имеет www.myurl.com, указывающий на локальный IP.
Иначе это не получится. Если вы можете сделать netstat -untap
и убедитесь, что ваш веб-сервер прослушивает локальный интерфейс, он должен работать.