찾다
php教程php手册在linux下php挂接mysql.so扩展的方法

总结的方向:在linux下php挂接mysql.so扩展的方法 问题背景:平常我们都是先安装mysql,然后才能去安装php。假如先安装php,后安装mysql,由于php需要连接mysql,因而在php引擎中需要配置使用mysql.so扩展。这时需要手动编译生成mysql.so扩展。 当前问题:在

总结的方向:在linux下php挂接mysql.so扩展的方法

问题背景:平常我们都是先安装mysql,然后才能去安装php。假如先安装php,后安装mysql,由于php需要连接mysql,因而在php引擎中需要配置使用mysql.so扩展。这时需要手动编译生成mysql.so扩展。

当前问题:在上面情况下,使用phpize能否实现挂接mysql.so扩展?

实践结论:使用phpize工具能够生成mysql.so,但是必须加上"--with-mysql=mysql客户端的路径"。也就是mysql.so模块必须用到mysql客户端才行。
可以这样理解,mysql.so内部会调用mysql客户端,以便实现连接mysql数据库服务器。
我们常常用到的mysql_connect()可能就是调用了mysql客户端才能完成连接数据库的操作。



一、为什么书中一般是常常是这样的顺序安装:先安装mysql,然后再安装php,很少看到先安装php,后安装mysql?

这样做。是基于下面原因:
安装好mysql后。mysql.so这个模块才能生成。记得一个细节:在安装php的时候,需要提供mysql的路径。由php帮助编译生成mysql.so模块。mysql.so这个模块是在安装好php的时候生成的。生成这个模块需要用到一个东西:

mysql客户端。如果先安装php,后安装mysql。那么无法按照原来的方式(由php帮助生成mysql.so模块)挂接mysql.so。通过实践,发现使用phpize工具生成mysql.so可以解决这个问题。





二、实践生成mysql.so的过程

大体思路:需要用到php的源码包才行。通过源码包中提供的phpize文件(一个专门挂接php扩展的工具)



2011.3.6测试成功
使用命令:  phpize --with-mysql=/usr/local/mysql/(mysql的安装路径)


第一步:进入php源码中的"ext/mysql"目录下
命令:cd

第二步:在当前目录下运行phpize

命令:/usr/local/php524/bin/phpize

phpize的规则:去哪个目录下运行phpize文件,那么就会在该目录下生成一个configure文件。

第三步:运行刚才生成的configure文件

命令: ./configure --with-php-config=/usr/local/php524/bin/php-config --with-mysql=/usr/local/mysql/
这里最关键的是通过--with-mysql参数告诉mysql客户端的位置。这样才能生成mysql.so。

实验的时候,没有加这个参数,结果错误:
./configure --with-php-config=/usr/local/php524/bin/php-config

 
第四步:编译生成.so文件。最终要的东西
make
make install

结束/////////////////////////////////////////////////////////


第五步:配置php引擎加载该扩展

省略

补充一下:就是去php.ini文件中修改一下配置,加载mysql.so这个扩展(这个扩展文件要放到php指定的扩展目录下面去)


第六步:测试php引擎是否成功加载该扩展

编写文件phpinfo.php,内容是:
ehco phpinfo();
?>

运行后,可以看到有如下信息显示:

mysql
MySQL Support    enabled
Active Persistent Links     0
Active Links     0
Client API version     5.1.55
MYSQL_MODULE_TYPE     no value
MYSQL_SOCKET     /tmp/mysql.sock
MYSQL_INCLUDE     no value
MYSQL_LIBS     no value

通过这样的方式可以确认,php引擎已经成功加载了mysql.so扩展。



第七步:已经生成的mysql.so。编写php代码测试是否能连接mysql

第六步成功后,已经知道php引擎已经成功加载了mysql.so扩展。还要确认生成的扩展是否能正常使用。为什么?因为编译失败还是成功都能生成.so的扩展。一般是这样的:.so扩展里面其实封装的就是一些函数,供我们调用

。假如有些函数没有生成,最后也会得到.so的扩展。也许它的.so模块内部是不完整的,都说不定。之前做一个支付接口的时候就是这样的问题。.so模块里面是用c++语言封装的函数。模块虽然已生成。但是并不能正常运行

。函数出现了异常,看不到任何错误。后来形成一个观念:不能以为,编译生成了.so文件,就认为是成功的

测试.so是否能用变得非常必要。现在测试一下生成的mysql.so是否能用。


编写如下php代码:

$conn = mysql_connect("localhost","root","");
mysql_select_db("mysql",$conn);
$results = mysql_query("select * from user");
$row = mysql_fetch_array($results);
var_dump($row);

?>

得到结果(部分):

array
  0 => string 'localhost' (length=9)
  'Host' => string 'localhost' (length=9)
  1 => string 'root' (length=4)
  'User' => string 'root' (length=4)
  2 => string '' (length=0)
  'Password' => string '' (length=0)
  3 => string 'Y' (length=1)
  'Select_priv' => string 'Y' (length=1)
  4 => string 'Y' (length=1)
  'Insert_priv' => string 'Y' (length=1)
  5 => string 'Y' (length=1)
  'Update_priv' => string 'Y' (length=1)

说明,编译生成后的mysql.so扩展能够正常使用了。


启发:如果开始安装mysql和php的顺序不对,后面就会增加了很多麻烦。所以,在实际情况中,有点经验的都会"会先安装php,再安装mysql",这样避免了挂接的问题。所以,实际中需要这样做很少。
假如这样一种情况就有用了:php与mysql都已经安装了。后面根据需要,想安装oracle等其他数据库,php已经安装了。编译生成一个其他数据库的扩展,思路也是一样的

성명
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.

핫 AI 도구

Undresser.AI Undress

Undresser.AI Undress

사실적인 누드 사진을 만들기 위한 AI 기반 앱

AI Clothes Remover

AI Clothes Remover

사진에서 옷을 제거하는 온라인 AI 도구입니다.

Undress AI Tool

Undress AI Tool

무료로 이미지를 벗다

Clothoff.io

Clothoff.io

AI 옷 제거제

AI Hentai Generator

AI Hentai Generator

AI Hentai를 무료로 생성하십시오.

인기 기사

R.E.P.O. 에너지 결정과 그들이하는 일 (노란색 크리스탈)
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 최고의 그래픽 설정
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 아무도들을 수없는 경우 오디오를 수정하는 방법
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌
R.E.P.O. 채팅 명령 및 사용 방법
1 몇 달 전By尊渡假赌尊渡假赌尊渡假赌

뜨거운 도구

안전한 시험 브라우저

안전한 시험 브라우저

안전한 시험 브라우저는 온라인 시험을 안전하게 치르기 위한 보안 브라우저 환경입니다. 이 소프트웨어는 모든 컴퓨터를 안전한 워크스테이션으로 바꿔줍니다. 이는 모든 유틸리티에 대한 액세스를 제어하고 학생들이 승인되지 않은 리소스를 사용하는 것을 방지합니다.

스튜디오 13.0.1 보내기

스튜디오 13.0.1 보내기

강력한 PHP 통합 개발 환경

맨티스BT

맨티스BT

Mantis는 제품 결함 추적을 돕기 위해 설계된 배포하기 쉬운 웹 기반 결함 추적 도구입니다. PHP, MySQL 및 웹 서버가 필요합니다. 데모 및 호스팅 서비스를 확인해 보세요.

VSCode Windows 64비트 다운로드

VSCode Windows 64비트 다운로드

Microsoft에서 출시한 강력한 무료 IDE 편집기

WebStorm Mac 버전

WebStorm Mac 버전

유용한 JavaScript 개발 도구