# ISPConfig auf ubuntu 12.04 LTS



## Huflatisch (5. Jan. 2013)

Hallo

Nach der Installation lt. Howto "Der Perfekte Server - Ubuntu 12.04 LTS (Apache2, BIND, Dovecot, ISPConfig 3)"

kommen beim einrichten folgende Fehlermeldungen. An was könnte das liegen. Ich pastel schon ne ganze Weile dran


```
hal9000:/var/www# php -q /root/ispconfig3_install/install/install.php
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626/mysqlnd.so' - /usr/lib/php5/20090626/mysqlnd.so: cannot open shared object file: No such file or directory in Unknown on line 0


--------------------------------------------------------------------------------
 _____ ___________   _____              __ _         ____
|_   _/  ___| ___ \ /  __ \            / _(_)       /__  \
  | | \ `--.| |_/ / | /  \/ ___  _ __ | |_ _  __ _    _/ /
  | |  `--. \  __/  | |    / _ \| '_ \|  _| |/ _` |  |_ |
 _| |_/\__/ / |     | \__/\ (_) | | | | | | | (_| | ___\ \
 \___/\____/\_|      \____/\___/|_| |_|_| |_|\__, | \____/
                                              __/ |
                                             |___/
--------------------------------------------------------------------------------


>> Initial configuration

Operating System: Debian or compatible, unknown version.

    Following will be a few questions for primary configuration so be careful.
    Default values are in [brackets] and can be accepted with <ENTER>.
    Tap in "quit" (without the quotes) to stop the installer.


sh: 1: /which: not found
sh: 1: /which: not found
sh: 1: /which: not found
sh: 1: /which: not found
sh: 1: /which: not found
sh: 1: /which: not found
sh: 1: /which: not found
sh: 1: /which: not found
sh: 1: /which: not found
sh: 1: /which: not found
sh: 1: /which: not found
sh: 1: /which: not found
sh: 1: /which: not found
sh: 1: /which: not found
sh: 1: /which: not found
sh: 1: /which: not found
sh: 1: /which: not found
sh: 1: /which: not found
sh: 1: /which: not found
sh: 1: /which: not found
sh: 1: /which: not found
sh: 1: /which: not found
sh: 1: /which: not found
sh: 1: /which: not found
sh: 1: /which: not found
sh: 1: /which: not found
sh: 1: /which: not found
sh: 1: /which: not found
sh: 1: /which: not found
Select language (en,de) [en]: de

Installation mode (standard,expert) [standard]:

sh: 1: /hostname: not found
Full qualified hostname (FQDN) of the server, eg server1.domain.tld  []: exam.tld

MySQL server hostname [localhost]:

MySQL root username [root]:

MySQL root password []: password

MySQL database to create [dbispconfig]:

MySQL charset [utf8]:

sh: 1: /mysql: not found
sh: 1: /echo: not found
ERROR: Unable to load SQL-Dump into database table.
```
wenn ich php5-mysqlnd installier hauts mir php5-mysql und den phpmyadmin runter !!!


cu
Huflatisch


----------



## Till (5. Jan. 2013)

Du hast den installer falsch aufgerufen. Schau mal bitte in das howto, dort steht dass du mit cd in das verzeichnis des installers wechseln musst bevor du das install.php script ausführst. Außerdem stell sich dass du als root eingeloggt bist.


----------



## Huflatisch (5. Jan. 2013)

Hey

Danke für die Antwort

... das ist aber nicht das Problem ... hatte bloß den Screenshot von einem weiterem der unzähligen Versuche gemacht.
root bin ich auch


```
hal9000:~/ispconfig3_install/install# php -q install.php
PHP Warning:  PHP Startup: Unable to load dynamic library '/usr/lib/php5/20090626/mysqlnd.so' - /usr/lib/php5/20090626/mysqlnd.
shared object file: No such file or directory in Unknown on line 0
...
..
.
```
Habe auch schon vermutet das die Pfade nicht stimmen, Haut aber hin.


```
hal9000:~/ispconfig3_install/install# echo $PATH
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games

hal9000:~/ispconfig3_install/install# find / -name which
/bin/which
/usr/bin/which
```
wiso wird versucht die mysqlnd.so zu laden .... Die gibst ja gar nicht !!!


cu
Huflatisch


----------



## Till (6. Jan. 2013)

Das php5-mysqlnd Paket wird nicht von ispconfig verwendet und soweit ich weiß auch nicht vom perfect setup installiert. Ist vielleicht von Deinem Provider vorinstalliert worden.

Am besten entfernst Du es einfach, ich vermute es gibt dazu eine config Datei unter /etc/php5/conf.d/  kommentier alle Zeilen darin mit einem ; aus.


----------



## Huflatisch (6. Jan. 2013)

Hallo

den mysqlnd Fehler hab ich weg. Es lag in dem von dir genannten Verzeichnis nno ne .ini

die Anderen Fehler kommen auf Grund von der nichtübernehme der Variablen dieser Funktion (Datei installer_base.lib.php)

```
public function find_installed_apps() {
                global $conf;

                if(is_installed('mysql') || is_installed('mysqld')) $conf['mysql']['installed'] = true;
                if(is_installed('postfix')) $conf['postfix']['installed'] = true;
                if(is_installed('mailman')) $conf['mailman']['installed'] = true;
                if(is_installed('apache') || is_installed('apache2') || is_installed('httpd') || is_installed('httpd2')) $conf['apache']['installed'] = true;
                if(is_installed('getmail')) $conf['getmail']['installed'] = true;
                if(is_installed('courierlogger')) $conf['courier']['installed'] = true;
                if(is_installed('dovecot')) $conf['dovecot']['installed'] = true;
                if(is_installed('saslauthd')) $conf['saslauthd']['installed'] = true;
                if(is_installed('amavisd-new') || is_installed('amavisd')) $conf['amavis']['installed'] = true;
                if(is_installed('clamdscan')) $conf['clamav']['installed'] = true;
                if(is_installed('pure-ftpd') || is_installed('pure-ftpd-wrapper')) $conf['pureftpd']['installed'] = true;
                if(is_installed('mydns') || is_installed('mydns-ng')) $conf['mydns']['installed'] = true;
                if(is_installed('jk_chrootsh')) $conf['jailkit']['installed'] = true;
                if(is_installed('pdns_server') || is_installed('pdns_control')) $conf['powerdns']['installed'] = true;
                if(is_installed('named') || is_installed('bind') || is_installed('bind9')) $conf['bind']['installed'] = true;
                if(is_installed('squid')) $conf['squid']['installed'] = true;
                if(is_installed('nginx')) $conf['nginx']['installed'] = true;
                // if(is_installed('iptables') && is_installed('ufw')) $conf['ufw']['installed'] = true;
                if(is_installed('fail2ban-server')) $conf['fail2ban']['installed'] = true;
                if(is_installed('vzctl')) $conf['openvz']['installed'] = true;
                if(is_dir("/etc/Bastille")) $conf['bastille']['installed'] = true;

                if ($conf['services']['web'] && (($conf['apache']['installed'] && is_file($conf['apache']["vhost_conf_enabled_dir"]."/000-ispconfig.vhost")) || ($conf['nginx
']['installed'] && is_file($conf['nginx']["vhost_conf_enabled_dir"]."/000-ispconfig.vhost")))) $this->ispconfig_interface_installed = true;
        }
```
Wiso funktionieren diese auf dem root Server nicht. Kann sein das der "is_installed" nicht erkannt wird. Welches Paket fehlt evt.

Habe mal bei mir local einen neuen Server aufgesetzt. Dort funktioniert "alles"

cu
Huflatisch


----------



## Till (7. Jan. 2013)

Die pakete werden mit dem befehl 'which' gesucht. Bist du auch wirklich als root eingeloggt? Das kannst du mit dem befehl

whoami

Sehen.


----------



## Huflatisch (7. Jan. 2013)

Hallo

Ja, schon am Anfang getestet


```
hal9000:~# whoami
root
hal9000:~#
```
Laut der Fehlermeldung sucht die install den which Befehl im root ( /which)
ebenso mysql und echo.
Irgendwie scheint die install die Pfade nichtt korrekt zu übernehmen 

Den rootpfad mit symlinks vollzuschmeißen kann aber nicht die Lösung sein.

PS:
wo ist die $PATH hinterlegt. Wenn ich im Script abfrage kommt ne Fehlermeldung

```
Undefined variable: PATH in /tmp/ispconfig3_install/install/lib/installer_base.lib.php on line 118
```
Wenn ich die which in / kopiere ist die Fehlermeldung erst mal weg.



cu
Huflatisch


----------



## Till (7. Jan. 2013)

Der Installer gibt keinen Pfad zu which an, er verwendet den Befehl "which" und nicht "/which". Da scheint also was mit den Pfaden in Deiner root Shell nicht zu stimmen.



> wo ist die $PATH hinterlegt. Wenn ich im Script abfrage kommt ne Fehlermeldung


Das ist eine Linux Systemvariable die immer gesetzt sein muss, also nichts von ispconfig. Ohne diese Variable funktioniert die Shell nicht richtig und Du kannst kein Programm ohne angabe eines absoluten Pfades aufrufen.

Schau mal in /etc/profile nach. Der Pfad sollte z.B. so aussehen:

PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin


----------



## Till (7. Jan. 2013)

Der Installer gibt keinen Pfad zu which an, er verwendet den Befehl "which" und nicht "/which". Da scheint also was mit den Pfaden in Deiner root Shell nicht zu stimmen.



> wo ist die $PATH hinterlegt. Wenn ich im Script abfrage kommt ne Fehlermeldung


Das ist eine Linux Systemvariable die immer gesetzt sein muss, also nichts von ispconfig. Ohne diese Variable funktioniert die Shell nicht richtig und Du kannst kein Programm ohne angabe eines absoluten Pfades aufrufen.

Schau mal in /etc/profile nach. Der Pfad sollte z.B. so aussehen:

PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/local/sbin:/usr/local/bin:/usr/X11R6/bin


----------



## Huflatisch (7. Jan. 2013)

Hey

Hatte schon in meinem zweiten Post die Pathvariablen angemängelt. siehe oben. Die passen aber. 


```
hal9000:~/ispconfig3_install/install# echo $PATH 
/usr/local/sbin:/usr/local/bin:/usr/sbin:/usr/bin:/sbin:/bin:/usr/games
```
Irgendetwas scheint an der Konfiguration das root anders zu sein ... aber was ???

cu
Huflatisch


----------



## Huflatisch (7. Jan. 2013)

Hallo

So ... habe den Fehler mal eingegrenzt

Fakt ist das dieses Script nicht läuft ...

```
function is_installed($appname) {
        exec('which '.escapeshellcmd($appname).' 2> /dev/null',$out,$returncode);
        if(isset($out[0]) && stristr($out[0],$appname) && $returncode == 0) {
                return true;
        } else {
                return false;
        }
```
Ich kann auf dem root Server keinen exec Befehl ausführen. Auf den Homeroot funktioniert die Sache.

Ist da irgendeinen php.ini Einstellung noch notwendig. Habe schon SafeMode, RegisterGlobals probiert. Auf beiden läuft der php unter www-data.

Welcher PHP Spezie kann mir einen Tipp geben. Ich google schon seit Stunden

cu Huflatisch


----------



## Huflatisch (7. Jan. 2013)

Hallo

Habe Fehler gefunden. 
phpinfo hat zwar safemode off (global und lokal) ausgegeben .... das war aber für die Konsole nicht relevant. 
Funktionierte erst nachdem ich unter /etc/php5/cli/php.ini den Safemode auf off geschalten habe.

Hat mich drei Abende  und unzählige Stunden gekostet 

cu
Huflatisch


----------



## Till (8. Jan. 2013)

Bei php5 ist safemode an sich immer aus da es als deprecated gilt. Gerade bei cli macht safemode auch wenig Sinn, denn es ist an sich ja bereits ein shellscript. Würde ich an deiner Stelle mal dem Support des Hosters schreiben von dem Du Deinen Server hast, wenn die schon defaults der Linux Distribution ändern müssen dann bitte in sinnvoller Weise.


----------

