Zum Inhalt springen

indexxed search und cache all

Erstellt am 3. März 2005 · 7 Antworten · letzte Antwort am 14. September 2005

Tags: Cache & Performance, Suche, Frage

hanhan ·

der Seitencache ist leer trotz der Ausgabe, dass alles getan wurde.

The settings are:

* max 100 pages by each run,
* using curl

The following domains have been installed:
0 domainName sub.domain.tld

Caching wird durchgeführt:

curl -o tempCURL_L0.html -d id=1 -d L=0 http://xxx/index.php
curl -o tempCURL_L0.html -d id=2 -d L=0 http://xxx/index.php
curl -o tempCURL_L0.html -d id=6 -d L=0 http://xxx/index.php
.
.
.

Remaining pages to cache: 72
You've got to run this tool several times.

Dann der

Überblick:
Anzahl aller Seiten: 102 Seiten
Anzahl gecachter Seiten: 0 Seiten

curl ist laut phpinfo insstalliert, safemode ist OFF

Hat wer 'ne Idee?

hanhan ·

Hab's gefunden.
Habe über phpinfo '--with-curl' gelesen und angenommen es ich habe Zugriff auf curl.
Habe den code in catchall für die Nutzung des phpinternen curl angepasst und es funktioniert.

mwesterm ·

Hi,

wie hast Du denn das Plugin überhaupt zum laufen bekommen?

Bei mir steht unter "Cache all Pages"

--
Settings for caching:
The settings are:
max 50 pages by each run,
using curl
Caching in progress:
Remaining pages to cache: 35
You've got to run this tool several times.
--

Dabei habe ich in index.php mal versuchsweise 100 für $howmuch eingegtragen (und natürlich die tmp-Files gelöscht).
Kein Erfolg.
Außerdem blicke ich nicht, wie die das Caching starte.

wget und curl ist installiert.

Thks

Martin

hanhan ·

Ich habe mir die Datei mod1/index.php der Extension Cache all angeschaut.
Dort wird curl direkt mittels shell_exec... genutzt. Habe mitbekommen, dass dieser Aufruf immer mit einen Fehler zurückkam, was nach außen nicht sichtbar war.
Nun habe ich diesen Aufruf ersetzt und greife zurück auf die curl-Funktionen, welche php bietet.
Nun funktioniert es.

mwesterm ·

Hi,

ich habe mir auch den Source angesehen und bin draufgekommen, dass er über die Domains geht.
Tja, und ich hatte keine angelegt (was eine Domain bringt, ist mir auch noch nicht ganz klar).

Domain angelegt und schon lief es.

der shell_exec aufruf ging dann ohne Probleme

Gruß
Martin

webs ·
hanhan schrieb

Ich habe mir die Datei mod1/index.php der Extension Cache all angeschaut.
Dort wird curl direkt mittels shell_exec... genutzt. Habe mitbekommen, dass dieser Aufruf immer mit einen Fehler zurückkam, was nach außen nicht sichtbar war.
Nun habe ich diesen Aufruf ersetzt und greife zurück auf die curl-Funktionen, welche php bietet.
Nun funktioniert es.

Hallo hanhan!
Kannst Du bitte den Quelltext zuschicken?

thx!
webs

hanhan ·

in function moduleContent() der Datei cwt_cacheall/mod1/index.php ist in dem Bereich case 2 die Stelle mit //wget each page from the array

				while ($row = mysql_fetch_assoc($res_uid)) {
					$id = $row["uid"];
					$lang = 1;

					if ($this->use_curl)  {
					    $ch = curl_init();
					    $fp = fopen ("./tempCURL_L.html", "w");
					    curl_setopt ($ch, CURLOPT_FILE, $fp);
					    curl_setopt ($ch, CURLOPT_HEADER, 0);
					    curl_setopt ($ch, CURLOPT_MUTE, 1);

						for ($j=0;$j<$numberOfDomains;$j++) {
							for ($i=0;$i<=$numberOfLanguages;$i++) { //run through all languages
						    	$curl = 'curl -o tempCURL_L'.$i.'.html -d id='.$row[uid].' -d L='.$i.' http://'.$domains[$j]["domainName"].'/index.php';
						    	$content .=  $curl."<br>";
						    	#$content .= (($vv=shell_exec($curl))?$vv:"nichts")."<br>";
						    	#shell_exec($curl);
                         curl_setopt ($ch, CURLOPT_URL, "http://".$domains[$j]["domainName"]."/index.php?id=".$row["uid"]);
                         curl_exec ($ch);
							}
						}
                  curl_close ($ch);
                  fclose ($fp);
						#shell_exec('rm tempCURL_L*');
                  #$content .= (($vv=shell_exec('rm tempCURL_L*'))?$vv:"nichts")."<br>";
					} else {
					    for ($j=0;$j<$numberOfDomains;$j++) {
						    for ($i=0;$i<=$numberOfLanguages;$i++) { //run through all languages
							    $wget = "wget http://".$domains[$j]["domainName"]."/index.php?id=".$row["uid"]."&L=".$i." --spider --timeout=0 --wait=0";
							    $content .=  $wget."<br>";
						    }
					    }
					}
            }
Stoneage ·

DANKE! Allerdings hat sich der code der extension geändert (läuft aber immer noch nicht :p)

Hier mein Versuch:

if ($this->use_curl)  {
    for ($j=0;$j<$numberOfDomains;$j++) {
        for ($i=0;$i<=$numberOfLanguages;$i++) { //run through all languages
        $curl = 'curl -o tempCURL_L'.$i.'.html -d id='.$row[uid].' -d L='.$i.' http://'.$domains[$j]["domainName"].'/index.php';
        $content .=  $curl."<br />";
        //shell_exec($curl);
        curl_setopt($ch, CURLOPT_URL, "http://".$domains[$j]["domainName"]."/index.php?id=".$row["uid"].'&L='.$i);
        curl_exec($ch);
        }
    }       
    //shell_exec('rm tempCURL_L*');
} else {

Grüße,

T.