一、phpize是干嘛的?
phpize是用来扩展php扩展模块的,通过phpize可以建立php的外挂模块
我们在编译安装php时:'./configure' '--prefix=/usr/local/php' '--with-mysql=/usr/local/mysql' 后面根的参数是我们要的模块,但是随着工作的需要,我们还要在加些模块,又不想重新编译php。这时我们就可以用phpize了。非编译安装PHP默认情况是没安装phpize,安装phpize
apt-get install php-dev #ubuntu
yum install php-devel #centeros/Fedora
安装成功后记下phpize,php-config的路径。如果后期忘记了,如何找到php-config文件
whereis php-config
php-config 可以用于获取 PHP 的配置信息。可以通过 -h
选项来显示 php-config 脚本在命令行所能使用的选项。
这里需要用 php-config --extension-dir
来查看 PHP 的扩展目录位置:
二、如何使用phpize?
当php编译完成后,php的bin目录下会有phpize这个脚本文件 。在编译你要添加的扩展模块之前,执行以下phpize就可以了;对于多版本共存要选择对应的版本文件(phpize,php-config)
安装yaf扩展库
tar -xzvf yaf-3.0.7.tgz
cd yaf-3.0.7
生成编译configure配置文件
/usr/bin/phpize7.4
执行配置文件
./configure --with-php-config=/usr/bin/php-config7.4
编译并安装
make && sudo make install
成功提示
See any operating system documentation about shared libraries for
more information, such as the ld(1) and ld.so(8) manual pages.
----------------------------------------------------------------------
Build complete.
Don't forget to run 'make test'.
Installing shared extensions: /usr/lib/php/20170708/
查看.so文件,以及修改php.ini
cd /usr/lib/php/200170708/
ls -al |grep yaf
vim /etc/php/7.2/fpm/php.ini
#文件内容末尾加入
extension=yaf.so
重启php-fpm
Linux下C++编译提示错误
sudo apt-get install gcc g++
sudo yum install gcc gcc-c++
查看安装版本
g++ --version
gcc --version
在进行源代码编译,或者执行命令无法确认所执行的命令是否成功执行的情况下,我们都会使用
echo $?
来进行测试。如果返回值是0,就是执行成功;如果是返回值是0以外的值,就是失败。
重新编译php安装扩展
1、查看系统之前安装的php编译参数
/usr/local/php/bin/php -i |grep configure #查看php编译参数,记录下编译参数,后面会用到
重新安装的前提是添加的编译参数必须在
./configure --help
重新安装PHP
'./configure' '--prefix=/usr/local/php' '--enable-mbstring=all' '--with-config-file-path=/usr/local/php/etc' '--with-zlib' '--with-mysql=/usr/local/mysql-5.1.38/' '--with-gd' '--with-mysqli=/usr/local/mysql-5.1.38/bin/mysql_config' '--with-jpeg-dir=/usr' '--with-png-dir=/usr' '--enable-fpm' '--enable-soap' '--with-freetype-dir=/usr/lib64' '--with-iconv=/usr/local' '--with-curl' '--with-mcrypt'
#在之前的编译参数后面增加'--with-mcrypt' 回车
make #编译
make install #安装
root@639ca1f15214:~# php --ri swoole // php --ri [扩展名称]
swoole
swoole support => enabled
Version => 4.2.11
Author => Swoole Group[email: team@swoole.com]
coroutine => enabled
epoll => enabled
eventfd => enabled
signalfd => enabled
cpu_affinity => enabled
spinlock => enabled
rwlock => enabled
pcre => enabled
mutex_timedlock => enabled
pthread_barrier => enabled
futex => enabled
async_redis => enabled
Directive => Local Value => Master Value
swoole.enable_coroutine => On => On
swoole.aio_thread_num => 2 => 2
swoole.display_errors => On => On
swoole.use_shortname => On => On
swoole.fast_serialize => Off => Off
swoole.unixsock_buffer_size => 8388608 => 8388608