Problem mit PHP in Zusammenhang mit MySQL

Eine Neuinstallation von phpBB 2.0 wird auf phpBB.de nicht mehr unterstützt.
Siehe auch Entwicklungs-Ende von phpBB 2.0 - Auswirkungen auf phpBB.de
Forumsregeln
phpBB 2.0 hat das Ende seiner Lebenszeit überschritten
phpBB 2.0 wird nicht mehr aktiv unterstützt. Insbesondere werden - auch bei Sicherheitslücken - keine Patches mehr bereitgestellt. Der Einsatz von phpBB 2.0 erfolgt daher auf eigene Gefahr. Wir empfehlen einen Umstieg auf phpBB 3.1, welches aktiv weiterentwickelt wird und für welches regelmäßig Updates zur Verfügung gestellt werden.

Eine Neuinstallation von phpBB 2.0 wird auf phpBB.de nicht mehr unterstützt.
Siehe auch Entwicklungs-Ende von phpBB 2.0 - Auswirkungen auf phpBB.de
Gesperrt
darkie23
Mitglied
Beiträge: 10
Registriert: 12.05.2003 05:22

Problem mit PHP in Zusammenhang mit MySQL

Beitrag von darkie23 »

Hi, folgende Situation:

Alter Server = Debian 3.0, MySQL 3, PHP4, PHPBB 2.0.11
Neuer Server = Debian 3.1, MySQL 4, PHP4, PHPBB 2.0.11

Also auf dem alten Server hatte ich ein laufendes Forum, von dessen Datenbank ich sowohl über die Administration, als auch via mysqldump ein Backup gemacht habe. Danach habe ich den Server platt gemacht und Debian 3.1 installiert. Dann folgten folgende Schritte:
  • apt-get install mysql-server mysql-client
  • alten PHPBB Benutzer in MySQL anlegen und testen
  • apt-get install apache und httpd.conf anpassen
  • apt-get install php4 (DirectoryIndex anpassen, Modul laden etc)
  • PHPBB Dateien frisch aufspielen und Installation durchführen...
... argh genau hier hakte es plötzlich. Ich hab bei der Installation mySQL4 gewählt, die restlichen Daten eingestellt und dann die Fehlermeldung
Die PHP-Konfiguration auf deinem Server unterstützt nicht den gewählten Datenbank-Typ
erhalten.

Der Benutzer ist auf jedenfall korrekt. Es scheint irgendwie an der PHP4 Konfiguration zu liegen. Ich habe mich schonmal umgeschaut, aber eigentlich nur Probleme bezüglich PHP5 gefunden, wo "--with-mysql" nicht automatisch mit drin ist.

Ich hab dann mal ein stink-normales PHP Skript ausprobiert... da funzte. Dann habe ich folgenden DB Test gemacht:

Code: Alles auswählen

<? $db_link=mysql_connect("localhost","xxx","yyy");
    if($db_link) { echo "MYSQL-Support OK"; }
?>
und bekam folgende Fehlermeldung zurück:
Fatal error: Call to undefined function: mysql_connect() in /var/www/test.php on line 1
Kann sich jemand darauf einen Reim machen? Hier noch nein paar zusätzliche Infos:

System:
PHP Version 4.3.9-2
Linux debian 2.4.27
Apache/1.3.33

httpd.conf (u.A.):

Code: Alles auswählen

AddType application/x-httpd-php .php
DirectoryIndex index.html index.htm index.shtml index.cgi index.php
LoadModule php4_module /usr/lib/apache/1.3/libphp4.so
<IfModule mod_php4.c>
  AddType application/x-httpd-php .php .phtml .php3
  AddType application/x-httpd-php-source .phps
</IfModule>
php.ini (u.A.):

Code: Alles auswählen

[SQL]
sql.safe_mode = Off

[MySQL]
; Allow or prevent persistent links.
mysql.allow_persistent = On

; Maximum number of persistent links.  -1 means no limit.
mysql.max_persistent = -1

; Maximum number of links (persistent + non-persistent).  -1 means no limit.
mysql.max_links = -1

; Default port number for mysql_connect().  If unset, mysql_connect() will use
; the $MYSQL_TCP_PORT or the mysql-tcp entry in /etc/services or the
; compile-time value defined MYSQL_PORT (in that order).  Win32 will only look
; at MYSQL_PORT.
mysql.default_port =

; Default socket name for local MySQL connects.  If empty, uses the built-in
; MySQL defaults.
mysql.default_socket =

; Default host for mysql_connect() (doesn't apply in safe mode).
mysql.default_host =

; Default user for mysql_connect() (doesn't apply in safe mode).
mysql.default_user =

; Default password for mysql_connect() (doesn't apply in safe mode).
; Note that this is generally a *bad* idea to store passwords in this file.
; *Any* user with PHP access can run 'echo get_cfg_var("mysql.default_password")
; and reveal this password!  And of course, any users with read access to this
; file will be able to reveal the password as well.
mysql.default_password =

; Maximum time (in seconds) for connect timeout. -1 means no limit
mysql.connect_timeout = 60

; Trace mode. When trace_mode is active (=On), warnings for table/index scans and
; SQL-Errors will be displayed.
mysql.trace_mode = Off
Kann damit jemand was anfangen?
Und gleich noch ne Frage... soll ich PHPBB 2.0.11 kopieren, ganz normal die Installation durchführen und in der Administration das Backup einspielen (was passiert dann eigentlich mit dem Admin Benutzer... wird der überschrieben z.B. das alte Passwort oder das der neuen Installation?) oder soll ich einfach die config.php mit der alten überschreiben und die Datenbank mit mysqldump wieder einspielen?

Danke
Gruß
Darkie
darkie23
Mitglied
Beiträge: 10
Registriert: 12.05.2003 05:22

Beitrag von darkie23 »

Im Configure Command Abschnitt von phpinfo steht übrigens

Code: Alles auswählen

 '--with-mysql=shared,/usr'
d.h. PHP4 ist (sollte ja auch per Default so sein im Gegensatz zu PHP5) mit/für mysql Konfiguriert worden. Nur so als Hinweis... suche fleißig weiter, finde aber bisher keine wirklich keine treffende Antwort dafür... keiner ne Idee?
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Lass dir mal die PHP-Konfiguration ausgeben (KB:phpinfo)
Steht da was von MySQL drin?

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
darkie23
Mitglied
Beiträge: 10
Registriert: 12.05.2003 05:22

Beitrag von darkie23 »

Folgende Abschnitte enthalten das Wort mysql

Configure Command:

Code: Alles auswählen

'--with-mysql=shared,/usr'
Apache Environment:
HTTP_COOKIE phpbb2mysql_data=...........
Http Headers Information:
HTTP_COOKIE phpbb2mysql_data=...........
dbx:
supported databases MySQL ODBC PostgreSQL Microsoft SQL Server FrontBase Oracle 8 (oci8) Sybase-CT
PHP Variables:
_REQUEST["phpbb2mysql_data"] a:2:{...........
_COOKIE["phpbb2mysql_data"] a:2:{...........
_SERVER["HTTP_COOKIE"] phpbb2mysql_data=.........
Jo und das wars.
Hab eben mal versucht mit apt-get install php4-mysql den Fehler zu beheben... aber das ist mehr Raten als Wissen!

Ich denke mal der Fehler ist ganz simple... irgendwo lade ich etwas nicht richtig... wie auch immer.[/b]
PhilippK
Vorstand
Vorstand
Beiträge: 14662
Registriert: 13.08.2002 14:10
Wohnort: Stuttgart
Kontaktdaten:

Beitrag von PhilippK »

Dass sieht ganz so aus, als ob die MySQL-Extension nicht richtig eingebunden wurde - da müsste ein ganze Block für MySQL vorhanden sein.

Gruß, Philipp
Kein Support per PN!
Der Sozialstaat ist [...] eine zivilisatorische Errungenschaft, auf die wir stolz sein können. Aber der Sozialstaat heutiger Prägung hat sich übernommen. Das ist bitter, aber wahr. (Horst Köhler)
Meine Mods
darkie23
Mitglied
Beiträge: 10
Registriert: 12.05.2003 05:22

Beitrag von darkie23 »

Über die Extensions steht folgendes in der php.ini:

Code: Alles auswählen

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


;;;;;;;;;;;;;;;;;;;;;;
; 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.

; Example lines:

;extension=mysql.so
;extension=gd.so
Also in diesem Abschnitt ist ja alles auskommentiert... hatte mal "extension=mysql.so" aktiviert... aber ohne Erfolg (sofern ein apachectl restart reicht um es danach zu testen).

Kenne mich mit den Extensions leider nicht aus, wäre aber über eine Aufklärung sehr dankbar.
darkie23
Mitglied
Beiträge: 10
Registriert: 12.05.2003 05:22

Beitrag von darkie23 »

Haha... hab mich mal schlau gemacht und bin auf folgenden Beitrag im Internet gestoßen:
php4 hat einen eingebauten mysql client (version 3..x) [1] welcher statisch
einkompiliert werden kann oder als ladbare Extension mysql.so vorliegen
kann. Die meisten Distris benutzen seit langer Zeit ladbare Extensions.
Diese liegen in einem bestimmten Verz. welche als extension_dir in der
php.ini steht damit php diese auch findet. Geladen werden sie dann in der
php.ini oder zur Laufzeit im Script mit dl('foo.so');.

Diese mysql Unterstuetzung kann man auch erzeugen in den man gegen eine
externe libmysqlclient linkt. Das heist das Mysql Produkt must dort inkl.
header verhanden sein. Zur laufzeit spaeter wird nur noch die clients.so
gebraucht. Auch hier kann man das ganze statisch in das PHP kompilieren oder
wieder als foo.so zum dynamischen laden.
Ich hab dann auf meinem Server die Datei mysql.so gesucht und den Pfad (extension_dir=....) dementsprechend angepasst und die mysql.so Extension (extension=mysql.so) in der php.ini aktiviert.

Nun erscheint in der PHPInfo auch ein eigener mySQL Abschnitt:

Code: Alles auswählen

mysql
MySQL Support	enabled	
Active Persistent Links 	0 	
Active Links 	0 	
Client API version 	3.23.56 	
MYSQL_MODULE_TYPE 	external 	
MYSQL_SOCKET 	/var/run/mysqld/mysqld.sock 	
MYSQL_INCLUDE 	-I/usr/include/mysql 	
MYSQL_LIBS 	-L/usr/lib -lmysqlclient
Ich hoffe mal, dass es jetzt klappt... werde gleich darüber berichten.
darkie23
Mitglied
Beiträge: 10
Registriert: 12.05.2003 05:22

Beitrag von darkie23 »

Jep... das war's. Jetzt geht's!
Trotzdem Danke für die Hilfe...!
Gesperrt

Zurück zu „phpBB 2.0: Installation und Update“