Unerklärliches Problem mit require_once in eigenem PHP-Script



  • Hallo zusammen,

    ich bin kurz davor, mir in der Tischplatte sämtliche Zähne auszubeißen. :-(

    Ich habe ein PHP-Script geschrieben, mit dem ich den A-Record einer Subdomain ändere, wenn sich die WAN-IP geändert hat.
    Das Script ist simpel:

    
    require_once("/usr/local/www/guiconfig.inc");
    $ifinfo = get_interface_info(wan);
    $ip_provider = $ifinfo[ipaddr];
    $url_get = "http://kasapi.kasserver.com/kas.php?kas_action=get_dns_settings&kas_login=xxxxxkas_auth_type=sha1&kas_auth_data=yyyyyf&zone_host=meinedomain.tld.&nameserver=ns5.kasserver.com";
    $url1_set = "https://kasapi.kasserver.com/kas.php?kas_action=update_dns_settings&kas_login=xxxxx&kas_auth_type=sha1&kas_auth_data=yyyyyf&record_name=subdomain&record_type=A&record_data=";
    $url2_set = "&record_aux=0&record_id=zzzzz&nameserver=ns5.kasserver.com";
    $url_set =  $url1_set . $ip_provider . $url2_set;
    /* IP-der Subdomain ueber AutoKAS API abfragen */
    $dns_abfrage = file($url_get);
    $ip_nameserver = ereg_replace(".*\'(.*)\'.*","\\1",$dns_abfrage[50]);
    if($ifinfo[pppoelink] == 'up' && $ip_provider != $ip_nameserver){
    	$curl = curl_init($url_set); 
    	curl_setopt($curl, CURLOPT_FAILONERROR, true); 
    	curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false); 
    	curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);   
    	curl_exec($curl);
    	};
    ?>
    

    Das Script rufe ich über cron auf:
    */2    *    *    *    *    root    /usr/local/bin/php -q /usr/local/www/change_provider_ip.php

    Offensichtlich funktioniert require_once("/usr/local/www/guiconfig.inc") in meinem Script aber nicht. Obwohl die Datei existiert (und mit file_exists gefunden wird), bricht das Script ab. Das gilt übrigens auch, wenn ich andere Files mit require bzw. require_once einbinde oder mein Script in einem anderen Verzeichnis, z.B. /var ablege.

    Es gibt im Forum einige Beispiele von User-Scripten, die auch Ressourcen über require_once einbinden, über cron aufgerufen werden und durchlaufen. Ich verstehe nicht, warum das bei meinem Script nicht der Fall ist.

    Ich nutze pfSense 2.03 auf einem Komplettsystem mit ALIX.2D13.

    Falls mir jemand das Problem bei meinem Script erklären kann, wäre ich (bzw. mein Zahnarzt) mehr als dankbar.

    Gruß  Jürgen