在Linux下编译php扩展

在windows下我们需要开启某个扩展,很容易。一般情况下,dll文件都已经安静地躺在extension目录下,只等待你在php.ini里将它前面的;去掉。

而在linux,你cd到php的extensions目录往往发现里面空空的。或许只有几个so文件落寞地待着。

这里以编译fileinfo扩展为例(注意这是php内置的扩展,如果你编译的是第三方扩展请自行到官网下载源码)

一、找到扩展包

你需要到PHP源码包里寻找,希望源码包没被你删除。

cd到php-5.x.x/ext/目录,你会发现里面有很多内置的扩展

我们cd到fileinfo目录

二、编译

phpize
./configure --with-php-config=/usr/local/php/bin/php-config
make && make install

上面的命令很好理解,首先是执行phpize,它是用来安装php扩展的工具,如果你的系统无法识别,请使用完整路径。比如/usr/local/php/bin/phpize 。这个工具会在当前目录下生成configure文件。

接着就是编译的三板斧啦~其中with-php-config参数请按照你实际情况填写

没有意外的话,经过上面的编译,你会在php/lib/php/extensions/(在php.ini的extension_dir可找到)目录下找到生成的fileinfo.so文件

三、添加配置

最后只需要在php.ini里把扩展添加进去就好了

extension = "fileinfo.so"

最后别忘了重启web服务器

本文固定链接: http://zoufeng.me/2015/08/09/compiled-php-extension-in-linux/

推荐一个php进阶开发群(467634807),喜欢灌水和闲聊的勿入~

时间: 08-29

在Linux下编译php扩展的相关文章

linux下编译php追加enable的方法

如果我们运行php时发现缺少某个库,在windows环境下很简单,找到.dll 对应的库文件,然后拷贝到 extension 目录下,然后在php.ini 里 去掉 前面的分号或者 追加一行 extension = XXXX.dll 即可. linux环境下,可不是像windows环境下那么的简单. 下面我们已 sysvmsg 这个库文件的安装为例 来详细说明php的编译方法 收件进入php的原始文件 比如我是下载在这个路径下: [[email protected] php-5.2.17]# c

[转载]linux下编译php中configure参数具体含义

编译N次了   原来这么回事 原文地址:linux下编译php中configure参数具体含义作者:捷心特 php编译参数的含义 ./configure –prefix=/usr/local/php                      php 安装目录 –with-apxs2=/usr/local/apache/bin/apxs –with-config-file-path=/usr/local/php/etc      指定php.ini位置 –with-mysql=/usr/local

linux下配置php扩展mssql

前言:linux下配置php扩展mssql,使php通过mssql工具实现和远程win SQL server数据的传递. 有两种方法: 一.第一次编译php时提供mssql支持,即在编译参数上加上--with-mssql=/path 二.对于己安装的php,需把mssql当成一个模块,编译php使其支持,本文主要讲解这种方法: 1.安装配置freetds 下载源码包,并编译安装 #wget  tp://ibiblio.org/pub/Linux/ALPHA/freetds/stable/free

linux 下安装php扩展

linux下安装php扩展 步骤: 1.在扩展解压包目录执行 phpize 2.执行 ./configure --with-php-config=/usr/local/php/bin/php-config 3.编译 make&&make install (安装完成后在php安装目录下的扩展目录就会有相应的.so扩展文件.) 4.配置支持php 修改php.ini 在最后一行添加以下内容  extension= 扩展文件名.so 5.重启服务  

linux下编译原理分析

linux下编译hello.c 程序,使用gcc hello.c,然后./a.out就可以运行:在这个简单的命令后面隐藏了许多复杂的过程,这个过程包括了下面的步骤: ====================================================================================== 预处理: 宏定义展开,所有的#define 在这个阶段都会被展开 预编译命令的处理,包括#if #ifdef 一类的命令 展开#include 的文件,像上面h

linux 下编译安装php

系统环境: CentOS 6.5 x86_64 下载 PHP 源码包 # wget http://cn2.php.net/distributions/php-5.5.9.tar.bz2 # tar xf php-5.5.9.tar.bz2 -C /usr/local/src/ 添加 epel 源 # rpm -Uvh http://dl.fedoraproject.org/pub/epel/6/x86_64/epel-release-6-8.noarch.rpm 安装依赖 # yum insta

linux下安装php扩展redis缓存

下载phpredis安装包 wget https://github.com/nicolasff/phpredis/tarball/master 在下载目录解压phpredis.tar.gz tar zxvf phpredis.tar.gz cd phpredis 使用php的phpize编译安装包(需要进入到解压出来的目录里面) /usr/local/php/bin/phpize 设置配置 ./configure --with-php-config=/usr/local/php/bin/php-

Linux 下编译安装 Python 3.4

Linux 下编译安装 Python 3.4 更新于 2014-09-24 02:01:05 UEANER 系统环境: CentOS 6.5 x86_64 / Fedora 20 x86_64 安装相关包 # yum install zlib-devel bzip2-devel openssl-devel ncurses-devel sqlite-devel readline-devel tk-devel gcc make 下载 Python 3.4 源码包 # wget http://mirr

linux下增加pdo-mysql扩展

默认的PHP安装,只安装了常用默认模块,一些不常用或少用的,就没有默认安上 可通过如下方法增加,如下以增加pdo-mysql为例 wget http://pecl.php.net/get/PDO_MYSQL-1.0.2.tgztar zxvf PDO_MYSQL-1.0.2.tgzcd PDO_MYSQL-1.0.2/www/wdlinux/php/bin/phpize./configure --with-php-config=/www/wdlinux/php/bin/php-config --