Author |
|
dlh
Joined: 10 Aug 2006 Posts: 7 Location: Bhutan
|
Posted: Sun 13 Aug '06 18:15 Post subject: PHP 5.1.4 will notconnect to mysql 5.0.24 (on XP) |
|
|
I've installed and configured the following according to instructions in:
Apache and PHP - A Fast, Reliable, and Proven Setup
httpd-2.2.3-win32-x86-ssl - from link on this site
php5apache2.dll-php5.1.x - ditto (to dev.mysql)
mysql-essential-5.0.24-win32 (dev.mysql)
php-5.1.4-Win32 - php site
I have apache working with php - php pages work as expected. The problem is that PHP and MySQL still don't connect.
This can be tested at the command line with:
php file
where file content is:
<?php
echo 'php running';
$dbcnx = mysql_connect('localhost');
echo 'connection' + $dbcnx;
?>
Output is:
php running
Fatal error: call to undefined function mysql_connect() ...
This implies to me that the apache install is not the problem.
OK, saw the note on the new PHP_MySQL connector, so downloaded:
php_5.1.4_mysql_5.0.22-win32
php_5.1.4_mysqli_5.0.22-win32
I went and installed the mysql version and got php to attempt to connect, with the now expected authentication error. I then tried to use the "i" version. I added php_msql.lib to the php\ext directory and added an "i" to relevant php.ini lines, but am back to undefined function mysqli_connect().
? why does this version of PHP not have a line for the extension my_sqli? in either php.ini example?
I just reinstalled everything and cannot even get the non-"i" authenticate error. I've also tried putting the new libmysql.dll into windows and windows\system32 with no luck.
This should be a 30 min project, but I've spent days. It would be nice to just get to work.
Should i just revert to php 4.4.3?
Thanks
Dave |
|
Back to top |
|
James Blond Moderator
Joined: 19 Jan 2006 Posts: 7371 Location: Germany, Next to Hamburg
|
Posted: Sun 13 Aug '06 18:18 Post subject: |
|
|
If you run phpinfo(); page is there the mysql extension loaded? |
|
Back to top |
|
dlh
Joined: 10 Aug 2006 Posts: 7 Location: Bhutan
|
Posted: Mon 14 Aug '06 4:28 Post subject: |
|
|
No, phpinfo() does not show mysq loaded. |
|
Back to top |
|
James Blond Moderator
Joined: 19 Jan 2006 Posts: 7371 Location: Germany, Next to Hamburg
|
Posted: Mon 14 Aug '06 9:24 Post subject: |
|
|
So you have to enable it in php.ini
from
Code: |
#extension=php_mysql.dll
|
to
Code: |
extension=php_mysql.dll
|
and copy
libmysql.dll from mysql\bin folder to Apache\bin folder
than it should work. Don't forget to restart Apache |
|
Back to top |
|
dlh
Joined: 10 Aug 2006 Posts: 7 Location: Bhutan
|
Posted: Mon 14 Aug '06 10:19 Post subject: |
|
|
I had already uncomented the
extension=php_mysql.dll
line have also played with using
extension=php_mysqli.dll
Since I need the mysqli version to connect to the later mysql versions (as far as I can tell). Regardless, neither helps.
I also just copied the mysql\bin\libmySQL.dll into apache2\bin and restarted apache with no luck.
Shouldn't I be able to run php from the command line and test PHP <-> MySQL without getting involved with apache - I know that PHP <-> apache works fine?
I've also tried removing comments from several of the other PHP extensions and do not see them popping up in either
php -m (list loaded modules)
or
phpinfo()
Now what?
Dave |
|
Back to top |
|
Xing Moderator
Joined: 26 Oct 2005 Posts: 49
|
Posted: Mon 14 Aug '06 11:51 Post subject: |
|
|
What about your extension_dir ?
Must be pointing to your php/ext, for example:
extension_dir = "c:\php\ext"
X |
|
Back to top |
|
dlh
Joined: 10 Aug 2006 Posts: 7 Location: Bhutan
|
Posted: Mon 14 Aug '06 16:13 Post subject: |
|
|
extension_dir = C:\php\php5\ext\ is set (this is copied from phpinfo())
I'll try to download your more recent php file - the Bhutan Hospital has a 128kb link and it was failing earlier...
Dave |
|
Back to top |
|
Steffen Moderator
Joined: 15 Oct 2005 Posts: 3092 Location: Hilversum, NL, EU
|
Posted: Mon 14 Aug '06 16:21 Post subject: |
|
|
C:\php\php5\ext\
Is the real to your extension dir ? |
|
Back to top |
|
dlh
Joined: 10 Aug 2006 Posts: 7 Location: Bhutan
|
Posted: Mon 14 Aug '06 17:48 Post subject: |
|
|
Yup! |
|
Back to top |
|
Xing Moderator
Joined: 26 Oct 2005 Posts: 49
|
Posted: Mon 14 Aug '06 18:14 Post subject: |
|
|
I am puzzled, looks you have all done wright.
Look in you Apache logs for indications.
What says in phpinfo() the following lines:
Configuration File (php.ini) Path ?
extension_dir ?
Server Root ?
Where did you installed php ? When you extension dir is C:\php\php5\ext\ , that is not common, mostly c:\php\
Afterall it looks like you have somewhere a path issue.
Oh, what are the php lines in you added to your Apache httpd.conf ?
X |
|
Back to top |
|
dlh
Joined: 10 Aug 2006 Posts: 7 Location: Bhutan
|
Posted: Tue 15 Aug '06 11:24 Post subject: |
|
|
OK, I've installed the latest php from this site (php-5.1.4-Win32). It has the same behvior in that I have apache delivering php content, but cannot link/load extensions.
Using c:\php\php5 simplifies this a bit - I renamed the old php5 directory php5.old, and unpacked this into a new c:\php\php5 folder. I had origionally uses c:\php, but at one point tried php4, hence the second level.
In order to get the new php running, I had to add _2 to the load mod line
httpd.conf: (php lines)
LoadModule php5_module "c:/php/php5/php5apache2_2.dll
...
<IfModule dir_module>
DirectoryIndex index.php index.shtml index.html
</IfModule>
...
AddType application/x-httpd-php .php
...
PHPIniDir "C:/php/php5/"[url]
Again - this is not the problem. Shouldn't I be able to run php at the cmd line and test mySQL connections (just like a cgi) without Apache running?
From php.ini (diff from php.ini.recommended)
log_errors = On
error_reporting = E_ALL
display_errors = On
display_startup_errors = On
doc_root = C:\apache2\htdocs"
extension_dir = "C:\php\php5\ext\"
extension=php_mysqli.dll
XP env:
PHPRC c:\php\php5\php.ini
and path has: c:\php\php5 (and reboot)
One ?. The default php.ini shows
extension_dir = "./"
am I correct in adding the \ext\ in this path. Reverting back to "./" or ".\" dosn't change things.
In this install, I have not yet tried adding the file from mySql:
php_5.1.4_mysqli_5.0.22-win32
as I assume that this version is correct.
[/url] |
|
Back to top |
|
admin Site Admin
Joined: 15 Oct 2005 Posts: 692
|
Posted: Tue 15 Aug '06 11:30 Post subject: |
|
|
Looks like, you are mixing two php versions and have still somewehere leftovers.
You ask for issues when mixing versions.
Advised is to remove all php stuff, start again, and follow the guide exactly at www.apachelounge.com/viewtopic.php?t=570 |
|
Back to top |
|
dlh
Joined: 10 Aug 2006 Posts: 7 Location: Bhutan
|
Posted: Wed 16 Aug '06 11:17 Post subject: |
|
|
I figured it out! The problem was not multiple versions - I know that from your prospective it seems like a possibility...
One needs to remember that php can exist independentently of apache and that a php -m shows all loaded modules, so if your php.ini file has a module to load (and there are not dll's above it in the file that are required) one should see say mysqli in that list. Likewise one can do a
php -r "some php function"
and get an error if it's incorrect.
Finally I took another detailed look through php.ini and found an unmatched " - it had swallowed the rest of the file...
Thanks for your time.
I should be pretty straight forward for one to get this running using the latest httpd and php files from this site and mysql from mysql. No need to deal with mysql connector modules as those your php5 are correct.
Dave |
|
Back to top |
|
1109KL
Joined: 31 May 2006 Posts: 5
|
Posted: Thu 24 Aug '06 3:57 Post subject: |
|
|
could you give an example of the php function?
i trie php -m mysql and get some error msg with 1%. that is because i use the wrong dll. but when i swtich back. there is no error - still... i get this
Code: | Fatal error: Call to undefined function mysql_connect() in |
|
|
Back to top |
|
James Blond Moderator
Joined: 19 Jan 2006 Posts: 7371 Location: Germany, Next to Hamburg
|
Posted: Thu 24 Aug '06 9:08 Post subject: |
|
|
Try this
That will show you all commands
php -m will show com compiled in modules. MySQL is not compiled in! You have to load the extension. In php.ini enable it (see posts above)
Than create a test.php in htdocs folder
Code: |
<?php
phpinfo();
?>
|
call it from the browser with http://127.0.0.1/test.php |
|
Back to top |
|
1109KL
Joined: 31 May 2006 Posts: 5
|
Posted: Thu 24 Aug '06 18:39 Post subject: |
|
|
when i run php -m i saw mysql in between libxml and odbc. don't that mean mysql is currently running with php?
and when i run that test;
Code: | php running
Fatal error: Call to undefined function mysql_connect() in F:\net\test.php on line 3 |
|
|
Back to top |
|