问题标签 [php-7.4]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
php - CentOS 7 上的 PHP 7.4 配置文件
我的服务器上有PHP 5.6和nginx,并且想安装PHP 7.4提前做一些测试。我遵循了本指南(将PHP 7.1更改为7.4),现在我有了默认的PHP 5.6和PHP 7.4。
问题是,目录中没有php-fpm74.sock
套接字文件/var/run/php-fpm
。而且我无法找到PHP 7.4的配置文件。有/opt/remi/php74/root/
配置应该在的路径,但文件夹是空的。我试图复制那里php-fpm.conf
,php-fpm.d
但它没有帮助。
php - PHP 7.4 和 MySQL 连接
我在另一个论坛上发布了这个,认为它与 Ubuntu 相关,MySQL 不能很好地与 PHP 配合使用,但后来我意识到 mysqli 确实在加载并与之通信,因为 phpinfo() 表明 mysqli 正在运行,所以我的问题是似乎与 PHP 7.4 版连接数据库的方式发生了变化有关。
它显然与密码有关,因此即使不向后兼容,也必须对其进行哪些更改才能使其工作?我的本地开发数据库使用一个简单的密码,我不确定我需要做什么才能让它再次工作,同时仍保持与实时服务器上旧 MySQL 5.X 的兼容性,但我的站点使用此功能进行连接。
我确实在这里和其他地方查看了另一个帖子和其他几个帖子,并尝试了上面链接示例中提供的测试代码,但仍然无法连接。
我正在运行带有 Apache2 2.4.41 和 MySQL 8.0.18 的 Ubuntu 19.10,即使启用了mysql_native_password,它也会出错。
php - php7.4 opcache.preload - fpm 启动错误
我正在升级到 php7.4 并希望利用新的 opcache 预加载。
当我service php7.4-fpm start
收到以下错误时:
我的fpm/php.ini
包括以下 opcache 设置:
我试过opcachePreload.php
只包含<?php
但错误仍然发生,通常它包含这样的东西,在数组中有几个绝对路径:
我已经尝试了一系列不同级别的文件权限(0600、0700、0770、0777,由 root 拥有),目前ls -l /mnt/a/b/c/opcachePreload.php
显示:
是文件权限问题,还是配置冲突,还是php7.4错误,还是其他什么?
是否被opcache.preload
解释为某种相对路径而不是绝对路径?(我试过了opcache.preload = ./opcachePreload.php
)
我还能尝试什么?
php - 预加载 PHP 脚本时,“未知类型依赖项”是什么意思?
我正在尝试使用自 PHP 7.4 以来可用的新预加载功能。
我跑来composer install --no-dev --optimize-autoloader
生成项目中所有可用类的列表,并使用以下preload.php
脚本预加载它们:
并在我的opcache.ini
文件中配置了这个预加载脚本:
并重新启动php-fpm
。现在systemctl status php-fpm.service
报告以下警告:
PHP 警告:无法预加载未链接的类 Brick\Money\Context\CashContext:第 16 行 ... 中的未知类型依赖项
PHP 警告:无法预加载未链接的类 Brick\Money\Context\AutoContext:..中的未知类型依赖项. on line 17
PHP Warning: Can't preload unlinked class Brick\Math\BigRational: Unknown type dependencies in ... on line 17
PHP Warning: Can't preload unlinked class Brick\Math\BigInteger: Unknown type dependencies in ... . on line 20
PHP Warning: Can't preload unlinked class Brick\Math\BigDecimal: Unknown type dependencies in ... 第 15 行
“未知类型依赖”是什么意思?如何预加载这些类?
注意:我是有问题的库Brick\Math和Brick\Money的维护者,所以如果需要修改这些库以使其可预加载,我会全力以赴!
php - 类型协方差与 PHP 中的抽象类和特征
我正在开发一个 PHP (7.4) 库,并且需要将特征用于新功能,但我遇到了参数类型协方差的问题。
我有一个像这样的抽象父类:
我还有一个特点:
我在子类中同时使用类和特征:
这里的问题是我收到此错误:
致命错误:声明 ChildClass::parentMethod(int $param): bool 必须与 ParentClass::parentMethod($param): bool 兼容
似乎我无法更改 parentMethod() 参数类型。如果我删除int
parentMethod() 定义上的类型,我不会收到错误消息!即使在 trait 方法上有一个特定的类型参数。
为什么我可以将协变参数类型与特征抽象方法一起使用,但不能与抽象类方法一起使用?
php - 在 Ubuntu CI 应用程序抛出错误中升级到 PHP 7.4.1。为什么?
刚刚升级到 PHP 7.4.1,然后是:https ://dev.to/pushkaranand/upgrading-to-php-7-4-26dg
升级后,
Code-igniter 应用程序抛出错误,例如:
试过:通过取消注释php.ini(/etc/php/7.4/apache2/php.ini)中的以下行:
然后,做了
请用适当的解决方案指导我。
php - PHP 7.4 中无法捕获弃用警告
在 PHP 7.4.0 中,我看到以下警告:
Deprecated: Array and string offset access syntax with curly braces is deprecated in ...
我的错误/异常处理程序无法捕获和记录它们。
例子:
警告仍然显示在正常输出中,并且没有调用两个处理程序。
我想在我自己的日志中记录所有错误、异常和警告,但处理程序没有捕获到这个警告。是否有这样做的理由或解决方案来捕获并记录 PHP 抱怨的所有内容(无法访问服务器 Apache/PHP 日志)?
php - 尝试在 PHP 7.4 中访问 bool 类型值的数组偏移量
我刚刚将服务器的 PHP 版本升级到 PHP 7.4.1,现在出现此错误:
注意:尝试访问 bool 类型值的数组偏移量
PHP 7.4 的修复是什么?
php - php7.4、php7.4-fpm、http2、Apache、nginx,我一头雾水
- 我可以在 Apache 中使用 php7.4-fpm 吗?或者 php-fpm 真的只用于 nginx 吗?为什么?
- php7.4是否支持http2?还是你还需要php-fpm?官方 http2 网站 (http2.pro) 已经有几年没有更新了。
- 还值得激活 HTTP2 吗?(最新的更新可以追溯到几年前。)
- 要激活 http2,我遵循了此处描述的所有程序:https ://http2.pro/doc/Apache ,现在如果我必须重新激活 php(正常),我该如何返回?
(这个问题最初的解释性要强得多,但管理员不喜欢它......他们要求它更加集中,所以让我们只尝试这些问题。)