А не правильнее ли скрипт исправить, чтобы работал? И лучше под более высокую версию PHP, хотя бы 5.6 (она хоть и мёртвая, но всё же более безопасная, чем 5.3).
Скрипт ищет битые ссылки на сайте с файлообменника, скрипт по сути уникальный и работал без перебоев уже лет 7, там вся проблема в конструкции вида chl_add_result(&$a,$links,$result), с версии php5.4 этот способ убрали
Вот здесь амперсанд убираешь:
Если вы не ошиблись с циферкой, то вам придется ждать тут специалиста обладающего книгой Некрономикон, больше никто не сможет воскресить в памяти все связанное с этой версией. Это не для наставления или поучение и не в обиду. Просто как намек, что пора бы обновить до актуальных версий все и уже разбираться когда на них будут косяки. Хотя все плагины давно работают на свежем.
Всем привет.Столкнулся с проблемой в плагине по поиску битых ссылок на сайтеПосле обновления версии php до 5.4 стала появляться ошибка Fatal error: Call-time pass-by-reference has been removedПри попытке активировать плагин, ругается на строку chl_add_result(&$a,$links,$result);
Вот кусок кода из плагинаfunction chl_check($a) { $url='links='; foreach ($a as $href) { $url.=$href[1]."\n";//\r"; } $url.='&key=267etye465yrg'; $data=$url; $out = "POST /check/ HTTP/1.1\n"; $out .= "Host: example.com\n"; $out .= "Referer: https:// example.com /\n"; $out .= "User-Agent: Opera\n"; $out .= "Content-Type: application/x-www-form-urlencoded\n"; $out .= "Content-Length: ".strlen($data)."\n\n"; $out .= $data."\n\n"; $ip = gethostbyname(' example.com '); $fp = fsockopen($ip, 80, $errno, $errstr, 10); fputs($fp, $out); $c=array(); $bool=false; while($gets=fgets($fp,2048)) { if (strpos($gets,'download.php')>0 || strpos($gets,'folders.php')>0) { $result=''; $links=''; $bool=true; $ex=explode(' ',$gets); if (sizeof($ex)<2){continue;} $result=trim($ex[1]); $links=trim($ex[0]); chl_add_result(&$a,$links,$result); } else { $gout.=$gets; } if (!$bool){echo $gout;} } foreach ($a as $b) { //$st00=fopen(dirname(__FILE__).'/data/00.txt',"a+"); $st8=fopen(dirname(__FILE__).'/data/8.txt',"a+"); $st9=fopen(dirname(__FILE__).'/data/9.txt',"a+"); $st1=fopen(dirname(__FILE__).'/data/1.txt',"a+"); $st2=fopen(dirname(__FILE__).'/data/2.txt',"a+"); if (@$b[2]=='' || @empty($b[2])) { //@fwrite($st00,$b[0].' - '.$b[1].'['.$b[2].']'."\n\r"); continue; } if ($b[2]=='8' || $b[2]==8) { fwrite($st8,$b[0].' - '.$b[1].'['.$b[2].']'."\n\r"); continue; } if ($b[2]=='9' || $b[2]==9) { fwrite($st9,$b[0].' - '.$b[1].'['.$b[2].']'."\n\r"); continue; } if ($b[2]=='0' || $b[2]==0) { continue; } if ($b[2]=='2' || $b[2]==2 || $b[2]==4 || $b[2]=='4' || $b[2]=='5' || $b[2]==5) { fwrite($st2,$b[0].' - '.$b[1].'['.$b[2].']'."\n\r"); continue; } if ($b[2]=='1' || $b[2]==1 || $b[2]==3 || $b[2]=='3') { fwrite($st1,$b[0].' - '.$b[1].'['.$b[2].']'."\n\r"); continue; } } chl_deletepost(); chl_deletepost2(); }Как то это возможно исправить?
location / { location ~ [^/]\.ph(p\d*|tml)$ { try_files /does_not_exists @fallback; limit_req zone=lreqz2 burst=10 nodelay; } location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf|ico)$ { expires 30d; valid_referers none blocked server_names ~(mydomain|yandex|google|yahoo|bing|facebook|subscribe|feedburner|mail|rambler|nigma|ask|qip); if ($invalid_referer) {return 403;} try_files $uri $uri/ @fallback; } location / { try_files /does_not_exists @fallback; limit_req zone=lreqz2 burst=10 nodelay; } location ~* ^.+\.(jpg|jpeg|gif|png|svg|js|css|mp3|ogg|mpe?g|avi|zip|gz|bz2?|rar|swf|ico)$ { expires 30d; try_files $uri $uri/ @fallback; } }
Да, там скрипт, который сразу же открывает другие сайты. Запросы к вашим ресурсам, скорее всего, формируются искусственно - чтобы привлечь внимание.
Во-первых, есть смысл заглянуть на тот bad(.)site
badd.mom там какой то множественный редирект стоит на разные порно сайты, бонга, лайвжасмин и т.д, так что будьте осторожны)
Скорее всего, до апача запрос не доходит. Если статика отдаётся через nginx, то и запрет надо писать в конфиге nginx.
Шаред или вдс?