php扩展

说明:

通过phpize可执行命令安装。

phpSrcDir是php源码包目录。

installDir是php服务安装目录。

pecl地址https://pecl.php.net/package

composer

shell 复制代码
cd installDir/bin

# 直接安装
curl -sS https://getcomposer.org/installer | ./php

# 多个版本php安装多个版本composer
wget https://install.phpcomposer.com/composer.phar
chmod +x composer.phar
installDir/bin/php installDir/bin/composer.phar --help

# 嫌弃命令太长可以将其写入一个脚本然执行脚本
vim composer.sh
#! /bin/bash
installDir/bin/php installDir/bin/composer.phar $*

phpunit

shell 复制代码
cd installDir/bin
wget https://phar.phpunit.de/phpunit.phar
chmod +x phpunit.phar

# 需要部分括扩展
installDir/bin/php installDir/bin/phpunit.phar --help

# 嫌弃命令太长可以将其写入一个脚本然执行脚本
vim phpunit.sh
#! /bin/bash
installDir/bin/php installDir/bin/phpunit.phar $*

phpDocumentor

shell 复制代码
cd installDir/bin
wget https://phpdoc.org/phpDocumentor.phar
chmod +x phpDocumentor.phar

# 需要部分括扩展
installDir/bin/php installDir/bin/phpDocumentor.phar --help

# 嫌弃命令太长可以将其写入一个脚本然执行脚本
vim phpDocumentor.sh
#! /bin/bash
installDir/bin/php installDir/bin/phpDocumentor.phar $*

openssl

shell 复制代码
cd phpSrcDir/ext/openssl
mv config0.m4 config.m4
installDir/bin/phpize
./configure \
--with-php-config=installDir/bin/php-config \
--with-openssl=opensslInstalllDir \
OPENSSL_CFLAGS='-I/opensslInstalllDir/include' \
OPENSSL_LIBS='-L/opensslInstalllDir/lib64 -lssl -lcrypto'

make
make install

# 修改php.ini文件
[openssl]
extension=openssl.so

curl

shell 复制代码
cd phpSrcDir/ext/curl
installDir/bin/phpize
./configure \
--with-php-config=installDir/bin/php-config \
--with-curl=curlInstallDir

make
make install

# 修改php.ini文件
[curl]
extension=curl.so

opcache

shell 复制代码
cd phpSrcDir/ext/opcache
installDir/bin/phpize
./configure \
--with-php-config=installDir/bin/php-config

make
make install

# 修改php.ini文件
[opcache]
zend_extension=opcache.so
;启用OPcache
opcache.enable=1
;CLI模式下启用OPcache
opcache.enable_cli=1
;共享内存大小(单位M)
opcache.memory_consumption=128
;存储字符串的内存大小(单位M)
opcache.interned_strings_buffer=8
;允许缓存脚本文件最大数量
opcache.max_accelerated_files=4000
;缓存过期的时间(单位秒) 0每次都检查脚本是否更新
opcache.revalidate_freq=60
;启用快速关闭
opcache.fast_shutdown=1
;启用tracing后JIT可以更精细并选择函数中的代码段进行编译
opcache.jit=tracing
opcache.jit_buffer_size=100M

;opcache.revalidate_freq配置项参数较大的话 改变源代码访问时并不一定实时改变(有缓存)
php 复制代码
declare (strict_types=1);
$start = microtime(true);
$total = 0;
for ($i = 0; $i < 1000000; $i++) {
    $total += $i;
}
echo 'Count:' . $i . ',Total' . $total . '<br/>';
$end = microtime(true);
$spend = floor(($end - $start) * 1000);
echo $spend;

# 开启时
# Count:1000000,Total499999500000
# 15(最大)
# 未开启时
# Count:1000000,Total499999500000
# 54(有时更大)

mysqli

shell 复制代码
cd phpSrcDir/ext/mysqli
installDir/bin/phpize
# --with-mysqli=mysqlInstallDir/bin/mysql_config
./configure \
--with-php-config=installDir/bin/php-config

make
make install

# 错误
# error: Please reinstall the mysql distribution
# 修改mysqli_api.c文件
# 将#include "ext/mysqlnd/mysql_float_to_double.h"
# 改为#include "../mysqlnd/mysql_float_to_double.h"

# 修改php.ini文件
[MySQLi]
extension=mysqli.so

pdo_mysql

shell 复制代码
cd phpSrcDir/ext/pdo_mysql
installDir/bin/phpize
# --with-pdo-mysql=mysqlInstallDir/bin/mysql_config
./configure \
--with-php-config=installDir/bin/php-config

make
make install

# 修改php.ini文件
[Pdo_mysql]
extension=pdo_mysql.so

pgsql

shell 复制代码
# 此扩展依赖postgresql
cd phpSrcDir/ext/pgsql
installDir/bin/phpize
./configure \
--with-php-config=installDir/bin/php-config

make
make install

# 修改php.ini文件
[PostgreSQL]
extension=pgsql.so
pgsql.allow_persistent=On
pgsql.auto_reset_persistent=Off
pgsql.max_persistent=-1
pgsql.max_links=-1
pgsql.ignore_notice=0
pgsql.log_notice=0

pdo_pgsql

shell 复制代码
# 此扩展依赖postgresql
cd phpSrcDir/ext/pdo_pgsql
installDir/bin/phpize
./configure \
--with-php-config=installDir/bin/php-config

make
make install

# 修改php.ini文件
;pdo_pgsql
extension=pdo_pgsql.so

calendar-日历扩展

shell 复制代码
# 包含了简化不同日历格式间转换函数
cd phpSrcDir/ext/calendar
installDir/bin/phpize
./configure \
--with-php-config=installDir/bin/php-config \
--enable-calendar

make
make install

# 修改php.ini文件
;calendar
extension=calendar.so

exif-处理图像元数据

shell 复制代码
# 例如使用exif函数通过处理存储在标题信息来读取从数码相机拍摄图片的元数据
# 常见于JPEG和TIFF图像中
cd phpSrcDir/ext/exif
installDir/bin/phpize
./configure \
--with-php-config=installDir/bin/php-config

# make可能会报错使用c99标准
make CFLAGS=-std=c99
make install

# 修改php.ini文件
[exif]
extension=exif.so
exif.encode_unicode=ISO-8859-15
exif.decode_unicode_motorola=UCS-2BE
exif.decode_unicode_intel=UCS-2LE
exif.encode_jis=
exif.decode_jis_motorola=JIS
exif.decode_jis_intel=JIS

xsl

shell 复制代码
# 依赖libxslt
# XSL代表可扩展样式表语言 它是用来理解和样式化XML文档
# 它可以作为基于XML的样式表语言 就像CSS是基于HTML的样式表语言一样
# 它是一种标记语言 可以指定浏览器应该如何呈现XML文档
cd phpSrcDir/ext/xsl
installDir/bin/phpize
./configure \
--with-php-config=installDir/bin/php-config \
--with-xsl=/opt/local

make
make install

# 修改php.ini文件
;xsl
extension=xsl.so

sysvmsg-消息队列

shell 复制代码
cd phpSrcDir/ext/sysvmsg
installDir/bin/phpize
./configure \
--with-php-config=installDir/bin/php-config

make
make install

# 修改php.ini文件
;sysvmsg
extension=sysvmsg.so

sysvshm-共享内存

shell 复制代码
cd phpSrcDir/ext/sysvshm
installDir/bin/phpize
./configure \
--with-php-config=installDir/bin/php-config

make
make install

# 修改php.ini文件
[sysvshm]
extension=sysvshm.so

bcmath-数学扩展

shell 复制代码
cd phpSrcDir/ext/bcmath
installDir/bin/phpize
./configure \
--with-php-config=installDir/bin/php-config

make
make install

# 修改php.ini文件
[bcmath]
extension=bcmath.so

gettext-国际化与字符编码支持

shell 复制代码
cd phpSrcDir/ext/gettext
installDir/bin/phpize
./configure \
--with-php-config=installDir/bin/php-config \
--with-gettext=gettextInstallDir

make
make install

# 修改php.ini文件
;gettext
extension=gettext.so

mbstring-多字节字符串

shell 复制代码
cd phpSrcDir/ext/mbstring
installDir/bin/phpize
./configure \
--with-php-config=installDir/bin/php-config

make
make install

# 修改php.ini文件
[mbstring]
extension=mbstring.so

zlib-读写gzip压缩过的文件

shell 复制代码
cd phpSrcDir/ext/zlib
mv config0.m4 config.m4
installDir/bin/phpize
./configure \
--with-php-config=installDir/bin/php-config \
--with-zlib

make
make install

# 修改php.ini文件
;zlib
extension=zlib.so

gzip-压缩文件

shell 复制代码
# 更改php.ini
zlib.output_compression=On
;gzip压缩级别1~9 建议3~5
zlib.output_compression_level=4
;gzip压缩方式 建议注释
;zlib.output_handler=

#页面头部信息还没有输出 而且php已经加载了zlib扩展 而且浏览器接受GZIP
if(!headers_sent() && extension_loaded('zlib') && strstr($_SERVER['HTTP_ACCEPT_ENCODING'], 'gzip')){
    ini_set('zlib.output_compression', 'On');
    ini_set('zlib.output_compression_level', '4');
}

bzip2-读写.bz2压缩文件

shell 复制代码
# 依赖bzip2库
cd phpSrcDir/ext/bz2
installDir/bin/phpize
./configure \
--with-php-config=installDir/bin/php-config \
--with-bz2

make
make install

# 修改php.ini文件
;bz2
extension=bz2.so

zip-压缩zip

shell 复制代码
# https://pecl.php.net/package/zip
cd zip
installDir/bin/phpize
./configure \
--with-php-config=installDir/bin/php-config

make
make install

# 修改php.ini文件
;zip
extension=zip.so

ftp

shell 复制代码
cd phpSrcDir/ext/ftp
installDir/bin/phpize
./configure \
--with-php-config=installDir/bin/php-config \
--with-openssl-dir=opensslInstallDir \
--enable-ftp

make
make install

# 修改php.ini文件
;ftp
extension=ftp.so

sockets

shell 复制代码
cd phpSrcDir/ext/sockets
installDir/bin/phpize
./configure \
--with-php-config=installDir/bin/php-config \
--enable-sockets

make
make install

# 修改php.ini文件
;sockets
extension=sockets.so

soap

shell 复制代码
# 依赖libxml SOAP协议可以实现不同系统之间的数据交互和通信
cd phpSrcDir/ext/soap
installDir/bin/phpize
./configure \
--with-php-config=installDir/bin/php-config \
--enable-soap

make
make install

# 修改php.ini文件
[soap]
extension=soap.so

gd

shell 复制代码
# 依赖libgd
cd phpSrcDir/ext/dg
installDir/bin/phpize
./configure \
--with-php-config=installDir/bin/php-config \
--with-jpeg=jpegInstallDir \
--with-freetype=freetypeInstallDir \
--with-webp=libwebpInstallDir \
PNG_CFLAGS='-I/libpngInstallDir/include' \
PNG_LIBS='-L/libpngInstallDir/lib'

make
make install

# 修改php.ini文件
[gd]
extension=gd.so

mcrypt-加密扩展

shell 复制代码
# 依赖mhash和libmcrypt
# https://pecl.php.net/package/mcrypt 不维护
cd mcrypt
installDir/bin/phpize
./configure \
--with-php-config=phpInstallDir/bin/php-config \
--with-mcrypt=libmcryptInstallDir

make
make install

# 修改php.ini文件
;mcrypt
extension=mcrypt.so

igbinary-序列化

shell 复制代码
# https://pecl.php.net/package/igbinary
# 相对于自带serialize igbinary具有性能高节省空间的特点
cd igbinary
installDir/bin/phpize
./configure \
--with-php-config=installDir/bin/php-config

make
make install

# 修改php.ini文件
;igbinary
extension=igbinary.so
;使用igbinary作为会话序列化程序
session.serialize_handler=igbinary
;复字符串压缩 默认On
igbinary.compact_strings=On
;使用igbinary作为APCu序列化器
apc.serializer=igbinary

imagick-创建和修改图像

shell 复制代码
# 依赖ImageMagick
# https://pecl.php.net/package/imagick
# imagick是一个原生的php扩展 用于使用ImageMagick API创建和修改图像
# imageMagick是一个用于创建 编辑和合成位图图像的软件套件
# 它可以读取 转换和写入多种格式(超过100种)的图像
# 包括DPX EXR GIF JPEG JPEG-2000 PDF PhotoCD PNG Postscript SVG和TIFF
cd imagick
installDir/bin/phpize
./configure \
--with-php-config=installDir/bin/php-config \
--with-imagick=ImageMagickSrc

make
make install

# 修改php.ini文件
;imagick
extension=imagick.so

redis

shell 复制代码
# https://pecl.php.net/package/redis
cd redis
installDir/bin/phpize
./configure \
--with-php-config=installDir/bin/php-config \
--enable-redis

make
make install

# 修改php.ini文件
;redis
extension=redis.so

memcache

shell 复制代码
# https://pecl.php.net/package/memcache
cd memcache
installDir/bin/phpize
./configure \
--with-php-config=installDir/bin/php-config

make
make install

# 修改php.ini文件
;memcache
extension=memcache.so

mongodb

shell 复制代码
# https://pecl.php.net/package/mongodb
cd mongodb
installDir/bin/phpize
./configure \
--with-php-config=installDir/bin/php-config

make
make install

# 修改php.ini文件
;mongodb
extension=mongodb.so

swoole

shell 复制代码
# 依赖c-ares
#
cd swoole
installDir/bin/phpize
./configure \
./configure \
--with-php-config=installDir/bin/php-config \
--enable-cares \
--enable-sockets \
--enable-mysqlnd \
--enable-swoole-curl \
--enable-swoole-sqlite \
--with-nghttp2-dir=nghttp2InstallDir \
--with-openssl-dir=opensslInstallDir

make
make install

# 修改php.ini文件
;swoole
extension=swoole.so

xdebug

shell 复制代码
# 查看适配php的Xdebug版本
# 将php -i输出内容复制到https://xdebug.org/wizard 查看适配Xdebug的版本
cd xdebug
installDir/bin/phpize
./configure \
--with-php-config=installDir/bin/php-config

make
make install

# 修改php.ini文件
;xdebug
zend_extension=xdebug.so
;是否允许Xdebug跟踪函数调用 跟踪信息以文件形式存储
xdebug.mode=debug,trace
;否允许Xdebug远程调试
xdebug.start_with_request=yes
xdebug.idekey=xdebug
xdebug.client_port=9000
xdebug.client_host=127.0.0.1
;收集返回值
xdebug.collect_return=On
xdebug.output_dir=/tmp/xdebug
xdebug.log=/tmp/xdebug/xdebug.log

;指定xdebug.output_dir和xdebug.log参数 应创建对应目录与文件并赋予相应权限
;xdebug扩展与opcache扩展的opcache.jit_buffer_size参数冲突

扩展(不建议开启)

fileinfo

shell 复制代码
# 获取文件mime类型fileinfo等方法
cd phpSrcDir/ext/fileinfo
installDir/bin/phpize
./configure \
--with-php-config=installDir/bin/php-config

make
make install

;fileinfo
extension=fileinfo.so

readline

shell 复制代码
# readline扩展并非线程安全
cd phpSrcDirext/readline
installDir/bin/phpize
./configure \
--with-php-config=installDir/bin/php-config

make
make install

# 修改php.ini文件
;readline
extension=readline.so

ffi

shell 复制代码
# readline扩展并非线程安全
cd phpSrcDirext/ffi
installDir/bin/phpize
./configure \
--with-php-config=installDir/bin/php-config

make
make install

# 修改php.ini文件
[ffi]
extension=ffi.so
相关推荐
懒大王爱吃狼35 分钟前
Python教程:python枚举类定义和使用
开发语言·前端·javascript·python·python基础·python编程·python书籍
秃头佛爷2 小时前
Python学习大纲总结及注意事项
开发语言·python·学习
待磨的钝刨2 小时前
【格式化查看JSON文件】coco的json文件内容都在一行如何按照json格式查看
开发语言·javascript·json
XiaoLeisj4 小时前
【JavaEE初阶 — 多线程】单例模式 & 指令重排序问题
java·开发语言·java-ee
励志成为嵌入式工程师5 小时前
c语言简单编程练习9
c语言·开发语言·算法·vim
捕鲸叉5 小时前
创建线程时传递参数给线程
开发语言·c++·算法
A charmer5 小时前
【C++】vector 类深度解析:探索动态数组的奥秘
开发语言·c++·算法
Peter_chq5 小时前
【操作系统】基于环形队列的生产消费模型
linux·c语言·开发语言·c++·后端
记录成长java7 小时前
ServletContext,Cookie,HttpSession的使用
java·开发语言·servlet
前端青山7 小时前
Node.js-增强 API 安全性和性能优化
开发语言·前端·javascript·性能优化·前端框架·node.js