【转】phpize学习

为什么使用phpize?

比如刚开始安装的时候使用

./configure --prefix=/usr/local/php7 --exec-prefix=/usr/local/php7 --bindir=/usr/local/php7/bin --sbindir=/usr/local/php7/sbin --includedir=/usr/local/php7/include --libdir=/usr/local/php7/lib/php --mandir=/usr/local/php7/php/man --with-config-file-path=/usr/local/php7/etc --with-mysql-sock=/var/run/mysql/mysql.sock --with-mcrypt=/usr/include --with-mhash --with-openssl --with-mysql=shared,mysqlnd --with-mysqli=shared,mysqlnd --with-pdo-mysql=shared,mysqlnd --with-gd --with-iconv --with-zlib --enable-zip --enable-inline-optimization --disable-debug --disable-rpath --enable-shared --enable-xml --enable-bcmath --enable-shmop --enable-sysvsem --enable-mbregex --enable-mbstring --enable-ftp --enable-gd-native-ttf --enable-pcntl --enable-sockets --with-xmlrpc --enable-soap --without-pear --with-gettext --enable-session --with-curl --with-jpeg-dir --with-freetype-dir --enable-opcache --enable-fpm --enable-fastcgi --with-fpm-user=nginx --with-fpm-group=nginx --without-gdbm --disable-fileinfo

哪天需要使用新的扩展了,就需要重新安装了,但是如果重新编译整个源码,就太费事了;phpize就是解决整个问题的

首先进到/home/jack/php-7.0.6/ext源码的扩展目录

然后执行:

cd standard

./configure

make

make install 

 

Compiling shared PECL extensions with phpize

Sometimes, using the pecl installer is not an option. This could be because you're behind a firewall, or it could be because the extension you want to install is not available as a PECL compatible package, such as unreleased extensions from SVN. If you need to build such an extension, you can use the lower-level build tools to perform the build manually.

The phpize command is used to prepare the build environment for a PHP extension. In the following sample, the sources for an extension are in a directory named extname:

$ cd extname  进入到源码包中的扩展目录(就是你下载的php的源码包/home/jack/php-7.0.6/ext),这个扩展目录,通俗理解,如果要安装操作gd库,那么下载到这个库的源码后,解压源码会有个一个目录,进入这个目录。
$ phpize  运行phpize。路径不一定在这个目录下,但一般是在安装目录下(按照我理解,每个phpize与具体的版本有关,不可能通用),去寻找phpize运行。之后会生成了一个configure文件
$ ./configure     运行。    如果生成基于数据库的扩展,需要加上参数运行:1,--with-php-config。2,"--with-具体的数据库参数".比如, --with-pgsql、--with-mysql
$ make
# make install 将会生成一个extname.so的扩展,被放到了PHP extensions directory

 


A successful install will have created extname.so and put it into the PHP extensions directory(生成一个.so文件,自动放到php的扩展目录下去,我觉得应该是phpize能够自动侦测到php扩展目录的位置).

You'll need to and adjust php.ini and add an extension=extname.so line before you can use the extension.

If the system is missing the phpize command, and precompiled packages (like RPM's) are used, be sure to also install the appropriate devel version of the PHP package as they often include the phpize command along with the appropriate header files to build PHP and its extensions.

Execute phpize --help to display additional usage information.


phpize的作用可以这样理解:侦测环境(phpize工具是在php安装目录下,基于这点phpize对应了当时的php环境,所以是要根据该php的配置情况生成对应的configure文件),建立一个configure文件。必须在一个目录下去运行phpize。那么phpize就知道你的的环境是哪个目录,并且configure文件建立在该目录下。

步骤总结:

一、cd /usr/src/php源码包目录/ext/扩展目录/  

二、/usr/local/php5314/bin/phpize


三、./configure --with-php-config=/usr/local/php5314/bin/php-config

四、make && make install

 

ps:make install会自动将生成的.so扩展复制到php的扩展目录下去,比如会提示已经安装到 /usr/local/php/php-5.5.18/lib/php/extensions/no-debug-non-zts-20121212/目录下去
五、剩下是配置php.ini

 




假如你的服务器上安装了多个版本php,那么需要告诉phpize要建立基于哪个版本的扩展。通过使用--with-php-config=指定你使用哪个php版本。

比如:--with-php-config=/usr/local/php524/bin/php-config  

关于php-config文件:是在php编译生成后(安装好),放在安装目录下的一个文件。打开phpize文件内容会发现,里面定义好了php的安装目录等变量

prefix='/usr/local/php'

phpize是编译安装时候生成好的,记录了当时安装的一些信息。并不能从其他地方拿个phpize来使用。

 phpize是在php安装目录下的一个文件。比如我安装了两个php5.2 和php5.3那么使用phpize也要使用对应版本的phpize才行。此时使用--with-php-config有什么作用?

 

phpize工具一般在哪里?

当php编译完成后,php安装目录下的bin目录下会有phpize这个脚本文件。所以是去安装好的php安装目录去找。

 

转载于:https://www.cnblogs.com/maxomnis/p/5452996.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/374724.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

GWT 2 Spring 3 JPA 2 Hibernate 3.5教程– Eclipse和Maven 2展示

不久前,我的一个朋友和同事向我飞过,说“世界上只有一半在使用Maven ”。 当我意识到最受欢迎的文章(到目前为止) GWT 2 Spring 3 JPA 2 Hibernate 3.5 Tutorial提出了一种基于Google的Web Toolkit( GWT ) …

Android的WiFi开启与关闭

注意&#xff1a;要首先注册开启和关闭WiFi的权限&#xff0c; <?xml version"1.0" encoding"utf-8"?> <manifest xmlns:android"http://schemas.android.com/apk/res/android"package"com.wyl.wifi"android:versionCode&q…

awk用法小结(作者总结)

http://www.chinaunix.net/old_jh/24/691456.htmlhttp://wenku.baidu.com/view/ebac4fc658f5f61fb736664d.htmlawk 用法&#xff1a;awk pattern {action} 变量名 含义 ARGC 命令行变元个数 ARGV 命令行变元数组 FILENAME 当前输入文件名 FNR 当前文件中的记录号 FS 输入域分…

力扣盛最多水的容器

给你 n 个非负整数 a1&#xff0c;a2&#xff0c;…&#xff0c;an&#xff0c;每个数代表坐标中的一个点 (i, ai) 。在坐标内画 n 条垂直线&#xff0c;垂直线 i 的两个端点分别为 (i, ai) 和 (i, 0) 。找出其中的两条线&#xff0c;使得它们与 x 轴共同构成的容器可以容纳最多…

Java最佳实践–多线程环境中的DateFormat

这是有关使用Java编程语言时的拟议实践的系列文章的第一篇。 所有讨论的主题均基于用例&#xff0c;这些用例来自于电信行业的关键任务超高性能生产系统的开发。 在阅读本文的每个部分之前&#xff0c;强烈建议您参考相关的Java API文档以获取详细信息和代码示例。 所有测试…

IntentDemo

Intent通信示例&#xff1a; 两个Button&#xff0c;一个startBrowser, 一个startPhone. 其中&#xff0c;OnClickListener()是类View的一个interface&#xff0c;需要实现其中的onClick()函数。 startActivity()开启另一个Activity&#xff0c;本示例中开启Browser或Phone. In…

JBoss 4.2.x Spring 3 JPA Hibernate教程

在花了许多时间在网上搜索之后&#xff0c;尝试找到对几个项目使用Spring&#xff0c;JPA和Hibenate的最有效方法&#xff0c;我们得出了将在下面介绍的配置的结论。 将Spring与JPA和Hibernate集成包括几个步骤&#xff1a; Spring容器的配置 JPA ORM层的配置 Hibernate Sec…

力扣长度最小的子数组

给定一个含有 n 个正整数的数组和一个正整数 target 。 找出该数组中满足其和 ≥ target 的长度最小的 连续子数组 [numsl, numsl1, …, numsr-1, numsr] &#xff0c;并返回其长度。如果不存在符合条件的子数组&#xff0c;返回 0 方法一&#xff1a;移动窗口 设置两个指针&…

Yeelink:将复杂的传感器以极简的方式组到同一个网络内

Yeelink&#xff1a;将复杂的传感器以极简的方式组到同一个网络内转载于:https://www.cnblogs.com/qxql2016/p/4692629.html

androidstudio新建项目中在布局文件中不显示title的方法

在androidstudio新建项目的时候&#xff0c;在布局文件里有时候会出现如下情况&#xff1a; 上面的标题栏非常碍眼&#xff0c;要想隐藏标题栏的话&#xff0c;可以在Manifest文件的theme标签里进行配置&#xff0c;自定义一个theme&#xff0c;加上如下两句。或者直接在当前th…

OpenJDK作为Linux上的默认Java

大家好&#xff0c; 最近&#xff0c;我收到了很多人的私人来信&#xff0c;他们对Linux的默认Java软件包的更改感到困惑/担心。 对于许多Linux发行版&#xff0c;Java的Sun / Oracle官方版本已打包为该平台的默认Java。 但是&#xff0c;由于最近的许可更改&#xff0c;情况将…

力扣 数组中的第K个最大元素

给定整数数组 nums 和整数 k&#xff0c;请返回数组中第 k 个最大的元素。 请注意&#xff0c;你需要找的是数组排序后的第 k 个最大的元素&#xff0c;而不是第 k 个不同的元素。 分析&#xff1a;这是个排序题&#xff0c;只要排好序&#xff0c;一切迎刃而解。我决定把排序…

Ajax应用需要注意的事项

接触Ajax&#xff0c;那时候的Ajax支持还不是很好&#xff0c;都要涉及底层&#xff0c;没有现成的框架给你调用。现在把常见的问题列举如下。 1、编码问题 注意AJAX要取的文件是UTF-8编码的。GB2312编码传回BROWSE后中文会乱码。如果用VBScript的话还可以转化&#xff0c;但是…

Xcode插件

古人云“工欲善其事必先利其器”&#xff0c;打造一个强大的开发环境&#xff0c;是立即提升自身战斗力的绝佳途径&#xff01;以下是搜集的一些有力的XCode插件。1.全能搜索家CodePilot 2.0你要找的是文件&#xff1f;是文件夹&#xff1f;是代码&#xff1f;Never Mind&#…

JBoss Portal上的“ Hello World” portlet

Portlet概述 本教程将向您展示如何创建和部署简单的Portlet。 Portlet是基于Java技术的Web组件&#xff0c;可以处理请求并生成动态内容。 Portlet不是自治实体&#xff0c;但是由Portlet容器管理&#xff0c;Portlet容器为Portlet执行提供了必要的运行时环境。 应当注意&…

Jenkins + GitHub + fir-cli 一行命令从源码到fir.im

上周简书作者宣X_x 分享了一篇文章——用JenkinsGitHubXcodefir搭了一个持续集成环境&#xff0c;整个记录见(传送门)。 _______ 其实fir.im为我们提供了一个更简单的方式&#xff1a;fir-cli&#xff0c;我们只需要一条命令&#xff0c;就可以从源代码到fir.im。不需要Jenkin…

力扣9. 回文数

给你一个整数 x &#xff0c;如果 x 是一个回文整数&#xff0c;返回 true &#xff1b;否则&#xff0c;返回 false 。 回文数是指正序&#xff08;从左向右&#xff09;和倒序&#xff08;从右向左&#xff09;读都是一样的整数。例如&#xff0c;121 是回文&#xff0c;而 …

使用Maven编译Tomcat源码

使用Maven编译Tomcat源码 准备工作 编译工具&#xff1a;Intellij Idea 15.0.2Tomcat版本&#xff1a;7.0.69 下载链接JDK版本&#xff1a;1.7.0_80Maven版本&#xff1a;3.05编译步骤 1. 在工作空间中建立目录 TomcatSource,下载源码解压到此文件夹&#xff0c;完成后目录结构…

Java Persistence API:快速入门

各位读者好&#xff01; 在我的一些朋友提出无数请求之后&#xff0c;我决定写一篇关于Java Persistence API的简短文章。 面向对象的编程范式是当​​今最流行和使用最广泛的模型&#xff0c;它具有无缝建模现实生活实体的能力&#xff0c;因此它胜过大多数其他范式。 但是&am…

线性回归、梯度下降(Linear Regression、Gradient Descent)

转载请注明出自BYRans博客&#xff1a;http://www.cnblogs.com/BYRans/ 实例 首先举个例子&#xff0c;假设我们有一个二手房交易记录的数据集&#xff0c;已知房屋面积、卧室数量和房屋的交易价格&#xff0c;如下表&#xff1a; 假如有一个房子要卖&#xff0c;我们希望通过上…