PDA

Archiv verlassen und diese Seite im Standarddesign anzeigen : phpmyadmin bringt Fehlermeldung



Eagle
23.03.05, 19:51
Hallo Leute,

auf meiner Debian-Woody-Maschine läuft mysql 3.23.49-8.9 und ich habe php4-mysql sowie phpmyadmin 3:2.6.1-pl3-2 installiert. MySQL läuft definitiv, nur bringt der Aufruf localhost/phpmyadmin


Die Erweiterung "mysql" kann nicht geladen werden.
Bitte überprüfen Sie Ihre PHP-Konfiguration.
Dokumentation

In der php.ini habe ich den Eintrag

extension=msql.so

stehen und den Apache noch mal neugestartet.

Hilft aber nichts. Und phpinfo.php sagt mir auch nichts darüber daß hier MySQL liefe - keine Informationen.

Wie kriege ich es gebacken, daß phpmyadmin startet und phpinfo.php eben MySQL mit auflistet??

MfG

Andreas

sirmoloch
23.03.05, 19:52
Wie wäre es wenn du das php4-mysql-Modul installierst?

Eagle
23.03.05, 19:56
Spaßvogel,

soweit bin ich schon lange.

und ich habe php4-mysql sowie phpmyadmin

sirmoloch
23.03.05, 19:58
Scherzkeks, habe ich wohl überlesen. In welcher Datei lädst du das Modul? (Vollständiger Pfad)

Galeon
23.03.05, 20:01
wie wäre es statt msql.so mal mysql.so zu laden ?

Eagle
23.03.05, 20:06
Siehste da fängt meine Frage erst richtig an.

In der /etc/php.ini habe ich obigen Eintrag. Die Datei mysql.so liegt bei mir in
/usr/lib/perl5/auto/DBD/mysql/

Laut php4-mysql sollte sie in /usr/lib/php4/20010901/ liegen. Tut sie aber nicht. Dahin habe ich einen symbolischen Link auf /usr/lib/perl5/auto/DBD/mysql/mysql.so gelegt.

In /etc/php.ini gibt es noch einen Eintrag:


; Directory in which the loadable extensions (modules) reside.
; extension_dir = ./

Brauche ich hier den Pfad


/usr/lib/php4/20010901/

? Und was ist dann mit denn anderen loadable extensions, wenn ich hier nur den Pfad zu dieser Einen angebe??

MfG

Andreas

Eagle
23.03.05, 20:12
wie wäre es statt msql.so mal mysql.so zu laden ?

Da hast Du vollkommen Recht, das ist ein Schreibfehler meinerseits. Ändert aber nichts an der Tatsache, daß phpmyadmin nicht nicht will.

sirmoloch
23.03.05, 20:13
/usr/lib/perl5/auto/DBD/mysql/mysql.so hat wohl wenig mit PHP zu tun, kontrollier besser nochmal, ob du das Paket richtig installiert hast. Ich vermute das das Problem da liegt.

Den Extensionpath solltest du nicht verändern.

Eagle
23.03.05, 20:24
Das hatte ich bereits schon mal versucht, allerdings


apt-get -f install php4-mysql
liefert

Sorry, php4-mysql is already the newest version.
0 packages upgraded, 0 newly installed, 0 to remove and 146 not upgraded.

Ergo, gibt es bei Debian einen Befehl das Paket trotz aller Abhängigkeiten zu entfernen? Oder die Neuinstallation zu erzwingen?

sirmoloch
23.03.05, 20:26
apt-get --reinstall install PAKET

Unter Debian liegen die php.ini Dateien eigentlich in /etc/php4/ART-DES-INTERPRETERS/php.ini. Jedenfalls ist es ab Sarge so.

Eagle
23.03.05, 20:32
Danke für den Befehl, die Neuinstallation hat geklappt. Bloß mysql.so liegt nach wie vor noch nicht vor.

Und somit funktioniert PHPMyAdmin auch noch nicht. Serverneustart vorausgesetzt.

Eagle
23.03.05, 20:36
Ah, sehe gerade mit

dpkg -L php4-mysql
/.
/usr
/usr/lib
/usr/lib/php4
/usr/lib/php4/20020429-zts
/usr/lib/php4/20020429-zts/mysql.so
/usr/share
/usr/share/lintian
/usr/share/lintian/overrides
/usr/share/lintian/overrides/php4-mysql
/usr/share/doc
/usr/share/doc/php4-mysql


Ergo, verlinke ich in /usr/lib/php4/20010901

ln -s ../20020429-zts/mysql.so mysql.so

Klappt aber leider auch nicht.

sirmoloch
23.03.05, 20:46
Dort /usr/lib/php4/20020429-zts/mysql.so liegt das Modul bei mir auch. Kontrollier mal die Konfigurationsdateien in /etc/php4/DEIN-INTERPRETER/php.ini.

Lädst du PHP als Apache2-Modul? /etc/php4/apache2/php.ini. Benutzt du PHP als CGI? /etc/php4/cgi/php.ini.

Galeon
23.03.05, 20:58
Sieht die Extension immernoch so aus wie im ersten Post ?

Eagle
23.03.05, 21:32
Also die Extension sieht definitiv so aus


extension=mysql.so

Und ich lade das PHP über
/etc/php4/apache/php.ini als Apache1.3-Modul, den Apache 2 habe ich nicht drauf.
Eine /etc/php4/cgi/php.ini gibt es nicht, ergo lade ich offenbar PHP nicht als CGI-Modul. Aber es gibt eine /etc/php4/cli/php.ini, was immer das soll.

sirmoloch
23.03.05, 21:34
cli --> command line

Hast du - nachdem du die Erweiterung in der php.ini aktiviert hast - den Apache neugestartet?

Eagle
23.03.05, 21:38
Aber klar!

Ich starte generell meine Server nach Änderungen über

/etc/init.d/servername restart

durch.
Sonst hätten die Änderungen keinerlei Wirkung.

Galeon
23.03.05, 21:44
Kleines Script, probier das mal spaßeshalber


<?php
if (!extension_loaded('mysql'))
dl('mysql.so');

$link = mysql_connect(HOST, USER, PW);

if (!$link)
die('Keine Verbindung zum SQL-Server möglich: ' . mysql_error());

echo "Tada, ich bin da";
?>

Eagle
23.03.05, 21:53
Danke,

das sieht so aus, als ob die Datei nicht lesbar wäre:


Warning: Unable to load dynamic library '/usr/lib/php4/20010901/mysql.so' - /usr/lib/php4/20010901/mysql.so: undefined symbol: core_globals_id in /home/andreas/web2/test.php on line 3

Fatal error: Call to undefined function: mysql_connect() in /home/andreas/web2/test.php on line 5

Das spuckt der Browser aus.

lrwxrwxrwx 1 root root 24 Mar 23 20:34 /usr/lib/php4/20010901/mysql.so -> ../20020429-zts/mysql.so
und
-rw-r--r-- 1 root root 44708 Mar 6 18:48 /usr/lib/php4/20020429-zts/mysql.so
Die Rechte sehen so aus:

Galeon
23.03.05, 22:03
Nu habsch keine Idee mehr, ausser mal nach dem undefined core_globals zu googlen.

Die Rechtevergabe ist aber soweit ok.

Eagle
23.03.05, 22:10
Jedenfalls besten Dank,

das ist zumindest mal ein Anhaltspunkt. Aber erst wieder morgen - für heute mach ich Schluß!

MfG

Andreas

Eagle
31.03.05, 14:08
Also weder googln noch weitere Versuche bringen mich einem funktionierendem phpMyAdmin weiter.

Inzwischen habe ich noch php4-mysql installiert, bringt aber nichts.
Wenn ich obiges PHP-Skript aufrufe bekomme ich die Meldung:

Warning: Unable to load dynamic library '/usr/lib/mysql.so' - /usr/lib/mysql.so: undefined symbol: core_globals_id in /home/andreas/web2/mysql.php on line 4

Fatal error: Call to undefined function: mysql_connect() in /home/andreas/web2/mysql.php on line 9

Jetzt liegt mysql.so bei mir auf Debian in
/usr/lib/php4/20020429-zts/mysql.so

Ergo lege ich in /usr/lib/ einen Link

ln -s ../php4/20020429-zts/mysql.so mysql.so

So dass /usr/lib/mysql.so existiert.

Starte Apache durch und sehe weder in meiner phpinfo.php eine Rubrik MySQL, noch läßt sich dieses Skript aufrufen.

Was mache ich noch nicht richtig?? Ich habe PHP Version 4.1.2 drauf.

MfG

Andreas

Eagle
02.04.05, 11:19
Hi Leute,

das Problem hat sich nach einer Neuinstallation von PHP gelöst!

Besten Dank auch!

MfG

Eagle

TimeJunky
20.09.06, 18:37
ich hänge auch dem problem... mit a2enmod und a2dismod kannst du php4 oder php5 akt-/deaktivieren

ansonsten landest du evtl. im falschen includepfad (z.b. bei mir war es der von php4 obwohl mysql.so unter dem von php5 war.)