Konfigurationsfehler in NExt_PHP 5.2.6b und Webadmin 3.0.0

TIPPS UND TRICKS, FAQ

Moderator: ModTeam

dr_mike
Posts: 144
Joined: Fri Feb 15, 2008 19:00
Product(s): .
AMS 150 400GB
FW V2.0
HD: ATA ST3400620AS
NExt 2.0.06 TW
+WebAdmin 3.0.0
+dropbear 0.51c
+joe 3.5b
+php 5.2.6b
+mc 1.03
+tools 1.01
AMS 150 500GB
FW V2.0
HD: ATA WDC WD5000AAJS-0
NExt 2.0.06 TW
+WebAdmin 3.0.0
+dropbear 0.51c
+lighttpd 1.4.20b
+php 5.2.6d
+mysql 4.1.20
+mc 1.03
+joe 3.5b
+phpsysinfo 2.5.3b
+shutup 0.99b
+tools 1.04
SBLAN2 1TB Rev.: 1.0
FW 2.0
HD: ATA SAMSUNG HD103UI
NExt 2.0.06
+WebAdmin 2.2.0
+dropbear 0.51c
+joe 3.5b
+mc 1.04
+tools 1.04
CELVIN Q800 4.0TB
Location: Hessische Bergstrasse

Konfigurationsfehler in NExt_PHP 5.2.6b und Webadmin 3.0.0

Postby dr_mike » Sun Feb 28, 2010 2:34

Hallo,

und erstmal ein riesen Dankeschön an das NExt-Team für die ganze Arbeit an den Erweiterungen.
Trotz aller Tests kann es aber passieren, dass der eine oder andere Fehler übersehen wird. Ich habe mich mal daran gemacht, herauszufinden, warum in der Logdatei immerwieder folgende Fehler auftauchen:
[19-Feb-2010 20:11:03] PHP Warning: PHP Startup: Unable to load dynamic library '/mnt/.zap/opt/php/lib/php/extensions/php_sqlite.dll' - File not found in Unknown on line 0
[19-Feb-2010 20:11:03] PHP Warning: PHP Startup: Unable to load dynamic library '/mnt/.zap/opt/php/lib/php/extensions/php_sqlite.dll' - File not found in Unknown on line 0
[19-Feb-2010 20:11:03] PHP Warning: PHP Startup: Unable to load dynamic library '/mnt/.zap/opt/php/lib/php/extensions/dba.so' - File not found in Unknown on line 0
[19-Feb-2010 20:11:03] PHP Warning: PHP Startup: Unable to load dynamic library '/mnt/.zap/opt/php/lib/php/extensions/dba.so' - File not found in Unknown on line 0
[19-Feb-2010 20:11:05] PHP Warning: Module 'zlib' already loaded in Unknown on line 0
[19-Feb-2010 20:11:05] PHP Warning: Module 'zlib' already loaded in Unknown on line 0

Zu folgenden Lösungen bin ich gekommen:
mnt\.zap\webadmin\webserverwebadmin_php.ini
[19-Feb-2010 20:11:03] PHP Warning: PHP Startup: Unable to load dynamic library '/mnt/.zap/opt/php/lib/php/extensions/php_sqlite.dll' - File not found in Unknown on line 0

Da PHP auf einem Linuxsystem läuft, muss die Zeile:
extension=php_sqlite.dll

auskommentiert werden
;extension=php_sqlite.dll


DerFehler:
[19-Feb-2010 20:11:05] PHP Warning: Module 'zlib' already loaded in Unknown on line 0
tritt auf, weil in der ini zweimal ein Eintrag dafür vorhanden ist (dies auch in der Datei etc/php.ini):
;;;;;;;;;;;;;;;;;;;;;;
; Dynamic Extensions ;
;;;;;;;;;;;;;;;;;;;;;;
;
; If you wish to have an extension loaded automatically, use the following
; syntax:
;
; extension=modulename.extension
;
; For example, on Windows:
;
; extension=msql.dll
;
; ... or under UNIX:
;
; extension=msql.so
;
; Note that it should be the name of the module only; no directory information
; needs to go here. Specify the location of the extension with the
; extension_dir directive above.
extension="zlib.so" <------------------
; Windows Extensions
; Note that ODBC support is built in, so no dll is needed for it.
; Note that many DLL files are located in the extensions/ (PHP 4) ext/ (PHP 5)
; extension folders as well as the separate PECL DLL download (PHP 5).
; Be sure to appropriately set the extension_dir directive.

;extension=php_bz2.dll
.
.
.
.
;extension=xsl.so
extension=zlib.so <-----------------------------

;extension="eaccelerator.so"
;eaccelerator.shm_size="16"
;eaccelerator.cache_dir="/opt/lampp/tmp/eaccelerator"
;eaccelerator.enable="1"

der obere Eintrag war ursprünglich eine Erklärung zu dieser Section und muss auskommentiert werden.

Der Fehler:
[19-Feb-2010 20:11:03] PHP Warning: PHP Startup: Unable to load dynamic library '/mnt/.zap/opt/php/lib/php/extensions/dba.so' - File not found in Unknown on line 0
tritt auf, weil bei der Erstellung des PHP-Paketes zwar der DBA-Support konfiguriert wurde aber kein Supporthandler angegeben wurde.
Configure Command:
'./configure' '--target=powerpc-linux' '--host=powerpc-linux' '--build=i386-pc-linux-gnu' '--prefix=/usr' '--exec-prefix=/usr' '--bindir=/usr/bin' '--sbindir=/usr/sbin' '--libexecdir=/usr/lib' '--sysconfdir=/usr/etc' '--datadir=/usr/share' '--localstatedir=/usr/var' '--mandir=/usr/man' '--infodir=/usr/info' '--enable-fastcgi' '--enable-discard-path' '--enable-bcmath=shared' '--enable-calendar=shared' '--enable-dba=shared' '--enable-exif=shared' '--enable-ftp=shared' '--enable-mbstring=shared' '--enable-pdo=shared' '--enable-shmop=shared' '--enable-sockets=shared' '--enable-sysvmsg=shared' '--enable-sysvshm=shared' '--enable-sysvsem=shared' '--disable-ipv6' '--enable-cli' '--with-layout=GNU' '--without-pear' '--with-xmlrpc' '--with-libxml-


Auszug aus dem PHP-Installation Manual http://www.php.net/manual/de/dba.installation.php
Installation
Durch die Verwendung der Konfigurationsoption --enable-dba=shared wird ein dynamisch ladbares Modul erstellt, mit dem PHP eine grundlegende Unterstützung von dbm-style-Datenbanken bietet. Es muss außerdem die Unterstützung für mindestens einen der folgenden Handler hinzugefügt werden, indem der configure-Schalter --with-XXXX im PHP-Konfigurationsaufruf angegegeben wird.

Hier gibt es zwei Lösungen:
den Eintrag
extension=dba.so
in der webadmin_php.ini auskommentieren
oder das PHP-Paket neu erstellen mit angabe der Handler in der Konfiguration.

gruss micha

Edit: etc/php.ini beim zweiten Fehler hinzugefügt

dr_mike
Posts: 144
Joined: Fri Feb 15, 2008 19:00
Product(s): .
AMS 150 400GB
FW V2.0
HD: ATA ST3400620AS
NExt 2.0.06 TW
+WebAdmin 3.0.0
+dropbear 0.51c
+joe 3.5b
+php 5.2.6b
+mc 1.03
+tools 1.01
AMS 150 500GB
FW V2.0
HD: ATA WDC WD5000AAJS-0
NExt 2.0.06 TW
+WebAdmin 3.0.0
+dropbear 0.51c
+lighttpd 1.4.20b
+php 5.2.6d
+mysql 4.1.20
+mc 1.03
+joe 3.5b
+phpsysinfo 2.5.3b
+shutup 0.99b
+tools 1.04
SBLAN2 1TB Rev.: 1.0
FW 2.0
HD: ATA SAMSUNG HD103UI
NExt 2.0.06
+WebAdmin 2.2.0
+dropbear 0.51c
+joe 3.5b
+mc 1.04
+tools 1.04
CELVIN Q800 4.0TB
Location: Hessische Bergstrasse

Korrekturvorschläge für WebAdmin PHP Dateien

Postby dr_mike » Sun Feb 28, 2010 22:01

Folgende Vorschläge zur Korrektur der PHP Dateien stelle ich hier zur Diskussion, da ich selbst nicht ein PHP-Guru bin sondern nur Kenntnise aus anderen Scriptsprachen (hauptsächlich VBA) hier angewendet habe:
  • addons.php
  • credits.php
  • help.php
  • index.php
  • login.php
  • php_info.php
  • setup.php
  • show_readme.php
  • sysinfo.php
Vorschlag, die Directive '$system = new system();' vor die Loginabfrage zu stellen, da 'is_login();' die Klasse '$system' verwendet.

Code: Select all

    session_start();
 -> $system = new system();
    is_login();
    $_SESSION['update'] = time();
 <- $system = new system();

  • login.php
Hier sollte bei den Eingabeabfragen eine Prüfung erfolgen, um den Fehler 'undefined Index' zu vermeiden

Code: Select all

$user = $_POST['benutzer'];
$pass = $_POST['passwort'];
 
if($_POST['senden']){
   if(($user == $system->NAS_data['USERNAME']) && ($pass == $system->NAS_data['PASSWORD'])){
      $_SESSION['id'] = session_id();
      $goto = "index.php";
      header('Location: '.$goto);
      exit;
   }
}
ersetzen durch

Code: Select all

if(isset($_POST['benutzer']) && isset($_POST['passwort'])){
   $user = $_POST['benutzer'];
   $pass = $_POST['passwort'];
}

if(isset($_POST['senden']) && $_POST['senden']){
   if(($user == $system->NAS_data['USERNAME']) && ($pass == $system->NAS_data['PASSWORD'])){
      $_SESSION['id'] = session_id();
      $goto = "index.php";
      header('Location: '.$goto);
      exit;
   }
}


  • /class/addon.class.php
um den Fehler 'Undefined index: STATUSSCRIPT' zu vermeiden sollte in Zeile 105 der Code wie folgt geändert werden
statt

Code: Select all

       function get_config($key){
        if($this->pkg_info[$key]){
dies

Code: Select all

       function get_config($key){
        if( array_key_exists($key,$this->pkg_info)){


  • /include/common_func.php
hier sind folgende Änderungen nötig, um die Fehler 'Trying to get property of non-object', 'Undefined index: id', 'Undefined offset: 1' und 'Uninitialized string offset: 0' zu vermeiden
Zeile 20 ändern von

Code: Select all

    if(($system->ipfilter == true) && ($client_ip !== unkmnown)){
nach

Code: Select all

    if(($system->ipfilter == true) && ($client_ip !== "unknown")){

ab Zeile 30 ändern von

Code: Select all

    if(($_SESSION['id'] !== session_id())){
          header('Location: login.php');
          exit;
nach

Code: Select all

    if((isset($_SESSION['id'])) && ($_SESSION['id'] == session_id())){
    }else{
          header('Location: login.php');
          exit;

ab Zeile 44 ändern von

Code: Select all

   for ($k=0; $k<$b; $k++) {
      $reult[$k] = ereg_replace(array("\n","\r"),"",$result[$k]);
      list($key,$value) = explode("=",$reult[$k]);
      $key = trim($key);
      $value = trim($value);
      if(($value{0} == "'") || ($value{0} == "\"")){
         $return[$key] = trim(substr($value,1,-1));
      }else{
         $return[$key] = trim($value);
      }
   }
nach

Code: Select all

   for ($k=0; $k<$b; $k++) {
      $reult[$k] = ereg_replace(array("\n","\r"),"",$result[$k]);
      if(strpos($reult[$k],"=") !== false){
         list($key,$value) = explode("=",$reult[$k]);
         $key = trim($key);
         $value = trim($value);
         if(($value{0} == "'") || ($value{0} == "\"")){
            $return[$key] = trim(substr($value,1,-1));
         }else{
            $return[$key] = trim($value);
         }
      }
   }

  • /include/xajax_frontend.php
beheben des Fehlers 'Undefined index: CONFIGURL' und mehreren 'Use of undefined constant'
ändern der Zeile 52 von

Code: Select all

   if(($addon->pkg_info['CONFIGURL']) && ($addon->name != "webadmin")){

nach

Code: Select all

   if((array_key_exists('CONFIGURL',$addon->pkg_info)) && ($addon->name != "webadmin")){

ändern ab Zeile 198

Code: Select all

   foreach($sysinfo->filesystems() as $fs_sys){
      $fs_sys_ar[] = array("mount" => $fs_sys[mount],
               "fstype" => $fs_sys[fstype],
               "disk" => $fs_sys[disk],
               "percent" => $fs_sys[percent],
               "free" => format_bytesize($fs_sys[free]),
               "used" => format_bytesize($fs_sys[used]),
               "size" => format_bytesize($fs_sys[size])
               );
   }
nach

Code: Select all

   foreach($sysinfo->filesystems() as $fs_sys){
      $fs_sys_ar[] = array("mount" => $fs_sys['mount'],
               "fstype" => $fs_sys['fstype'],
               "disk" => $fs_sys['disk'],
               "percent" => $fs_sys['percent'],
               "free" => format_bytesize($fs_sys['free']),
               "used" => format_bytesize($fs_sys['used']),
               "size" => format_bytesize($fs_sys['size'])
               );
   }


Nach diesen Änderungen hatte ich nur noch einen Fehler in der webadmin_php_error.log den ich leider nicht beheben konnte, da ich mit der Template Engine keine Erfahrung habe und auch nicht nachvollziehen konnte, warum 'sysinfo.class.php' einen leeren index für CPU-Cache übergibt. Ich hoffe, dass meine Überlegungen zu den Änderungen richtig waren und dadurch nicht an anderen Stellen bisher ungemerkte Fehler auftreten

gruss micha



Edit: noch zwei Korrekturen in 'sysinfo.class.php' und 'addon.tpl'


  • addon.tpl
ändern von

Code: Select all

<tpl ifset="all"> //----->
</div> //------------->
<tpl ifset="arrow_up">
<div id="mv_up">
   <a href="#page_top" title="top"><img src="gfx/top.png" id="UP"></a>
</div>
</tpl ifset="arrow_up">
</tpl ifset="all">
nach

Code: Select all

<tpl ifset="arrow_up">
<div id="mv_up">
   <a href="#page_top" title="top"><img src="gfx/top.png" id="UP"></a>
</div>
</tpl ifset="arrow_up">
<tpl ifset="all"> //<---------
</div> //<-----------------
</tpl ifset="all">
  • sysinfo.class.php
die Zeile 240 ist durch den Eintrag 'cache' wie folgt zu ergänzen

Code: Select all

      $keys = array_keys($results);
      $keys2be = array('model', 'bogomips', 'cpus', 'cache'); //<----------------------
      
      while ($ar_buf = each($keys2be)) {
         if (! in_array($ar_buf[1], $keys)) {
            $results[$ar_buf[1]] = 'N.A.';
         }
      }

somit wird im normalen Betrieb bei mir keine webadmin_php_error.log mehr erzeugt.
gruss micha
Last edited by dr_mike on Tue Mar 02, 2010 20:08, edited 3 times in total.

User avatar
Brevheart
Posts: 461
Joined: Wed Feb 21, 2007 9:23
Product(s): Synology DS211j

Re: Konfigurationsfehler in NExt_PHP 5.2.6b und Webadmin 3.0.0

Postby Brevheart » Sun Feb 28, 2010 22:39

Erstmal danke für die Mitarbeit, in der nächsten Version werden diese Fehler nicht mehr auftreten!

Gruß Brevheart

dr_mike
Posts: 144
Joined: Fri Feb 15, 2008 19:00
Product(s): .
AMS 150 400GB
FW V2.0
HD: ATA ST3400620AS
NExt 2.0.06 TW
+WebAdmin 3.0.0
+dropbear 0.51c
+joe 3.5b
+php 5.2.6b
+mc 1.03
+tools 1.01
AMS 150 500GB
FW V2.0
HD: ATA WDC WD5000AAJS-0
NExt 2.0.06 TW
+WebAdmin 3.0.0
+dropbear 0.51c
+lighttpd 1.4.20b
+php 5.2.6d
+mysql 4.1.20
+mc 1.03
+joe 3.5b
+phpsysinfo 2.5.3b
+shutup 0.99b
+tools 1.04
SBLAN2 1TB Rev.: 1.0
FW 2.0
HD: ATA SAMSUNG HD103UI
NExt 2.0.06
+WebAdmin 2.2.0
+dropbear 0.51c
+joe 3.5b
+mc 1.04
+tools 1.04
CELVIN Q800 4.0TB
Location: Hessische Bergstrasse

Re: Konfigurationsfehler in NExt_PHP 5.2.6b und Webadmin 3.0.0

Postby dr_mike » Mon Mar 01, 2010 0:37

Brevheart wrote:Erstmal danke für die Mitarbeit, in der nächsten Version werden diese Fehler nicht mehr auftreten!

Gruß Brevheart

keine ursache :wink:
ihr habt ja doch die meisste arbeit. im zweiten post habe ich noch ein paar änderungen in den php vorgeschlagen, bevor du dich jetzt übereifrig ans compilieren und verpacken begibst :lol:

gruss micha

User avatar
lochness
Posts: 3224
Joined: Sat Feb 04, 2006 20:42
Product(s): Myrica TV P42-2H
AMC 570 SAT (3.2.419 + VZD2)
AMC 370 SAT (1.6.115+VZD2)
AMP 150 (1.03.28eu)
3 x AMS 150 (V2.00 + NExt V2.0.06)
SBLAN2 R1.0 (V2.00 + NExt V2.0.06)
SBLAN2 R1.1 (V2.00 + NExt V2.0.06)
Storagebird DUO 35-LR (V1.03)
SB-L V1 (80GB, NetHDD007-0802)
Celvin Q800 4x2TB
Celvin Q700 2x1TB
Celvin Q600 1x2TB
Location: Bad Lippspringe

Re: Konfigurationsfehler in NExt_PHP 5.2.6b und Webadmin 3.0.0

Postby lochness » Mon Mar 01, 2010 10:15

dr_mike wrote:im zweiten post habe ich noch ein paar änderungen in den php vorgeschlagen, bevor du dich jetzt übereifrig ans compilieren und verpacken begibst :lol:
Keine Panik :D, das webadmin Paket ist hauptsächlich von tobitobsen :wink:...

dr_mike
Posts: 144
Joined: Fri Feb 15, 2008 19:00
Product(s): .
AMS 150 400GB
FW V2.0
HD: ATA ST3400620AS
NExt 2.0.06 TW
+WebAdmin 3.0.0
+dropbear 0.51c
+joe 3.5b
+php 5.2.6b
+mc 1.03
+tools 1.01
AMS 150 500GB
FW V2.0
HD: ATA WDC WD5000AAJS-0
NExt 2.0.06 TW
+WebAdmin 3.0.0
+dropbear 0.51c
+lighttpd 1.4.20b
+php 5.2.6d
+mysql 4.1.20
+mc 1.03
+joe 3.5b
+phpsysinfo 2.5.3b
+shutup 0.99b
+tools 1.04
SBLAN2 1TB Rev.: 1.0
FW 2.0
HD: ATA SAMSUNG HD103UI
NExt 2.0.06
+WebAdmin 2.2.0
+dropbear 0.51c
+joe 3.5b
+mc 1.04
+tools 1.04
CELVIN Q800 4.0TB
Location: Hessische Bergstrasse

Re: Konfigurationsfehler in NExt_PHP 5.2.6b und Webadmin 3.0.0

Postby dr_mike » Tue Mar 02, 2010 20:11

...ich weiss, war auch eher ein scherz.
habe noch zwei sachen oben ergänzt und bekomme nun unter normalem betrieb keine fehler mehr.

gruss micha


Return to “Hints, FAQ”

Who is online

Users browsing this forum: No registered users and 2 guests

cron