[PHP+MySQL] PHP kan niet communiceren met MySQL

Pagina: 1
Acties:
  • 111 views sinds 30-01-2008
  • Reageer

  • Crusader
  • Registratie: Januari 2000
  • Laatst online: 17:14

Crusader

Arc Nature

Topicstarter
Ik ben momenteel al ruim 6 uur non-stop bezig met het vinden van een oplossing voor onderstaand probleem. Uiteraard het nodige zoekwerk al verricht.

Het probleem is dat mijn PHP 5 installatie geen MySQL detecteert. Wat ik daar precies mee bedoel omscrhijf ik hieronder. De MySQL koppeling heb ik nodig voor Joomla. Maar ook PHPMyAdmin geeft aan dat de extensie niet geladen kan worden. Ik draai Windows 2003 Enterprise Edition met SP1 en gebruik IIS 6.0.
Wat heb ik gedaan?
  • PHP 5 (versie 5.1.6) .zip file uitgepakt naar C:\php.
  • MySQL versie 5.0.24-community geinstalleerd in default directory
  • De handleiding voor de configuratie van IIS 6 gevolgd in de install.txt die in de php directory staat (dus de ISAPI filter aangemaakt, .php extensie gekoppeld aan de php5isapi.dll en de PHP Web Service Extension allowed.
  • C:\php en C:\php\ext aan het Windows system path toegevoegd
  • De php.ini conform handleiding in C:\php laten staan
  • Overbodig, maar toch gedaan: de php_mysql.dll en libmysql.dll bestanden gekopieerd naar C:\Windows, C:\Windows\System en C:\Windows\System32
  • In php.ini puntkomma uit de regels "extension = php_mysql.dll" en "extension = php_mysqli.dll" verwijderd om zodoende deze extensions te enablen
  • In php.ini de variabele extension_dir op C:\php\ext gezet
  • In php.ini de session.save_path op C:\php\tmp gezet (directory bestaat en daar verschijnen ook sessiefiles in)
  • De gebruiker IUSR_<servernaam> lees- en schrijfrechten en uitvoerrechten gegeven op de wwwroot subdirectories joomla en phpmyadmin en c:\php en deze rechten doorgevoerd naar onderliggende bestanden en directories
Het probleem is nu dat wanneer ik de installatie van Joomla start (versie 1.0.10), dat er bij "MySQL Support" Unavailable staat (pagina wordt getoond, dus PHP in het algemeen werkt gewoon).
Als test heb ik PHPMyAdmin geinstalleerd, die geeft alleen de foutmelding "Kan de mysql extentie niet laden", iets dat mij aangeeft dat er iets met de koppeling naar MySQL niet goed is.

Echter, ik kan met de MySQL Command Prompt gewoon inloggen op mijn MySQL installatie.

Vele sites die ik heb bezocht, waaronder ook hier op GoT, reppen consequent over het niet goed hebben ingesteld van de php.ini en/of IIS. Maar volgens mij staat dat goed.

Nu komt het mooiste: wanneer ik het installatiescript van Joomla (waarin de MySQL check zit) als Administrator vanaf de command line run, krijg ik o.a. deze uitput (overbodige spaties voor de leesbaarheid verwijderd):

code:
1
2
<tr><td>&nbsp; - MySQL support</td>
<td align="left"><b><font color="green">Available</font></b></td></tr>


Oftewel, hiermee is volgens mij aangetoond dat er met de installatie van IIS, PHP en MySQL niets aan de hand is.
Alleen als het script uitgevoerd wordt door IIS, is MySQL opeens niet meer available.
Na mijn uren zoekwerk heb ik nu de behoefte aan wat hulp, dus hoop ik dat ik dat hier kan vinden :)
Bedankt alvast!

If it ain't broken, play with it till it breaks.


  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Wat geeft een
PHP:
1
phpinfo();
weer op het puntje MySQL?

  • frickY
  • Registratie: Juli 2001
  • Laatst online: 15-02 17:57
De puntkomma voor "LoadModule mysql,,," vergeten weg te halen? ;)
Doh.. ben in de war met apache |:(

[ Voor 76% gewijzigd door frickY op 04-10-2006 23:09 ]


  • eamelink
  • Registratie: Juni 2001
  • Niet online

eamelink

Droptikkels

Maak een filetje aan met phpinfo(); erin en kijk of je echt de goede php.ini zit te editten ;)

Als het op de commandline wel werkt, dan is het namelijk best goed mogelijk dat je dus de commandline php.ini wél goed hebt ingesteld, maar dat IIS een andere pakt.

Ik heb geen verstand van windows, maar ik heb gewoon meerdere php.ini's :
code:
1
2
3
/etc/php5/apache/php.ini
/etc/php5/apache2/php.ini
/etc/php5/cli/php.ini

En dan ook nog zo'n zelfde setje voor php4 ;)

  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

....en als je gewoon zoals het hoort en overal in de documentatie van PHP zelf te lezen is alles in één dir houdt hoef je ook niet je hele HDD af te speuren.

Ik zou sowieso als eerste de *.dll files weer uit %windir% en %windir%\system32 halen.
Niet alleen omdat je nu niet weet welke er geladen wordt, maar omdat je bij een upgrade ook die files zal moeten vervangen.

Dan is het op één plek makkelijker werken dan op 3 plekken.

[ Voor 46% gewijzigd door alt-92 op 04-10-2006 23:27 ]

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device


  • Crusader
  • Registratie: Januari 2000
  • Laatst online: 17:14

Crusader

Arc Nature

Topicstarter
Ga ik proberen. Zal later (of morgen, zit nu op m'n werk) de uitkomsten geven.

@Elevator: Ik hoop dat phpinfo() dezelfde output geeft als vanaf de commandline "php -i":
code:
1
edit: niet meer relevant en topic vervuilend...

[ Voor 97% gewijzigd door Crusader op 05-10-2006 00:31 ]

If it ain't broken, play with it till it breaks.


  • alt-92
  • Registratie: Maart 2000
  • Niet online

alt-92

ye olde farte

code:
1
2
3
4
5
6
7
8
9
10
11
12
13
mysql

MySQL Support => enabled
Active Persistent Links => 0
Active Links => 0
Client API version => 5.0.22

mysqli

MysqlI Support => enabled
Client API library version => 5.0.22
Client API header version => 5.0.22
MYSQLI_SOCKET => /tmp/mysql.sock


Wel, op de console wel dus. Toch even een phpinfo page maken, om de isapi methode nog eens te controleren.

ik heb een 864 GB floppydrive! - certified prutser - the social skills of a thermonuclear device


  • Crusader
  • Registratie: Januari 2000
  • Laatst online: 17:14

Crusader

Arc Nature

Topicstarter
BackSlash32 schreef op woensdag 04 oktober 2006 @ 23:29:
Wel, op de console wel dus. Toch even een phpinfo page maken, om de isapi methode nog eens te controleren.
Is goed, doe ik zodra ik thuis kom. Maar is de juiste werking van ISAPI niet al te concluderen uit het feit dat ik .php pagina's (zoals de Joomla installatiepagina's) gewoon goed te zien krijg?

[ Voor 23% gewijzigd door Crusader op 04-10-2006 23:35 ]

If it ain't broken, play with it till it breaks.


  • elevator
  • Registratie: December 2001
  • Niet online

elevator

Officieel moto fan :)

Het kan (goed) zijn dat jouw PHP onder IIS een hele andere php.ini gebruikt dan vanuit de commandline, daarom even die phpinfo() draaien vanuit waar het niet werkt.

  • Crusader
  • Registratie: Januari 2000
  • Laatst online: 17:14

Crusader

Arc Nature

Topicstarter
Hierbij de phpinfo() via IIS, waaruit inderdaad blijkt dat ie een andere php.ini pakt (was ik nooit op gekomen, bedankt!):

Afbeeldingslocatie: http://crusader.tweakdsl.nl/phpinfo.png

Via Google er achter gekomen dat de locatie van php.ini middels een registry setting te configureren is.
Quote:
Place php.ini in a place where PHP can find it, because PHP won't look for it in the main program directory (I modified settings for half an hour and never got them accepted, until I finally discovered this ). You have two choices for this: place php.ini in C:\Windows or use the Windows Registry to tell PHP where to look for it.
I'd recommend the second option, since I don't like cluttering the Windows directory with INI files; if you choice to do so, open the Registry Editor (regedit.exe) and create a key named "PHP" under HKEY_LOCAL_MACHINE\Software; then, under HKEY_LOCAL_MACHINE\Software\PHP, create a string value called "IniFilePath" and fill it with the full PHP path (C:\Program Files\PHP).

[ Voor 136% gewijzigd door Crusader op 05-10-2006 11:27 ]

If it ain't broken, play with it till it breaks.


  • Alieunited
  • Registratie: November 2002
  • Laatst online: 31-01 07:08
Ik wil hier nog even op inhaken, ik zit met hetzelfde probleem.
Ik heb alle bovenstaande optie geprobeerd en zit nog steed met het probleem, vandaar even een oude koe uit de sloot.

Ik werk met PHP versie 5.2.0
SQL 5.0.27
Apache 2.2.3
Joomla 1.0.12

Ik krijg dus ook op de startpagina van de joomla instalatie "MySQL Support" Unavailable
de php werkt in mijn geval dus ook.

Toen heb ik gekeken naar:
PHP:
1
phpinfo();

Maar weet niet exact naar welke waarden ik moet kijken voor mysql. Ik weet in ieder geval wel dat ik in de goede php.ini zit te werken, want de directories komen overeen.

Ik heb ook nog gekeken naar.
PHP:
1
2
<tr><td>&nbsp; - MySQL support</td>
<td align="left"><b><font color="green">Available</font></b></td></tr>

Daar staat dat mysql support available is.

Maar als ik kijk bij myphp wat ik heb gedownload dan geeft hij aan
"Kan de mysql extentie niet laden,<br />Controleer de PHP Configuratie - Documentatie"
Ik heb myphp in de map /myphp gezet van htdocs van apache.

Dus er klopt iets niet ik denk toch in de php.ini, maar wat kan ik echt niet vinden na 10 keer te hebben doorgelezen. Ik heb die link op dev.mysql ook geprobeerd, maar zonder resultaat.

Misschien komt het iemand bekend in de oren?
Pagina: 1