Привет, я пытаюсь запустить 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.
Могу ли я что-нибудь сделать для этого?
Будет работать, если:
Иначе не получится. Если вы можете сделать 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 вместо локального.