Kjapp og trygg hosting for Wordpress

Utføre PHP-script remote

Bjørnar

Gründer
Hei,

Jeg har en haug med domener, som alle har en fil liggende slik:

domene.no/filen.php

Den filen utfører en spesiell oppgave, og vha cron og curl besøkes den en gang i døgnet.

Men, for hvert nye domene, må jeg opprette en ny cron-jobb, og det er bare en del arbeid. Så da tenkte jeg kunne gjøre det noe enklere.

Jeg har en liste over alle domener, la oss si
Kode:
$urls = array(

"https://domene1.no",
"https://domene2.no",
"https://domene3.no",
"https://domene4.no",
);

Vil noe slikt som dette fungere, og gjøre jobben? Jeg er ikke stødig i curl, whatsoever:

Kode:
<?php

$file = 'filen.php';

$ch = curl_init();

curl_setopt($ch, CURLOPT_URL, $urls.$file);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

$result = curl_exec($ch);
if (curl_errno($ch)) {
    echo 'Error:' . curl_error($ch);
} else { echo 'ok'; }
curl_close ($ch);

?>
 
Hei,
Forstår jeg riktig at du har en cronjob for hver enkelt fil på hver enkelt domene slik det er i dag. Men ønsker å endre det til å ha en "master" fil og 1 cronjob til den hver dag og så tar "masterfilen" og foretar kjøring\kontroll av alle filene i arrayet?
 

Bjørnar

Gründer
På målfilene kjøres et enkelt PHP-script som fjerner noen filer på det aktuelle domenet (type opprydning av midlertidige filer som blir generert). Det ryddes opp, rett og slett fordi det genererer så sinnsyke mengder filer og størrelse.

Kode:
$files = glob($newpath.'*'); // get all file names
foreach($files as $file){ // iterate files
  if(is_file($file))
    unlink($file); // delete file
}
 

Bjørnar

Gründer
Takk for å ha dyttet meg i riktig retning!

Jeg endte opp med følgende, og det ser ut til at det virker ganske greit:

Kode:
<?php
function get_data($url) {
    $ch = curl_init();
    $timeout = 5;
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, $timeout);
    $data = curl_exec($ch);
    curl_close($ch);
    return $data;
  }

$sites = array(
    "https://qtmedia.no/test1.php",
    "https://conversionrate.no/test1.php",
    "https://dagensside.no/test1.php",
  );

foreach($sites as $site){
    $returned_content = get_data($site);
  }
?>
 
Sist redigert:
Fikk noen telefoner. Supert det løste seg! Her var mitt forslag.

Kode:
<?php
$nodes = array(
   "https://qtmedia.no/test1.php",
   "https://conversionrate.no/test1.php",
   "https://dagensside.no/test1.php"
);

$options = array(
CURLOPT_RETURNTRANSFER => true,
CURLOPT_CONNECTTIMEOUT => 10
);

$curl_arr = [];
$master = curl_multi_init();
foreach($nodes as $node) {
$url = $node;
$curl_arr[$node] = curl_init($url);
curl_setopt_array($curl_arr[$node], $options);
curl_multi_add_handle($master, $curl_arr[$node]);
}

do {
curl_multi_exec($master,$running);
} while($running > 0);
?>

Tror jeg ville lagt inn en form for validering i filene som kjøres om jeg skulle hatt det på min server, meen. Det det funker som du har gjort så :)
 

Bjørnar

Gründer
InfiniteWP tar backup av alle sidene, og lagret til dropbox. Men noen ganger feiler det, og da blir de liggende på webhotellet. Disse filene vil jeg da ha bort, for det blir noen GB i løpet av et år.
 
Topp