使php支持pdo_mysql的问题学习phpszie
php5 默认是没有开通pdo 的,我按照网络上的常规设置:
开启php.ini下的
extension=php_pdo.dll
extension=php_pdo_mysql.dll
还是没有效果,郁闷了半天,以为是php.ini的文件路径搞错了。
原来是架包没有安装啊。
如果想知道当前的php.ini在那个路径,可以通过<?php echo phpinfo()?> 来查看Configuration File (php.ini) Path 参数的值。
话说回来 ,怎么配置pdo支持mysql呢?
编译时加上 --with-pdo_mysql,相应的功能就会被编译进 php中;
如果不想重新编译php, 使用phpize 进行配置。
以上两者选一即可。
下面介绍Linux下利用phpize安装php扩展
php有很多扩展功能,我们在初次安装的时候并没有安装某些扩展,可能在使用的过程中,又需要用到这些扩展。php提供了一个phpize工具供我们安装需要的扩展。
下面我通过安装socket扩展来介绍phpize的使用:
1.找到自己的php安装目录,例如我的目录是home/vsrank/php,在该目录下,找到bin/phpize。如果没有这个工具,则说明没有安装该工具,那么需要安装php.dev,一般都会有这个工具。
2.要扩展的话,就需要有一个和当前已安装的php的版本一样的php的源包,当前php版本可以用过phpinfo()查看。就是初次安装后查看安装是否成功的那个test.php。
3.打开源包目录,进入到ext目录,例如我就进入到:/home/vsrank/php-5.3.10/ext下,ext下有各个php带有的扩展模块,进入到ext/sockets中。
4.cd到ext/sockets后,执行下面的命令:
[python] view plaincopyprint?
01./home/vsrank/php/bin/phpize
/home/vsrank/php/bin/phpize
即执行phpize工具,执行后,可以看到目录下生成了对应的configure文件:
5.现在就可以通过configure来配置,执行下面的命令:
../configure --enable-sockets --with-php-config=/home/vsrank/php/bin/php-config
make
make install
./configure --enable-sockets --with-php-config=/home/vsrank/php/bin/php-config
make
make install
执行之后,可以看到下面的输出:
Installing shared extensions: /home/vsrank/php/lib/php/extensions/no-debug-non-zts-20090626/ Installing header files: /home/vsrank/php/include/php/
Installing shared extensions: /home/vsrank/php/lib/php/extensions/no-debug-non-zts-20090626/
Installing header files: /home/vsrank/php/include/php/
第一个就是扩展模块的生成目录,可以在对应目录下看到对应的sockets.so文件。
6.更改php.ini,增加下面的语句:
extension="/home/vsrank/php/lib/php/extensions/no-debug-non-zts-20090626/sockets.so"
extension="/home/vsrank/php/lib/php/extensions/no-debug-non-zts-20090626/sockets.so"
可以看到和上面的输出是一致的。
7.重启Apache,接下来就可以看看自己的socket是不是配置好了。。