如何编写一个独立的 PHP 扩展

独立的 PHP 扩展可以独立于 PHP
源码之外进行分发。要创建一个这样的扩展,需要准备好两样东西:

centos中添加php扩展pdo_mysql步骤,centospdo_mysql

本文内容是以 CentOS 为例,红帽系列的 Linux
方法应该都是如此,下面就详细说明步骤,在这里严重鄙视哪些内容??隆⑺档脑悠咴影说挠泄
PDO 编译安装的文章。

1、进入 PHP 的软件包 pdo 扩展目录中(注:不是 PHP 安装目录)
如果还未下载:

1、下载 文件 wget
2、解压文件
tar zxvf PDO_MYSQL-1.0.2.tgz
3、配置和编译文件
进入 在PHP源码包中进入cd /root/php源码文件/ext/pdo_mysql/PDO_MYSQL
执行 phpize 命令

代码如下 复制代码
/usr/local/php/bin/phpize

注:/usr/local/php 是我的 php 安装目录

执行完 phpize 命令后,在 pdo_mysql 目录中就会出现 configure

执行配置

代码如下 复制代码
./configure –with-php-config=/usr/local/php/bin/php-config
–with-pdo-mysql=/usr/local/mysql/

参数说明:

–wi(www.111cn.net)th-php-config=/usr/local/php/bin/php-config 指定安装
PHP 的时候的配置
–with-pdo-mysql=/usr/local/mysql/ 指定 MySQL 数据库的安装目录位置
编译安装

代码如下 复制代码
make && make install

编译完成之后,请注意是否出现类似以下图片所示信息

代码如下 复制代码
/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626

(注意:不同时间段目录名称可能不一样)

编译安装完成之后,生成的 pdo_mysql.so 文件就放置在这个目录下。

2、修改 php.ini 文件

使用 vi 打开你机器的 php.ini
文件,添加一段代码“extension=/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626/pdo_mysql.so”,加载
pdo_mysql.so 文件

3、查看 phpinfo()

首先重启 Apache 服务器。使用 phpinfo() 函数查看 php
的安装信息,如出现下图所示说明 PDO 扩展安装成功
from:

  • 配置文件 (config.m4)
  • 你的模块源码

php pdo扩展问题

搜索php.ini,找到下面的这一行文本。
;Windows Extensions
下面都是用分号在前面主事掉了支持的扩展模块,在后面追加下面的一行代码。
extension=php_pdo.dll
这是所有PDO驱动程序共享的扩展,必须得有。然后,就看您使用什么数据库。如果使用MySQL,那么添加下面的一行。
extension=php_pdo_mysql.dll
保存php.ini,重启Apache服务器。就应该可以了。
 

接下来我们来描述一下如果创建这些文件并组合起来。

在linux下怎在不重新安装apache的情况下, 添加 php_pdo_mysql 模块?

一、php5编译参数如下:
./configure –prefix=/usr/local/php
–with-apxs2=/usr/local/apache2/bin/apxs –with-mysql=/usr/local/mysql
–with-mysqli=/usr/local/mysql/bin/mysql_config
–with-config-file-path=/usr/local/php/etc –with-iconv-dir=/usr/
–with-freetype-dir –with-jpeg-dir –with-png-dir –with-zlib
–with-libxml-dir=/usr/local/libxml2 –enable-xml –disable-rpath
–enable-discard-path –enable-safe-mode –enable-bcmath –enable-shmop
–enable-sysvsem –enable-inline-optimization –with-curl
–with-curlwrappers –enable-mbregex –enable-mbstring –with-mcrypt
–with-gd –enable-gd-native-ttf –with-openssl –with-mhash
–enable-sockets –with-xmlrpc –enable-zip –enable-soap –enable-exif
–enable-calendar –enable-magic-quotes –enable-wddx –enable-dba
–with-qdbm && make && make install
二、用phpize来加载pdo_mysql,
wget pecl.php.net/get/PDO_MYSQL-1.0.2.tgz
tar xzvf PDO_MYSQL-1.0.2.tgz
cd PDO_MYSQL-1.0.2
/usr/local/php/bin/phpize
Configuring for:
PHP Api Version: 20041225
Zend Module Api No: 20060613
Zend Extension Api No: 220060519
./configure –with-php-config=/usr/local/php/bin/php-config
make
make install
三、编辑/usr/local/etc/php.ini文件,添加一句extension=pdo.so,重启apache后生效。
四、验证php,输入php – m命令,里面有pdo_mysq.so…余下全文>>
 

本文内容是以 CentOS 为例,红帽系列的 Linux
方法应该都是如此,下面就详细说明步骤,在这里严…

准备好系统工具

想要扩展能够在系统上编译并成功运行,需要准备转以下工具:

  • GNU autoconf
  • GNU automake
  • GNU libtool
  • GNU m4

以上这些都可以从 获取。

注:以上这些都是类 Unix 环境下才能使用的工具。

改装一个已经存在的扩展

为了显示出创建一个独立的扩展是很容易的事情,我们先将一个已经内嵌到 PHP
的扩展改成独立扩展。安装 PHP 并且执行以下命令:

$ mkdir /tmp/newext
$ cd /tmp/newext

现在你已经有了一个空目录。我们将 mysql 扩展目录下的文件复制过来:

$ cp -rp php-4.0.X/ext/mysql/* .
# 注:看来这篇 README 真的需要更新一下了
# PHP7 中已经移除了 mysql 扩展部分

到这里扩展就完成了,执行:

$ phpize

现在你可以独立存放这个目录下的文件到任何地方,这个扩展可以完全独立存在了。

用户在编译时需要使用以下命令:

$ ./configure 
       [--with-php-config=/path/to/php-config] 
       [--with-mysql=MYSQL-DIR]
$ make install

这样 MySQL 模块就可以使用内嵌的 MySQL 客户端库或者已安装的位于 MySQL
目录中的 MySQL。

注:意思是说想要编写 PHP 扩展,你既需要已经安装了 PHP,也需要下载一份
PHP 源码。

定义一个新扩展

澳门新葡亰赌995577,我们给示例扩展命名为 “foobar”。

新扩展包含两个资源文件:foo.c 和
bar.c(还有一些头文件,但这些不只重要)。

示例扩展不引用任何外部的库(这点很重要,因为这样用户就不需要特别指定一些编译选项了)。

LTLIBRARY_SOURCES
选项用于指定资源文件的名字,你可以有任意数量的资源文件。

注:上面说的是 Makefile.in 文件中的配置选项,可以参考
xdebug。

发表评论

电子邮件地址不会被公开。 必填项已用*标注

相关文章

网站地图xml地图