php7:给已编译安装版本增加一个编译参数(PHP 7.4.2)-编程思维

一,查看编译时的参数:

1,命令行:
[lhdop@blog etc]$ /usr/local/soft/php7/bin/php -i | grep configure
Configure Command =>  './configure'  '--prefix=/usr/local/soft/php7' '--with-curl' '--with-freetype' '--enable-gd' '--with-jpeg' 
'--with-gettext' '--with-iconv-dir=/usr/local' '--with-kerberos' '--with-libdir=lib64' '--with-libxml' '--with-mysqli' '--with-openssl'
'--with-pdo-mysql' '--with-pdo-sqlite' '--with-pear' '--with-mhash' '--with-ldap-sasl' '--with-xmlrpc' '--with-xsl' '--with-zlib'
'--enable-fpm' '--enable-bcmath' '--enable-mbregex' '--enable-mbstring' '--enable-opcache' '--enable-pcntl' '--enable-shmop'
'--enable-soap' '--enable-sockets' '--enable-xml' '--with-zip' '--with-config-file-path=/usr/local/soft/php7/etc' '-with-bz2'
'--enable-inline-optimization' '--enable-sysvsem'

 

2,通过安装文件找到安装时:
在php安装目录下:
include/php/main/build-defs.h:
#define CONFIGURE_COMMAND " './configure'  '--prefix=/usr/local/soft/php7' '--with-curl' '--with-freetype' '--enable-gd' 
'--with-jpeg' '--with-gettext' '--with-iconv-dir=/usr/local' '--with-kerberos' '--with-libdir=lib64' '--with-libxml' '--with-mysqli'
'--with-openssl' '--with-pdo-mysql' '--with-pdo-sqlite' '--with-pear' '--with-mhash' '--with-ldap-sasl' '--with-xmlrpc' '--with-xsl'
'--with-zlib' '--enable-fpm' '--enable-bcmath' '--enable-mbregex' '--enable-mbstring' '--enable-opcache' '--enable-pcntl' '--enable-shmop' '--enable-soap' '--enable-sockets' '--enable-xml' '--with-zip'
'--with-config-file-path=/usr/local/soft/php7/etc' '-with-bz2' '--enable-inline-optimization' '--enable-sysvsem'"

说明:刘宏缔的架构森林是一个专注架构的博客,地址:https://www.cnblogs.com/architectforest

         对应的源码可以访问这里获取: https://github.com/liuhongdi/
         或: https://gitee.com/liuhongdi

说明:作者:刘宏缔 邮箱: 371125307@qq.com

 

二,增加编译参数

1,在安装时的源码目录或找到相同版本的源码
进入源码目录
[root@blog ~]# cd /usr/local/source/
[root@blog source]# cd php-7.4.2/

clean

[root@blog php-7.4.2]# make clean

重新configure

[root@blog php-7.4.2]# ./configure  --prefix=/usr/local/soft/php7 --with-curl --with-freetype --enable-gd --with-jpeg 
--with-gettext --with-iconv-dir=/usr/local --with-kerberos --with-libdir=lib64 --with-libxml --with-mysqli --with-openssl
--with-pdo-mysql --with-pdo-sqlite --with-pear --with-mhash --with-ldap-sasl --with-xmlrpc --with-xsl --with-zlib
--enable-fpm --enable-bcmath --enable-mbregex --enable-mbstring --enable-opcache --enable-pcntl --enable-shmop --enable-soap
--enable-sockets --enable-xml --with-zip --with-config-file-path=/usr/local/soft/php7/etc -with-bz2 --enable-inline-optimization
--enable-sysvsem --enable-exif
说明:configure时增加了参数: --enable-exif
安装
[root@blog php-7.4.2]# make && make install   
2,重启php-fpm
[root@blog php-7.4.2]# /usr/local/soft/php7/daemon/php-fpm restart
Gracefully shutting down php-fpm . done
Starting php-fpm  done 
3,查看效果:
未加exif参数前的报错:
Fatal error: Uncaught Error: Call to undefined function exif_read_data() in /web/think_web/think_www/prog_action/test/test_action.php:11 
Stack trace:
#0 /web/think_web/think_www/html/v.php(165): test_action->go()
#1 {main} thrown in /web/think_web/think_www/prog_action/test/test_action.php on line 11
如图:
 
增加参数后:
array(2) { ["FILE"]=> array(6) { ["FileName"]=> string(6) "42.jpg" ["FileDateTime"]=> int(1650439867) ["FileSize"]=> int(1274545) ["FileType"]=> int(2) ["MimeType"]=> string(10) "image/jpeg" ["SectionsFound"]=> string(0) "" } ["COMPUTED"]=> array(4) { ["html"]=> string(26) "width="2880" height="1800"" ["Height"]=> int(1800) ["Width"]=> int(2880) ["IsColor"]=> int(1) } }
获取到的exif数据:

三,查看php的版本:

[lhdop@blog php7]$ /usr/local/soft/php7/bin/php --version
PHP 7.4.2 (cli) (built: Mar  5 2020 11:16:38) ( NTS )
Copyright (c) The PHP Group
Zend Engine v3.4.0, Copyright (c) Zend Technologies 

 

版权声明:本文版权归作者所有,遵循 CC 4.0 BY-SA 许可协议, 转载请注明原文链接
https://www.cnblogs.com/architectforest/p/16183717.html

PHP实现无限级分类-编程思维

前段时间做一个小项目的时候用到了无限级分类,当时也忘的差不多了,于是就去网上查资料学,下面是我的学习笔记 数据格式: array (size=5) 1 => array (size=6) 'id' => string '1' (length=1) 'pid' =>

docker 灵活的构建 php 环境-编程思维

地址: https://github.com/ydtg1993/server           使用docker搭建灵活的线上php环境 有时候你可能不太需要一些别人已经集成了的包或者镜像         我们就可以使用以下方式自己动手逐一构建自己所需要的环境结构 并在最后实现一键自动化部署         一步一

Laravel 5.6: Specified key was too long error-编程思维

Laravel 5.6: Specified key was too long error 在Laravel执行以下命令: php artisan migrate 这是由于Laravel5.6设置了数据库默认编码,现在的编码默认为“utf8mb4”(支持emoji),   开始查看了官网是这么说的: “appli

【图片+代码】:GCC 链接过程中的【重定位】过程分析-编程思维

作 者:道哥,10+年嵌入式开发老兵,专注于:C/C++、嵌入式、Linux。 关注下方公众号,回复【书籍】,获取 Linux、嵌入式领域经典书籍;回复【PDF】,获取所有原创文章( PDF 格式)。 目录示例代码sub.o 文件内容分析段信息符号表信息main.o 文件分析段信息符号表信息绝对寻址相对寻址重定位表

Open Harmony移植:build lite编译构建过程-编程思维

摘要:本文介绍了build lite 轻量级编译构建系统编译构建过程,调用依赖关系等等。 本文分享自华为云社区《移植案例与原理 - build lite编译构建过程》,作者: zhushy。 配置完毕产品解决方案、芯片开发板解决方案,就可以执行 hb build进行编译。但是产品解决方案代码是如何被调用编译的? 芯片开

认识 LLVM-编程思维

简介 LLVM是一套提供编译器基础设施的开源项目,是用 C++ 编写,包含一系列模块化的编译器组件和工具链,用来开发编译器前端和后端。它是为了任意一种编程语言而写成的程序,利用虚拟技术创造出编译时期、链接时期、执行时期以及“闲置时期”的优化。 LLVM的命名源自于底层虚拟机(Low Level Virtual Mach

GCC 编译c程序的方法及过程解析-编程思维

目前 Linux 下最常用的 C 语言编译器是 GCC ( GNU Compiler Collection ),它是 GNU 项目中符合 ANSI C 标准的编译系统,能够编译用 C 、 C++ 和 Object C 等语言编写的程序。 GCC 不仅功能非常强大,结构也异常灵活。最值得称道的一点就是它可以通过不同的前端

整理混乱的头文件,我用include what you use_华为云开发者联盟-编程思维

摘要:使用include-what-you-use(iwyu/IWYU)清理冗余头文件,补充必要头文件。 本文分享自华为云社区《用include what you use拯救混乱的头文件》,作者: 村头树下 。 背景 面对大型C/C++项目的时候,混乱的头文件引用,经常会有一种剪不断理还乱的感觉。长年累月的项目迭代,需