PHP-Befehle für Funktion gehalten ... Woran liegts?

paolo

Newbie
Hallo Leute,

jetzt versuche ich nochmal, den Fehler genau zu beschreiben und die Frage gleich im richtigen Bereich zu stellen:

In meinen Scripten connecte ich die Datenbank mit
$verbindung = mysql_connect ($host, $benutzer, $kennwort).

Die Skripte liefen auf anderen Servern problemlos.
Auf dem Linux-Server läuft der Befehl nicht, dort hält er den Befehl für eine Function und gibt die folgende Fehlermeldung aus:

Fatal Error: call to undefined function: mysql_connect() in /srv/www/htdocs/test/test.php on line 17

Nchfolgende Befehle (z.B. die IF-Abfrage für die DIE-Aktion) wird gar nicht mehr ausgeführt.

Services: PHP läuft, Mysql auch.
(phpMyAdmin läuft!)

Versionen: SuSE Linux 9.1, PHP 2.5.6, MySQL 4.0.18

Kennt sich da jemand aus, woran das liegen kann???

Grüße
Paul
 

wenf

Hacker
1.) php ist ohne mysql - support
(phpMyAdmin läuft auf einem anderen Virtuellen host mit anderer php-version) -ehrlich gesagt glaube ich das aber nicht

2.) in Apache gibt es eine einstelling, die die datei test.php verbietet schau doch mal nach ob das bei dir so ist ....

3.) hast du irgendwelche PHP-flags in deiner Apache konfig ?
 
A

Anonymous

Gast
Hallo wenf, Grüße nach Österreich!

wenf schrieb:
1.) php ist ohne mysql - support
(phpMyAdmin läuft auf einem anderen Virtuellen host mit anderer php-version) -ehrlich gesagt glaube ich das aber nicht?

Das ist auch nicht so.

wenf schrieb:
2.) in Apache gibt es eine einstelling, die die datei test.php verbietet schau doch mal nach ob das bei dir so ist ....

Das ist nicht so, denn die Datei wird ja angestartet und läuft bis zu diesem Befehl. Andere Mysql-Befehle kann ich auch nicht testen, da diese ja von diesem abhängen.
Kann es denn passieren, dass Mysql läuft (Status=running), aber die Befehle nicht akzeptiert werden?

wenf schrieb:
3.) hast du irgendwelche PHP-flags in deiner Apache konfig
Welche sollen das denn z.B. sein?

Danke für den Versuch....

Grüße aus dem Rheinland
Paul
 
Hallöchen!

Ruf einfach mal in einem neuen Script Folgenenden snippet auf:
Code:
<?
phpinfo();
?>

In dem ersten grauen Fenster stehen die "Flags" mit denen PHP Compiliert wurde. Da PHP Modular aufgebaut ist, muss auch das php-mysql Modul installiert werden.
Wenn bei den Flags also z.B. steht --disable-mysql-irgendwas ist dein PHP ohne MySQL Compiliert worden.
Bei SuSE 9.1 wundert mich gar nix mehr :twisted:.

Dann kannst du höchstens noch mal versuchen den Schoschonen komplett zu löschen und neu zu installieren 8)
 
OP
P

paolo

Newbie
Hallo,

ja, da ist was dran. Es gibt die Zeile in 'Configure Command': -without-mysql
... Obwohl ich doch Mysql installiert habe - phpMyAdmin funktioniert doch ... und damit komme ich doch an die DBs ...

Dann habe ich festgestellt, dass der Befehl session_id() auch nicht erkannt wird und ebenfalls für eine Funktion gehalten wird ...
Ich denke, ich komme nicht drumherum, mich an SuSE zu wenden...

Danke für den Tip!

Paul
 

wenf

Hacker
was ist wenn du php ohne mysql-support hast
aber phpMyAdmin pear db mysql verwendet

dann kann es zu so einer konstelation kommen
 
OP
P

paolo

Newbie
Hallo,

Perl ist NICHT installiert, den Apache habe ich komplett deinstalliert und wieder installiert, Mysql habe ich NICHT deinstalliert, so dass der Apache den Mysql finden konnte (wenn er ihn denn sucht)....

:cry: - ratlos....


Paul
 

wenf

Hacker
nicht PERL
sondern PHP PEAR
PEAR - PHP Extension and Application Repository
http://pear.php.net/

phpMyAdmin
http://deinhost/phpMyAdmin/Documentation.html#faqmysql
phpMyAdmin tried to load the extension
Usually, the problem is solved by installing a software package called "PHP-MySQL" or something similar.
 
OP
P

paolo

Newbie
habe soeben mit SuSE telefoniert (0190er Nummer). Ein Fehler in PHP in der V9.1 ist bekannt, dafür soll es ein Update irgendwann geben.
Auf die Frage, ob denn ein älteres RPM installiert werden kann, sagte man mir, das geht nicht weil der Sprung zum 2.6er Kernel nicht passt....

.... vielleicht besorge ich mir mal eine ältere V8.2..

Paul
 

AlBundy

Member
Ich hatte ein ähnliches Problem (unter PostNUKE). Da lief auch nix mehr unter 9.1 zusammen.

Schau mal in der php.ini nach, ob es dort einen Extensions-Block gibt. Dort solltest Du die mysql.so einbinden. Die findest Du unter /usr/lib/php/extensions - wenn diese PHP-Erweiterung mit installiert ist.

Nachdem ich das eingebunden hatte, lief auch meine MySQL-PHP-Vrbindung wieder ...

HTH,

Al
 
OP
P

paolo

Newbie
Hallo Al,

habe die php.ini überarbeitet (extension=mysql.so).
Habe den Apache und Mysql neu gestartet, läuft noch immer nicht...
Ich frage mich nur, wenn doch der phpMaAdmin läuft, warum läuft der auch, wenn die 'normalen' Befehle nicht laufen??? Wie kommt der an die Stuktur und Daten der DBs??

Paul
 

AlBundy

Member
Hallo paolo,

ich habe bei mir alle php-Module mittels YaST installiert (auch wenn ich die meisten nie brauchen werde :wink:). In der php.ini steht irgendwo ein
Code:
extension_dir = /usr/lib/php/extensions
wo ich den Pfad zu den Modulen eingetragen habe.

Außerdem gibt es einen Extensions-Block, der bei mir so aussieht:
Code:
;;;;;;;;;;;;;;;;;;;;;;
; 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.

; The following section header introduces a section where packages
; will add extension directives. You should not edit that line!

[extension section]
extension=zlib.so
extension=yp.so
extension=xslt.so
extension=wddx.so
extension=unixODBC.so
extension=sysvshm.so
extension=sysvsem.so
extension=swf.so
extension=sockets.so
extension=snmp.so
extension=shmop.so
extension=session.so
extension=recode.so
extension=readline.so
extension=qtdom.so
extension=pgsql.so
extension=mysql.so
extension=mime_magic.so
extension=mhash.so
extension=mcrypt.so
extension=mcal.so
extension=mbstring.so
extension=ldap.so
extension=imap.so
extension=iconv.so
extension=gmp.so
extension=gettext.so
extension=gd.so
extension=ftp.so
extension=filepro.so
extension=exif.so
extension=domxml.so
extension=dbase.so
extension=dba.so
extension=curl.so
extension=ctype.so
extension=calendar.so
extension=bz2.so
extension=bcmath.so
; end of extension section

Bitte vergiß nicht, nach einer Änderung den Indianer neu zu starten (rcapache2 stop und rcapache2 start).

Al
 
Oben