关于php8:centos上PHP8安装fileinfo拓展失败

前段时间通过编译装置PHP8的时候因为内存的起因加了--disable-fileinfo禁用了fileinfo拓展然而最近应用PHP8装置Laravel8的时候却因为局部包依赖fileinfo而无奈装置。 想着我也不是头一次给编译后的PHP装置拓展了,装个fileinfo的拓展又有多难呢。然而事实还是给了我一记响亮亮的耳光,make的时候不仅报错,还找不到解决办法。 网上找了半天也是找了个寂寞,就一篇 相干的文章 在最初通知我 如无意外,fileinfo是装置不上的。果然我没有遇到那个"意外"。他失去的谬误是这样的: /root/oneinstack/src/php-8.0.0/ext/fileinfo/libmagic/funcs.c: In function ‘file_checkfmt’:/root/oneinstack/src/php-8.0.0/ext/fileinfo/libmagic/funcs.c:97:2: error: ‘for’ loop initial declarations are only allowed in C99 modefor (const char *p = fmt; *p; p++) {^/root/oneinstack/src/php-8.0.0/ext/fileinfo/libmagic/funcs.c:97:2: note: use option -std=c99 or -std=gnu99 to compile your codemake: *** [libmagic/funcs.lo] Error 1而我失去的谬误是中文版本: /usr/local/src/php-8.0.0/ext/fileinfo/libmagic/funcs.c: 在函数‘file_checkfmt’中:/usr/local/src/php-8.0.0/ext/fileinfo/libmagic/funcs.c:97:2: 谬误:只容许在 C99 模式下应用‘for’循环初始化申明for (const char *p = fmt; *p; p++) {^/usr/local/src/php-8.0.0/ext/fileinfo/libmagic/funcs.c:97:2: 附注:应用 -std=c99 或 -std=gnu99 来编译您的代码make: *** [libmagic/funcs.lo] 谬误 1既然网上曾经找不到解决办法了,但问题还要解决呀,就具体看了这个错误信息。这里的附注让应用 -std=c99 或 -std=gnu99 来编译代码,看的我也是一脸懵,这我要加在哪里呀?于是我就加在了make前面 ...

January 12, 2021 · 1 min · jiezi

关于php8:从零搭建php环境

前言:开发人员要肯定时间段是须要接触服务器常识,比方搭建本人语言或者我的项目运行的环境,定时脚本,监控零碎等,该系列文章即为php-web利用的环境搭建教程。 一、指标环境零碎:centos7后端语言:PHP8.0.0数据库:mysql8web服务器:openresty缓存:redis扩大:swoole,phalcon 二、筹备工作1、centos7的服务器,我这里是阿里云ECS2、将各种须要装置的软件源代码先事后下载好到本地,到时候通过文件传输到数据库,因为服务器带宽比拟低,在服务器上下载会很慢。 PHP源代码:https://www.php.net/downloads 【下载本人须要的版本的源代码】 mysql能够间接通过yum 装置 openresty:http://openresty.org/en/downl...

December 14, 2020 · 1 min · jiezi

关于php8:山东标梵讲解对PHP8新特性的即时介绍

PhoebePHP是4天前世界上最好的语言。PHP8公布了~~~我置信准时是每个人最关怀的事件,如何应用,留神什么,如何进步性能? 能够看出几个关键点:Opcache将在操作码级别进行优化。例如,图中的两个操作码合并为一个。针对PHP8的JIT目前在Opcache中提供。在Opcache优化的根底上,联合Runtime信息,再次优化间接生成机器码。JIT不是对最后的Opcache优化的代替,而是一种加强。目前PHP8只反对x86CPU。事实上,JIT共享许多由Opcache优化的根本数据结构,例如数据流图、调用图、SSA等。下载安装后,除了原始的opcache配置,对于JIT,咱们须要在php.ini中增加以下配置:opcache.jit=1205.opcache.jit_buffer_size=64M.Opcache.jit这个配置看起来有点简单,我来解释一下,这种配置由四个独立的数字组成。从左到右别离是。1.生成机器代码点时是否应用AVX指令须要CPU反对:2.寄存器调配策略:3.准时制触发策略:4、JIT优化策略,值越大,优化力度越大:基于此,咱们大略能够得出以下论断:尽量用12x5的配置,这个时候应该成果最好。有了x,如果是脚本级,倡议应用0。如果是Web服务,能够依据测试后果抉择3或者5。@jit的模式有属性后可能变成<>。当初,让咱们测试一下启用和未启用JIT时Zend/bench.php的区别。文章编辑:标梵互动(https://www.biaofun.com/)

December 9, 2020 · 1 min · jiezi

关于php8:PHP8体验pdomysql-事务提交失败

产生了什么周末无事,想装上 PHP8 体验一把新版本的个性,找了一个 Yii2 写的老我的项目,后果运行 migration 初始化环境就遇到了问题,建表脚本间接报错。 Exception: There is no active transaction而同样的脚本在 7.4 版本也齐全失常。 测试脚本 简化的脚本差不多是这样 $conn = new PDO("mysql:host=127.0.0.1;dbname=test", 'root', '123456'); $conn->setAttribute(PDO::ATTR_ERRMODE, PDO::ERRMODE_EXCEPTION); $conn->beginTransaction(); try { $sql = "CREATE TABLE IF NOT EXISTS test (`id` bigint(20) UNSIGNED NOT NULL AUTO_INCREMENT, `text` varchar(32) NOT NULL DEFAULT '', PRIMARY KEY (`id`)) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4;"; $conn->exec($sql); $sql = "INSERT INTO test values(1,'test1')"; $conn->exec($sql); $conn->commit(); } catch (Exception $e) { echo $e->getMessage(); $conn->rollBack(); }问题起因 ...

December 6, 2020 · 1 min · jiezi