Werbung / Banner buchen
Neuigkeiten
  • Die modified eCommerce Shopsoftware ist kostenlos, aber nicht umsonst.
    Spenden
  • Damit wir die modified eCommerce Shopsoftware auch zukünftig kostenlos anbieten können:
    Spenden
  • Thema: sitemap.xml per cronjob - welche Datei anstoßen?

    prost

    • Fördermitglied
    • Beiträge: 52
    • Geschlecht:
    sitemap.xml per cronjob - welche Datei anstoßen?
    am: 09. November 2010, 07:47:30
    Ich möchte meine sitemap.xml per cronjob anschieben lassen. Jedoch weiß ich nicht welche Datei ich anstubsen soll. Stubse ich die http://www.meinshop.de/google_sitemap.php?auto=true&ping=true bzw. http://www.meinshop.de/google_sitemap.php an, geht nichts. Ich sehe dann nur die Anmeldeseite des Shops.

    Im Forum konnte ich leider nichts finden.



    Linkback: https://www.modified-shop.org/forum/index.php?topic=9159.0
    Trade Republic - Provisionsfrei Aktien handeln

    franky_n

    • Experte
    • Beiträge: 4.950
    sitemap.xml per cronjob - welche Datei anstoßen?
    Antwort #1 am: 09. November 2010, 08:14:38
    Hallo prost,

    mach Dir eine Unterkategorie z.B. cronjob mit einer .htaccess (Passwortschutz) damit niemand anderes die php Datei starten kann.
    Dann die google_sitemap.php kopieren.

    Dann folgende Zeilen in der google_sitemap.php raus.
    Z.19 - 23:

    Code: PHP  [Auswählen]
    // if the customer is not logged on, redirect them to the login page
    if (!isset($_SESSION['customer_id'])) {

        xtc_redirect(xtc_href_link(FILENAME_LOGIN, '', 'NONSSL'));
    }
    Man könnte natürlich dann in der Datei auch noch die HTML Ausgabe rauslöschen, aber es stört den cronjob ja nicht! ;)

    Dann den cronjob auf die Datei einrichten.

    Viele Grüße

    Franky

    Tomcraft

    • modified Team
    • Gravatar
    • Beiträge: 46.373
    • Geschlecht:
    sitemap.xml per cronjob - welche Datei anstoßen?
    Antwort #2 am: 09. November 2010, 09:13:13
    Prima Tipp für's Wiki! ;-)

    Grüße

    Torsten

    prost

    • Fördermitglied
    • Beiträge: 52
    • Geschlecht:
    sitemap.xml per cronjob - welche Datei anstoßen?
    Antwort #3 am: 09. November 2010, 10:42:58
    Ich bekomme den Fehler:
    Zitat
    Fatal error: Smarty error: the $compile_dir 'templates_c' does not exist, or is not a directory. in /www/htdocs/w00d0c65/includes/classes/Smarty_2.6.26/Smarty.class.php on line 1097

    franky_n

    • Experte
    • Beiträge: 4.950
    sitemap.xml per cronjob - welche Datei anstoßen?
    Antwort #4 am: 09. November 2010, 10:54:03
    Hallo prost,

    dann nimm noch ab Z.284 das raus:

    Code: PHP  [Auswählen]
    $smarty->caching = 0;
    $smarty->assign('language', $_SESSION['language']);
    $smarty->assign('CONTENT_BODY',$main_content);
    $smarty->assign('BUTTON_CONTINUE','<a href="' . xtc_href_link(FILENAME_START) . '">' . xtc_image_button('button_continue.gif', IMAGE_BUTTON_CONTINUE) . '</a>');
    $main_content = $smarty->fetch(CURRENT_TEMPLATE . '/module/google_sitemap.html');
    $smarty->assign('main_content',$main_content);
    if (!defined(RM)) $smarty->load_filter('output', 'note');
    $smarty->display(CURRENT_TEMPLATE . '/index.html');
    das ist nämlich die HTML Ausgabe... die braucht der Cronjob nicht.

    Viele Grüße

    Franky

    prost

    • Fördermitglied
    • Beiträge: 52
    • Geschlecht:
    sitemap.xml per cronjob - welche Datei anstoßen?
    Antwort #5 am: 09. November 2010, 10:57:52
    Weiterhin der Fehler:
    Zitat
    Fatal error: Smarty error: the $compile_dir 'templates_c' does not exist, or is not a directory. in /www/htdocs/w00d0c65/includes/classes/Smarty_2.6.26/Smarty.class.php on line 1097

    prost

    • Fördermitglied
    • Beiträge: 52
    • Geschlecht:
    sitemap.xml per cronjob - welche Datei anstoßen?
    Antwort #6 am: 09. November 2010, 11:00:47
    Code: PHP  [Auswählen]
    <?php
    /*
    osCommerce, Open Source E-Commerce Solutions
    http://www.oscommerce.com

    Copyright (c) 2005 osCommerce

    Released under the GNU General Public License

    @Author: Raphael Vullriede (osc@rvdesign.de)

    Port to xtCommerce

    @Author: Winfried Kaiser (w.kaiser@fortune.de)
    */


    require('includes/application_top.php');

    // XML-Specification: https://www.google.com/webmasters/sitemaps/docs/de/protocol.html

    define('CHANGEFREQ_CATEGORIES', 'weekly');  // Valid values are "always", "hourly", "daily", "weekly", "monthly", "yearly" and "never".
    define('CHANGEFREQ_PRODUCTS', 'daily'); // Valid values are "always", "hourly", "daily", "weekly", "monthly", "yearly" and "never".

    define('PRIORITY_CATEGORIES', '1.0');
    define('PRIORITY_PRODUCTS', '0.5');

    define('MAX_ENTRYS', 50000);
    define('MAX_SIZE', 10000000);
    define('GOOGLE_URL', 'http://www.google.com/webmasters/sitemaps/ping?sitemap=');
    // BOF - Tomcraft - 2010-02-09 - Changed LIVE_URL
    //define('LIVE_URL', 'http://webmaster.live.com/webmaster/ping.aspx?siteMap=');
    define('LIVE_URL', 'http://www.bing.com/webmaster/ping.aspx?siteMap=');
    // EOF - Tomcraft - 2010-02-09 - Changed LIVE_URL
    define('ASK_URL', 'http://submissions.ask.com/ping?sitemap=');
    $SEO_DOMAINS = array(LIVE_URL,ASK_URL,GOOGLE_URL);

    define('SITEMAPINDEX_HEADER', "<?xml version='1.0' encoding='UTF-8'?>"."\n".'
              <sitemapindex xmlns="http://www.google.com/schemas/sitemap/0.84"'
    ."\n".'
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"'
    ."\n".'
                  xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84'
    ."\n".'
                  http://www.google.com/schemas/sitemap/0.84/siteindex.xsd">'
    ."\n"
    );
    define('SITEMAPINDEX_FOOTER', '</sitemapindex>');
    define('SITEMAPINDEX_ENTRY', "\t".'<sitemap>'."\n\t\t".'<loc>%s</loc>'."\n\t\t".'<lastmod>%s</lastmod>'."\n\t".'</sitemap>'."\n");

    define('SITEMAP_HEADER', "<?xml version='1.0' encoding='UTF-8'?>"."\n".'
              <urlset xmlns="http://www.google.com/schemas/sitemap/0.84"'
    ."\n".'
                  xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"'
    ."\n".'
                  xsi:schemaLocation="http://www.google.com/schemas/sitemap/0.84'
    ."\n".'
                  http://www.google.com/schemas/sitemap/0.84/sitemap.xsd">'
    ."\n"
    );
    define('SITEMAP_FOOTER', '</urlset>');
    define('SITEMAP_ENTRY', "\t".'<url>'."\n\t\t".'<loc>%s</loc>'."\n\t\t".'<priority>%s</priority>'."\n\t\t".'<lastmod>%s</lastmod>'."\n\t\t".'<changefreq>%s</changefreq>'."\n\t".'</url>'."\n");

    $smarty = new Smarty;

    $breadcrumb->add('Google Sitemap', xtc_href_link(FILENAME_GOOGLE_SITEMAP, xtc_get_all_get_params(), 'NONSSL'));

    // include boxes
    require(DIR_FS_CATALOG .'templates/'.CURRENT_TEMPLATE. '/source/boxes.php');

    require(DIR_WS_INCLUDES . 'header.php');
    include (DIR_WS_MODULES . 'default.php');

    define('SITEMAP_CATALOG', HTTP_SERVER.DIR_WS_CATALOG);

    $usegzip        = false;
    $autogenerate   = false;
    $output_to_file = false;
    $notify_google  = false;
    $notify_url     = '';

    // request over http or command line?
    if (!isset($_SERVER['SERVER_PROTOCOL'])) {

        if (count($_SERVER['argv']> 1)) {

            // option p ist only possible of min 1 more option isset
            if ( (strlen($_SERVER['argv'][1])>= 2) && strpos($_SERVER['argv'][1], 'p') !== true) {
                $notify_google = true;
                $_SERVER['argv'][1] = str_replace('p', '', $_SERVER['argv'][1]);
            }

            switch($_SERVER['argv'][1]) {

                // dump to file
                case '-f':
                $output_to_file = true;
                $filename = $_SERVER['argv'][2];
                break;

                // dump to compressed file
                case '-zf':
                $usegzip        = true;
                $output_to_file = true;
                $filename = $_SERVER['argv'][2];
                break;

                // autogenerate sitemaps. useful for sites with more the 500000 Urls
                case '-a':
                $autogenerate = true;
                break;

                // autogenerate sitemaps and use gzip
                case '-za':
                $autogenerate   = true;
                $usegzip        = true;
                break;
            }
        }
    } else {

        if (count($_GET)> 0) {

            // dump to file
            if (isset($_GET['f'])) {
                $output_to_file = true;
                $filename = $_GET['f'];
            }
            // use gzip
            $usegzip = (isset($_GET['gzip']) && $_GET['gzip'] == true) ? true : false;

            // autogenerate sitemaps
            $autogenerate = (isset($_GET['auto']) && $_GET['auto'] == true) ? true : false;

            // notify google
            $notify_google = (isset($_GET['ping']) && $_GET['ping'] == true) ? true : false;
        }
    }

    // use gz... functions for compressed files
    if ($usegzip) {
        $function_open  = 'gzopen';
        $function_close = 'gzclose';
        $function_write = 'gzwrite';

        $file_extension = '.xml.gz';
    } else {
        $function_open  = 'fopen';
        $function_close = 'fclose';
        $function_write = 'fwrite';

        $file_extension = '.xml';
    }

    $c = 0;
    //BOF - Dokuman - 2009-11-09 - Create "sitemap.xml" instead of "sitemap1.xml"
    //$i = 1;
    $i = '';
    //EOF - Dokuman - 2009-11-09 - Create "sitemap.xml" instead of "sitemap1.xml"

    $sitemap_filename = 'sitemap'.$i.$file_extension;
    if ($autogenerate) {
        $filename = $sitemap_filename;
    }
    $autogenerate = $autogenerate || $output_to_file;
    if ($autogenerate) {
        $fp = $function_open($filename, 'w');
        $main_content = "Sitemap-Datei '<b>" . $filename . "</b>' erstellt.";
    }
    $notify_url = SITEMAP_CATALOG.$sitemap_filename;

    output(SITEMAP_HEADER);
    $strlen = strlen(SITEMAP_HEADER);

    $cat_result = xtc_db_query("
        SELECT
          c.*,
          cd.*,
          UNIX_TIMESTAMP(c.date_added) as date_added,
          UNIX_TIMESTAMP(c.last_modified) as last_modified,
          l.code
        FROM
          "
    .TABLE_CATEGORIES." c,
          "
    .TABLE_CATEGORIES_DESCRIPTION." cd,
          "
    .TABLE_LANGUAGES." l
        WHERE
          c.categories_id = cd.categories_id AND
          cd.language_id = l.languages_id AND
          c.categories_status = 1
        ORDER by
          cd.categories_id
      "
    );

    $cat_array = array();
    if (xtc_db_num_rows($cat_result)> 0) {
        while($cat_data = xtc_db_fetch_array($cat_result)) {
            $cat_array[$cat_data['categories_id']][$cat_data['code']] = $cat_data;
        }
    }
    reset($cat_array);

    foreach($cat_array as $lang_array) {
        foreach($lang_array as $cat_id => $cat_data) {
            $lang_param = ($cat_data['code'] != DEFAULT_LANGUAGE) ? '&language='.$cat_data['code'] : '';
            $date = ($cat_data['last_modified'] != NULL) ? $cat_data['last_modified'] : $cat_data['date_added'];

            /**
             * @author Timo Paul (mail[at]timopaul.biz)
             * @since Saturday, 16-th May 2009
             *
             * generate seo-frendly uri's
             */

            $cPath_new = xtc_category_link($cat_data['categories_id'], $cat_data['categories_name']);
            $string = sprintf(SITEMAP_ENTRY, xtc_href_link(FILENAME_DEFAULT, $cPath_new), PRIORITY_CATEGORIES, iso8601_date($date), CHANGEFREQ_CATEGORIES);

            $c_cat_total++;
            output_entry();
        }
    }

    $stmt = "
        SELECT
          p.*,
          pd.*,
          UNIX_TIMESTAMP(p.products_date_added) as products_date_added,
          UNIX_TIMESTAMP(p.products_last_modified) as products_last_modified,
          l.*
        FROM
          "
    .TABLE_PRODUCTS." p,
          "
    .TABLE_PRODUCTS_DESCRIPTION." pd,
          "
    .TABLE_LANGUAGES." l
        WHERE
          p.products_status='1' AND
          p.products_id = pd.products_id AND
          pd.language_id = l.languages_id
        ORDER BY
          p.products_id
      "
    ;

    $product_result = xtc_db_query($stmt);
    if (xtc_db_num_rows($product_result)> 0) {
        while($product_data = xtc_db_fetch_array($product_result)) {

            /**
             * @author Timo Paul (mail[at]timopaul.biz)
             * @since Saturday, 16-th May 2009
             *
             * generate article-array with valid seo-uri's
             */

            $pArray = $product->buildDataArray($product_data);

            $lang_param = ($product_data['code'] != DEFAULT_LANGUAGE) ? '&language='.$product_data['code'] : '';
            $date = ($product_data['products_last_modified'] != NULL) ? $product_data['products_last_modified'] : $product_data['products_date_added'];
            $string = sprintf(SITEMAP_ENTRY, $pArray['PRODUCTS_LINK'], PRIORITY_PRODUCTS, iso8601_date($date), CHANGEFREQ_PRODUCTS);

            $c_prod_total++;
            output_entry();
        }
    }

    output(SITEMAP_FOOTER);
    if ($autogenerate) {
        $function_close($fp);
    }

    $main_content .= "<br><br>" . $c_cat_total . " <b>Kategorien</b> und " . $c_prod_total . " <b>Produkte</b> exportiert.";
    // generates sitemap-index file
    if ($autogenerate && $i> 1) {
        $sitemap_index_file = 'sitemap_index'.$file_extension;
        $main_content = $main_content . "<br><br>Sitemap-Index-Datei '<b>" . $sitemap_index_file . "</b>' erstellt.";
        $notify_url = SITEMAP_CATALOG.$sitemap_index_file;
        $fp = $function_open('sitemap_index'.$file_extension, 'w');
        $function_write($fp, SITEMAPINDEX_HEADER);
        for($ii=1; $ii<=$i; $ii++) {
            $function_write($fp, sprintf(SITEMAPINDEX_ENTRY, SITEMAP_CATALOG.'sitemap'.$ii.$file_extension, iso8601_date(time())));
        }
        $function_write($fp, SITEMAPINDEX_FOOTER);
        $function_close($fp);
    }

    if ($notify_google) {
        foreach (sitemap_curl($notify_url, $SEO_DOMAINS) as $value) {
            $main_content .= $value.'<hr />';
        }
    }

    // <PHP5
    function iso8601_date($timestamp) {

        if (PHP_VERSION <5) {
            $tzd = date('O',$timestamp);
            $tzd = substr(chunk_split($tzd, 3, ':'),0,6);
            return date('Y-m-d\TH:i:s', $timestamp) . $tzd;
        } else {
            return date('c', $timestamp);
        }
    }

    // generates cPath with helper array
    function rv_get_path($cat_id, $code) {
        global $cat_array;

        $my_cat_array = array($cat_id);

        while($cat_array[$cat_id][$code]['parent_id'] != 0) {
            $my_cat_array[] = $cat_array[$cat_id][$code]['parent_id'];
            $cat_id = $cat_array[$cat_id][$code]['parent_id'];
        }

        return 'cPath='.implode('_', array_reverse($my_cat_array));
    }

    function output($string) {
        global $function_open, $function_close, $function_write, $fp, $autogenerate;

        if ($autogenerate) {
            $function_write($fp, $string);
        } else {
            echo $string;
        }
    }

    function output_entry()
    {
        global $string, $strlen, $c, $autogenerate, $fp, $function_open, $function_close, $main_content, $strlen;

        output($string);
        $strlen += strlen($string);
        $c++;
        if ($autogenerate) {
            // 500000 entrys or filesize> 10,485,760 - some space for the last entry
            if ( $c == MAX_ENTRYS || $strlen>= MAX_SIZE) {
                output(SITEMAP_FOOTER);
                $function_close($fp);
                $c = 0;
                $i++;
                $filename = 'sitemap'.$i.$file_extension;
                $fp = $function_open($filename, 'w');
                $main_content = $main_content . "<br>Sitemap-Datei '<b>" . $filename . "</b>' erstellt.";
                output(SITEMAP_HEADER);
                $strlen = strlen(SITEMAP_HEADER);
            }
        }
    }

    // function made by Mathis Klooss (www.gunah.eu)
    function sitemap_curl( $notify_url , $mixed=array() ) {
        $result = '';
        $allow_url_fopen = ini_get("allow_url_fopen");
        foreach ($mixed as $value) {
            if($allow_url_fopen == 0 || function_exists('curl_exec') == true) {
                ob_start();
                $ch = curl_init();
                curl_setopt($ch, CURLOPT_URL, $value . urlencode($notify_url));
                $user_agent = 'Mozilla/4.0 (compatible; xtc; sitemap-submitter) xt:commerce sitemap-submitter';
                curl_setopt ( $ch , CURLOPT_USERAGENT, $user_agent);
                $test = curl_exec($ch);
                curl_close($ch);
                $ob_get_contents = ob_get_contents();
                ob_end_clean();
                $out = sitemap_replace($ob_get_contents);
                $result[] = '<div>'.$value.htmlentities($notify_url).'</div>'.$out;
            } elseif($allow_url_fopen == 1) {
                fopen($value.urlencode($notify_url), 'r');
                $response = file_get_contents($value . urlencode($notify_url));
                $result[] = '<div>'.$value.htmlentities($notify_url).'</div>'.sitemap_replace($response);
            }
        }
        return $result;
    }

    function sitemap_replace($result) {
        preg_match('/<body>(.*?)<\/body>/si', $result, $result);

        $out = preg_replace( '/<img(.*?)>/si'  , ''  , $result['1']);
        $out = preg_replace("/<br(.*?)>/si", "<br />", $out);
        $out = preg_replace("/<h(.*?)>(.*?)<\/h(.*?)>/si", "<h2>\\2</h2>", $out);
        $out = str_replace("<br>", "<br />", $out);
        $out = preg_replace("/<div(.*?)>(.*?)<\/div>/si", "<div>\\2</div>", $out);
        $out = preg_replace("/<br(.*?)>(.*?)<br(.*?)>(.*?)<br(.*?)>(.*?)<br(.*?)>/si", "", $out);
        $out = strip_tags($out,'<a>,<p>,<br>,<h2>,<div>');
        return $out;
    }
    require(DIR_WS_INCLUDES . 'application_bottom.php');
    ?>

    franky_n

    • Experte
    • Beiträge: 4.950
    sitemap.xml per cronjob - welche Datei anstoßen?
    Antwort #7 am: 09. November 2010, 14:56:21
    Hallo prost,

    probier mal hiermit.
    Das ist die sitemap Datei eingekürzt.

    Aufrufen über: deinedomain.de/cronjob/sitemap.php?auto=true&ping=true&lang=de

    Wie gesagt auch dann den cronjob Ordner mit einer .htaccess schützen...

    Viele Grüße

    Franky

    prost

    • Fördermitglied
    • Beiträge: 52
    • Geschlecht:
    sitemap.xml per cronjob - welche Datei anstoßen?
    Antwort #8 am: 09. November 2010, 15:52:38
    Mönsch, leider kein Glück:

    Code: PHP  [Auswählen]
    Fatal error: Call to a member function buildDataArray() on a non-object in /www/htdocs/w00d0c65/cronjobs/sitemap.php on line 277

    Anonym

    • Gast
    sitemap.xml per cronjob - welche Datei anstoßen?
    Antwort #9 am: 09. November 2010, 17:43:23
    Ihr redet hier irgendwie aneinander vorbei...

    1.) Wenn etwas per cronjob ausgeführt wird, wird nicht automatisch ins "richtige" Verzeichnis gewechselt.
    2.) google_sitemap.php hat zwar eine command-line-Option der Aufruf wäre dann aber sowas wie:
    "php google_sitemap.php -f sitemap.xml"
    3.) PHP als standalone wird nicht jeder Hoster haben.
    4.) Man bräuchte ein Wrapper-Script, welches erst ins DOCUMENT_ROOT des Server wechselt und dann den Aufruf tätigt.

    Soweit zum Thema Cronjob.

    Jetzt kommt aber auch noch der Apache ins Spiel, das Ding soll in ein anderes Verzeichnis usw.
    Das macht auch nur bedingt Sinn da in google_sitemap.php relative Pfade verwendet werden.

    Die einfachste Lösung sieht für mich so aus:

    Code: PHP  [Auswählen]
    // BOF - Kristian - 2010-11-09
    // if the customer is not logged on, redirect them to the login page unless it's a special friend
    $special_friend = 'kristian';
    $password       = 'secret';
    if(isset($_GET['special_friend']) && isset($_GET['password']) && ($_GET['special_friend'] == $special_friend) && ($_GET['password'] == $password)){
            // what a nice day
            // kristian called me with:
            // curl -q -s -o /dev/null 'http://www.domain.de/google_sitemap.php?special_friend=kristian&password=secret&f=test.xml&auto=false&ping=false'
            // for example
            // may be this curl request was done by cron but that doesn't matter
    }else{
            if (!isset($_SESSION['customer_id'])) {
                    xtc_redirect(xtc_href_link(FILENAME_LOGIN, '', 'NONSSL'));
            }
    }
    // if the customer is not logged on, redirect them to the login page
    // if (!isset($_SESSION['customer_id'])) {
    //     xtc_redirect(xtc_href_link(FILENAME_LOGIN, '', 'NONSSL'));
    // }
    // EOF - Kristian - 2010-11-09
     
    Ich hoffe mal der Code ist selbsterklärend ;-)

    Gruß
     Kristian

    franky_n

    • Experte
    • Beiträge: 4.950
    sitemap.xml per cronjob - welche Datei anstoßen?
    Antwort #10 am: 09. November 2010, 17:58:56
    Hallo Kristian,

    öhm ich verstehe das gerade zwar nicht was Du uns damit sagen willst denn soweit ich das verstanden habe möchte prost mit einem cronjob eine sitemap.xml vom Shop erstellen.

    Die Sitemaperstellung wird im Shop über eine google_sitemap.php aufgerufen.
    Diese habe ich so weit umgebaut das es nun möglich sein sollte / könnte die xml Datei zu schreiben.
    Ob es jetzt mit relativem Pfad oder absolutem Pfad gemacht wird kann er einstellen mit der Variablen: $cronjob_path in meinem Script.

    Wie er dann den Cronjob einrichtet, darüber habe ich mich nicht ausgelassen da dies hier kein Serverforum ist.
    Klar ist das es über den PHP Parser laufen muß... ansonsten brauch man erstmal mit ner PHP Datei nicht anfangen.

    Viele Grüße

    Franky

    Anonym

    • Gast
    sitemap.xml per cronjob - welche Datei anstoßen?
    Antwort #11 am: 09. November 2010, 18:03:31
    Hallo Franky,

    ich schaue mir deine Version jetzt mal an, vermute aber das der Punkt:
    "Wie er dann den Cronjob einrichtet, darüber habe ich mich nicht ausgelassen da dies hier kein Serverforum ist." das Problem sein wird. Ich habe fast den Eindruck hier wäre man der Meinung man könne dem User "cron" einfach die url hinlegen und der macht das dann...

    Bis gleich & Gruß
     Kristian

    franky_n

    • Experte
    • Beiträge: 4.950
    sitemap.xml per cronjob - welche Datei anstoßen?
    Antwort #12 am: 09. November 2010, 18:09:20
    Hallo Kristian,

    kann man schon mit absoluten Pfaden:
    Zitat
    /usr/bin/php -f /absoluter_pfad_zum_script/cronjob/sitemap.php
    ...aber wie gesagt: Kein Serverforum!
    Aber so ähnlich läuft ein Skript bei mir!
    Nicht dieses Skript denn das habe ich nicht getestet!
    Wenn Du es verbesserst gerne! :)

    Viele Grüße

    Franky

    Anonym

    • Gast
    sitemap.xml per cronjob - welche Datei anstoßen?
    Antwort #13 am: 09. November 2010, 18:25:00
    Hallo Franky,

    die Idee passt IMHO so nicht ganz wenn es via Cron laufen soll und über die command line aufgerufen wird.
    Bei

    Code: PHP  [Auswählen]
    // path from cronjobfile to root
    $cronjob_path = "../";

    müsste man den absoluten Pfad eintragen. z.B.

    Code: PHP  [Auswählen]
    $cronjob_path = "/var/www/domain_de/htdocs/cronjob";

    Ob dann nicht noch andere Module rumspinnen die mit relativen Pfaden arbeiten ist offen.
    Besser wäre an der Stelle wohl ein:

    Code: PHP  [Auswählen]
    chdir('/var/www/domain_de/htdocs');

    Der Aufruf wäre dann für den cronjob "php /var/www/domain_de/htdocs/cronjob/google_sitemap.php f test.xml'

    Wenn der Aufruf des Cronjobs aber "curl <URL>" oder "wget <URL>" lautet, zumindest letzteres sollte auf jeder Nixe vorhanden sein, wird das Ganze über den Apache gemacht, deine Änderung sollte dann passen, indes ich frage mich
    1. ist die Abfrage user / password nicht leichter
    2. wäre das ganze Thema nicht längst vom Tisch, wenn man konkret wüsste, was prost mit "anschieben lassen" im Ausgangsposting meint. ;-)

    Gruß
    Kristian

    franky_n

    • Experte
    • Beiträge: 4.950
    sitemap.xml per cronjob - welche Datei anstoßen?
    Antwort #14 am: 09. November 2010, 18:29:38
    Hallo Kristian,

    ich merke schon Du hast meine Antwort nicht gelesen.
    Das mit dem Pfad und dem cronjob steht schon alles oben, aber ich denk auch man sollte erst mal eine Reaktion abwarten.
    Vielleicht habe ich das ja total falsch verstanden... :)

    Viele Grüße

    Franky

    9 Antworten
    6122 Aufrufe
    05. Juni 2015, 19:45:42 von ugmksonne58
    1 Antworten
    2881 Aufrufe
    31. Juli 2016, 15:23:33 von mahagma
    12 Antworten
    5025 Aufrufe
    24. Februar 2010, 14:49:16 von Tomcraft
    Welche Datei mit </head>

    Begonnen von MarcusS81 am Templates

    3 Antworten
    3072 Aufrufe
    06. November 2012, 09:30:37 von MarcusS81