1、下载安装xdebug
1.1 到http://xdebug.org/download.php 下载适合你的PHP版本的xdebug
1.2 复制到php安装目录的ext文件夹,改名为php_xdebug.dll
1.3 配置xdebug
在php.ini尾部添加如下
[xdebug]
zend_extension="php_xdebug.dll"
xdebug.remote_enable = On
xdebug.remote_host = "localhost"
xdebug.remote_port = 9000
xdebug.remote_handler = "dbgp"
xdebug.auto_trace = 1
xdebug.collect_includes = 1
xdebug.collect_params = 1
xdebug.collect_return = 1
xdebug.default_enable = 1
xdebug.collect_assignments = 1
xdebug.collect_vars = 1
xdebug.remote_autostart = 1
xdebug.remote_connect_back = 1
xdebug.show_local_vars = 1
xdebug.show_exception_trace = 0
运行phpinfo();看有xdebug模块信息出来就是搞定了。
2、配置Zend Studio 支持xdebug
这里的配置很重要
选择Zend Studio 的 Window 》 Preference 》 PHP 》Installed Debuggers 双击 Xdebug,弹出对话框如下图
Debug Port 设为跟php.ini中设置的一样(默认是9000)。
Accept remote session(JIT) 选择localhost
允许浏览器访问网站时zend studio自动打开文件开始调试。
选项说明: http://www.111cn.net
off: 关闭浏览器访问时打开调试功能;
localhost: 通过localhost访问网页的时候打开调试。
any:只要访问服务器上的php都打开调试;
prompt:访问服务器上的php时弹出询问是否要调试。
一旦打开zend studio允许xebug调试,所有访问php页面都会进入调试。
我们可以使用easy xdebug火狐插件可在客户端控制是否开启调试。
1、首先php.ini设置
xdebug.remote_autostart = 0
不自动启动调试。
2、安装火狐插件easy xdebug,
安装好该插件后,点击如下图右下角小绿虫后,虫子上面有个小红点,这时候我们访问测试服务器的时候,Zend Studio就回自动弹出调试。
另外,可设置使用xdebug,在zend studio中对直接调试php文档,这里就不多说了。
Views – 61
如果你没有开启OpenSSL的话我们的不能使用ssl功能,如果我们发邮箱使用ssl加密就无法使用了,但要开启它是非常的简单的,具体如下
XAMPP打开OpenSSL方法:
(1)检查X:/xampp/php/ext目录下是否存在php_openssl.dll文件,如果不存在就先去PHP官网下载放入。
(2)打开X:/xampp/php/php.ini文件,查找extension=php_openssl.dll,如果找到了,去掉前面的分号;
如果没找到就在extension=php_curl.dll的下一行添加如下代码:
extension=php_openssl.dll
然后重启Apache就行了。
在自己编辑安装php时提示 checking for mysql_close in -lmysqlclient_r… no ,看这句我看是什么mysql问题,但结果是不是它的问题呢,下面我们一起来看看。又在折腾服务器了~记录下自己编译php5.3.24的过程。执行了以下的 configure配置命令:
代码如下 | 复制代码 |
./configure |
遇到了如下错误:
checking for mysql_close in -lmysqlclient_r... no
checking for mysql_error in -lmysqlclient_r... no
configure: error: mysql configure failed. Please check config.log for more information.
查证、搜索后,找到一blog,讲是这样的原因:
See this bug report: http://www.111cn.net
If you need libmysql, apply the patch or create the symlink.
Better: Switch to mysqlnd
我也就把对于mysql, mysqli, pdo的配置选项改成了:
代码如下 | 复制代码 |
--with-mysql=mysqlnd |
编译通过~
昨天帮一朋友配置服务器结果发现apache日志中有PHP Warning: PHP Startup: Unable to load dynamic library 提示了,然后调试数据库连接发现提示Call to undefined function mysql_connect()错误,这样就想到了是mysql没有加载成功了,下面我们一起来看看问题解决办法。
连接代码
<?php
echo 'a';
$cn = mysql_connect("localhost",'你的mysql用户名','你的mysql用户密码') or die(mysql_error());
if( $cn )
{
echo phpinfo();
}
else
{
echo 'mysql connect fail';
}
?>
因为服务器使用的是安全php.ini所在没有错误显示,于时相看了apache安装目录的logs的errors.log日志文
件发现如下错误
PHP Warning: PHP Startup: Unable to load dynamic library
'D:\myserver\php\ext\php_mysql.dll' - xd5xd2xb2xbbxb5xbdxd6xb8xb6xa8xb5xc4xc4
xa3xbfxe9xa1xa3rn in Unknown on line 0
PHP Warning: PHP Startup: Unable to load dynamic library
'D:\myserver\php\ext\php_mysqli.dll' - xd5xd2xb2xbbxb5xbdxd6xb8xb6xa8xb5xc4
xc4xa3xbfxe9xa1xa3rn in Unknown on line 0
[Tue Dec 31 09:05:15 2013] [error] [client 127.0.0.1] PHP Fatal error: Call to undefined
function mysql_connect() in E:\www\a.php on line 2, referer: http://localhost/
[Tue Dec 31 09:05:16 2013] [error] [client 127.0.0.1] PHP Fatal error: Call to undefined
function mysql_connect() in E:\www\a.php on line 2, referer: http://localhost/
[Tue Dec 31 09:05:17 2013] [error] [client 127.0.0.1] PHP Fatal error: Call to undefined
function mysql_connect() in E:\www\a.php on line 2, referer: http://localhost/
[Tue Dec 31 09:06:04 2013] [error] [client 127.0.0.1] PHP Fatal error: Call to undefined
function mysql_connect() in E:\www\a.php on line 3, referer: http://localhost/
[Tue Dec 31 09:06:05 2013] [error] [client 127.0.0.1] PHP Fatal error: Call to undefined
function mysql_connect() in E:\www\a.php on line 3, referer: http://localhost/
[Tue Dec 31 09:06:05 2013] [error] [client 127.0.0.1] PHP Fatal error: Call to undefined
function mysql_connect() in E:\www\a.php on line 3, referer: http://localhost/
[Tue Dec 31 09:06:05 2013] [error] [client 127.0.0.1] PHP Fatal error: Call to undefined
function mysql_connect() in E:\www\a.php on line 3, referer: http://localhost/
[Tue Dec 31 09:06:06 2013] [error] [client 127.0.0.1] PHP Fatal error: Call to undefined
function mysql_connect() in E:\www\a.php on line 3, referer: http://localhost/
[Tue Dec 31 09:06:06 2013] [error] [client 127.0.0.1] PHP Fatal error: Call to undefined
function mysql_connect() in E:\www\a.php on line 3, referer: http://localhost/
日志中有这么一句
PHP Startup: Unable to load dynamic library 'D:\myserver\php\ext\php_mysql.dll' 这个意思是
没有加载成功php_mysql文件了,还有一点是提示 PHP Fatal error: Call to undefined function
mysql_connect(),,这个是mysql没有连接成功也就是加载mysql库失败了,根据分析有两种可能一是文件不
存在,这个问题不存因为我以前用的是这个php解压包,2是服务器环境变量问题,如果是环境变量有两种解
决办法
1,是直接在windows增加环境变量
2,直接把在d:PHP里找到php5ts.dll,libmysql.dll将其复制到c:/winnt/system32下(winNT/2000的机器),
而winXP/2003是复制到c:/windows/system32下即可
记住复制到system目录之后必须重记apache环境,如我再测试http://localhost/a.php 就可以看到
输出的phpinfo相关信息了,本站原创文章转载注明来源www.111cn.net
本文章一给大家介绍php.ini中session和cookie有关的配置详解,希望此教程对各位同学会有所帮助。1,session.use_cookie = 1
是否采用Cookie方法传递session id值。默认是1,表示启用。
2,session.name = PHPSESSID
不 管是Cookie传递sessioin_id,还是GET方法传递session_id,都需要使用键值。他们的格式分别是Cookie: sess_name=session_id;和/path.php?sess_name=session_id,其中sess_name就是由这里指定 的。
3,session.use_only_cookies = 0
表示只使用Cookie 的方法传递session id。我们说过,传递cookie的方法,除了cookie,还有GET方法,GET方法是不安全的方法。在用户端禁用了cookie的时候,会采用 GET方法传递session_id,可以通过这个设置尽用GET方法传递session_id。
4,session.cookie_lifetime = 0, session.cookie_path = / 以及session.cookie_domain =
如 果使用Cookie方法传递session_id的话,这里分别指定了cookie有效域、目录和时间。分别对应setcookie()函数的形 参$expire、$path和$domain。其中cookie_lifetime=0表示直到关闭浏览器才删除Cookie。还可以使用 session_set_cookie_params()函数修改这些值。
5,session_name([string $name])
获 取或更新session_name。如果传了name,则表示不使用默认的名称PHPSESSID(由session.name)指定,否则获取当前 session_name。注意:如果设置session_name,则必须在session_start()之前调用才生效。
6,session_id([string $id])
与session_name()类似,但它是读取或者设置session_id的方法。同样,设置session_id的话,必须在session_start()之前调用才有效。
7,session_set_cookie_params()和session_get_cookie_params()
通 过session_set_cookie_params()可以重新设定session.cookie_lifetime, session.cookie_path以及session.cookie_domain这三个php.ini设置。而 session_get_cookie_params()则是获取这些设定的值