apache启动时无法加载模块c:phpphp_mysql.dll

apache启动时无法加载模块c:phpphp_mysql.dll,第1张

再装Apache啊! 要数据库的话就用MYSQL数据库

一.php的安装与调试

由于php是一个zip文件(非install版),安装较为简单,解压就行。把解压的 php5.2.1-Win32重命名为 php5。并复制到C盘目录下。即安装路径为 c:\php5

1 找到php目录下的 php.ini-dist或 php.ini.recommended文件,重命名为 php.ini

并复制到系统盘的windows目录下(以c:\windows为例).

2 再把php目录下的php5ts.dll,libmysql.dll复制到目录 c:\windows\system32下。

3 把php5\ext目录下的php_gd2.dll,php_mysql.dll,php_mbstring.dll文件复制到c:\windows\system32下

如果没有加载 php_gd2.dll php将不能处理图像。没有加载php_mysql.dll php将不支持mysql函数库

php_mbstring.dll在后面使用phpmyadmin时支持宽字符。

4 打开c:\windows\php.ini文件(关联到mysql)

设置扩展路径

查找 extension_dir 有这么一行extension_dir = "./"

将此行改成

extension_dir = "C:\php5\ext"

其中C:\php5是你安装php的路径。路径不正确将无法加载dll

(注意:有些php版本是 extension_dir = "./" 要把前面的分号去掉)

查找 extension

extension=php_mbstring.dll

extension=php_gd2.dll

extension=php_mysql.dl

把上面3项前面的分号去掉,这样apache启动时就可以加载这些dll了

当然前面我们也把这些dll复制到system32下了l

php5时差问题

<?php echo date("Y-m-d H:i:s")?>时间相差八小时

为什么呢?PHP5系列版本新增了时区设置,默认为格林威治时间,与中国所在的东8区正好相差8个小时

查找date.timezone有这么一行

date.timezone =

将去掉,改成

date.timezone = PRC

二.apache的调试和整合

1.修改网站根目录

查找 DocumentRoot有这么一行

DocumentRoot"C:/Program Files/Apache Group/Apache2/htdocs"

这就是你网站的根目录,你可以修改,也可以用默认的.如果改,还要修改下面这项,否则可能会出现 403 错误

查找 This should be changed to whatever you set DocumentRoot to

在它下面两行有

<Directory "C:/Program Files/Apache Group/Apache2/htdocs">

把上面两项的 C:/Program Files/Apache Group/Apache2/htdocs 改成你想要的目录

2.让apache支持*.php(网页)

查找 DirectoryIndex index.html index.html.var

修改成

DirectoryIndex index.html index.html.var index.php

这样index.php 可以充当默认页面了

3.Apache中模块化安装php

查找 # LoadModule foo_module modules/mod_foo.so

在此行后加入一行

LoadModule php5_module C:/php5/php5apache2.dll //注意:其中C:/php5/php5apache2.dll是你安装php的相应路径.不要把php5apache2.dll和php5apache.dll混淆.php5apache.dll只适用于apache 版本1的.PHP5压缩包里的php5apache2.dll只适用于apache2.0.*版本,如果是2.2.*以上版本,就可能会出现"Cannot load C:/php/php5apache2.dll into server: The specified module could not be found."或者:"The requested operation has failed"

4.查找 AddType application/x-gzip .gz .tgz

在此行后加入一行

AddType application/x-httpd-php .php (记住:前边有一个空格哦!!!)

这样apache就可以解释php文件了

5.测试

在网站根目录下创建一个 phpinfo.php 文件

<?php

phpinfo()

?>

在浏览器打开

5.测试php和mysql数据库的关联

在网站根目录下创建一个test.php 文件

<?php

$link=mysql_connect("localhost","root","12345")//12345改成你的mysql密码

if(!$link) echo "失败!"

else echo "成功!"

mysql_close()

?>

在浏览器打开

如果输出成功,则说明大功告成了

问题一

今天给本本装上mysql和php,一切安装都很正常([email protected])。但用phpmyadmin连接测试时却出现“#2002无法连接”的错误,用其它程序也是同样问题。

检查了下,php的mysql扩展正确安装,mysql服务正常启动--那就奇了怪了。又用navicat连接,居然连上了。。看来是php和mysql间的通讯出了问题。

百度了一下,问题被揪出来了:

mysql_connect()函数数据库服务器(server)参数当前设置为localhost,但当其更改为127.0.0.1后又可以正常访问。

系统hosts文件未提供127.0.0.1到localhost的解析。

解决方法(以win7系统为例):找到C:\Windows\System32\drivers\etc\hosts文件,默认为只读,你需要复制一份到其他路径如桌面,打开文件(打开方式:记事本),在文件末尾添加:

127.0.0.1 localhost

如果已存在去掉其前面的“#”。

问题二

php脚本可以正常运行,如phpinfo()。

只要一出现“mysql_connect”函数,就没反应,也不报错。

如 $conn = mysql_connect("127.0.0.1","root","xxxx") or die("MYSQL数据库连接失败:".mysql_error())

apache日志目录error.log中出现

PHP Warning: PHP Startup: Unable to load dynamic library 'c:\\php\\ext\\php_mysql.dll'

解决办法

将“libmysql.dll”复制到apache的bin目录下。然后重启,观察error.log,如果错误消失,那恭喜了。

另:网上资料也有说将““libmysql.dll””“php_mysql.dll”复制到windows/system32的。

问题三

代码如下 复制代码

<?//以上代码省略

$link_id=@mysql_connect( "localhost ", "sampadm ", "secret ")

//以下代码省略

?>

运行时出现如下提示:

fatal error: call to undefined function mysql_connect() in var/www/html/mytest.php

解决方法

1.php.ini中

extension_dir设置为 "d:\apache2\php\ext "绝对路径,否则有些环境中会出错。

打开下面两行功能扩展

extension=php_mysql.dll

extension=php_mysqli.dll

2.拷贝libmysql.dll(php目录下)和php_mysql.dll(php/ext目录下)至c:\windows\system32目录下(libmysql.dll必须为php目录下,比如我的为D:\apache2\php目录下的libmysql.dll,php_mysql.dll则在D:\apache2\php\ext)

3.测试,

1> 先打开命令行

A)依次点击“开始”菜单->“mysql”->“mysql5 server”->“MySQL Command Line Client”

//如此步成功则mysql安全成功,失效则mysql安装失败,请卸载后重装

B)输入密码

//此步正常则说明 root账户的密码正确。失败则账号密码有错

2> 新建文件至主目录,并保存为testmysql.php,接着在浏览器中输入http://localhost/testmysql.php (或者http://localhost:81/testmysql.php)

如果不行查看一下apache是否加载了php与 mysql方法

apache中支置对php5的支持httpd.conf文件中加入下面三行

PHPIniDir "D:/ccopen/php5/"

LoadModule php5_module "D:/ccopen/php5/php5apache2_2.dll"

AddType application/x-httpd-php .php

php.ini中去掉下面两行分号

extension=php_mysql.dll

extension=php_mysqli.dll

将php_mysql.dll和libmysql.dll拷到system32

重起apache服务器


欢迎分享,转载请注明来源:内存溢出

原文地址: https://outofmemory.cn/zaji/5891548.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-05
下一篇 2023-03-05

发表评论

登录后才能评论

评论列表(0条)

保存