phpize(phpize静态编译)

软件问答 2023.06.17 159

目录:

如何安装PHP模块

php模块安装的方式

1、静态安装

将先将在安装php之前先将需要安装的程序装上,如ftp、mhash、mcrypt……安装完成后,解压php安装包,执行./configure

--with-ftp

--with-mhash

--wth-mcrypt等等。后面具体跟的参数可以参看./configure

--help查看。编译好后,执行make

make

install

就行了。

2、动态安装

而在往往我们进行编译php时经常会忘记添加某扩展,后来想添加扩展,但是因为安装php后又装了一些东西如PEAR等,不想再重新装php,于是可以采用phpize来动态加载需要安装的模块。

具体实现方法如下(这里以忘记安装pdo_mysql模块为例):

cd

/root/source/php-5.3.10/ext/pdo_mysql

/usr/local/php/bin/phpize

在安装完mysql后,并不是进入/root/source/mysql-5.5.21目录运行phpize,而是进入php的源文件中要增加的扩展模块的文件目录---也就是/root/source/php-5.3.10/ext/pdo_mysql目录执行phpize。如果不是这样操作的话就会提示下面的错误:

Cannot

find

config.m4.

Make

sure

that

you

run

'/usr/local/php/bin/phpize'

in

the

top

level

source

directory

of

the

module

关于上面的这个错误,我不得不鄙视下网上有些自以为是的家伙,自认为对所有的安装操作很懂,报上面的错误的时候,去修改源代码,搞的乱七八糟,误人子弟。根本不按php官方的文档操作。

目录/root/source/php-5.3.10/ext/pdo_mysql

,在运行phpize命令前并没有configure文件,只有config.m4文件。运行phpize就生成了一个可执行的configure文件。此时就可以按照下的方法编译了:

./configure

--with-php-config=/usr/bin/php-config

(还可以加一些其他的参数,可通过./configure

--help查看)

make

make

install

编译完成后会提示扩展模块生成在/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626目录。

修改php.ini文件

vi

/usr/local/php/etc/php.ini

在其文件结尾加入下面的内容:

extension_dir="/usr/local/php/lib/php/extensions/no-debug-non-zts-20090626"

extension=pdo_mysql.so

安装完成后,重启php-fpm和web服务器。(因为我用的是php-fpm和tengine,如果用的是apache则也重启相应的程序,重新加载就行了)

php中的phpize是什么作用的文件

进入php源程序目录中的ext目录中,这里存放着各个扩展模块的源代码,选择你需要的模块,比如curl模块:cd curl

执行phpize生成编译文件,phpize在PHP安装目录的bin目录下

/usr/local/php5/bin/phpize

运行时,可能会报错:Cannot find autoconf. Please check your autoconf installation and

the $PHP_AUTOCONF

environment variable is set correctly and then rerun this

script.,需要安装autoconf:

yum install autoconf(RedHat或者CentOS)、apt-get install

autoconf(Ubuntu Linux)

/usr/local/php5/bin/php -v

执行这个命令时,php会去检查配置文件是否正确,如果有配置错误,

这里会报错,可以根据错误信息去排查!

安装php后在找不到phpize怎么办

你这个不是用源码安装的,当然不会在此目录了,

如果你这个是centos系统,系统自带的安装基本上就是rpm或者yum安装的

这两种安装方式装PHP扩展的时候,一般不用phpize方式,比如要装一个gd扩展,

直接用命令 yum install php_gd即可完成在线安装

使用 phpize 和 首次安装编译时有什么区别吗

phpize 主要负责生成扩展的配置文件和Makefile,首次编译php,zend extenion扩展会生成动态库文件.so,比如opcache 在编译php时就会生成opcache.so,前提在configure 的时候加入--enable-opcache

本文转载自互联网,如有侵权,联系删除

相关推荐