PHP致命错误:调用未定义函数password_verify()。

7

我在我的XAMPP上使用的是PHP 5.5.6,没有遇到错误。但是,在将我的网站上传到测试环境后,出现了以下错误:

PHP Fatal Error: Call to undefined function password_verify()

我们的测试环境/服务器使用的是PHP 5.5.9(我使用命令php -v进行了检查)。

我还查阅了PHP手册,没有提到在使用这些函数时需要进行任何配置或安装。有什么想法可能会导致这个问题?


3
@Tommy,这是一个自PHP 5.5版本以来内置的函数。 - Shankar Narayana Damodaran
我使用 php -v 命令检查了我的 PHP 版本,结果显示:PHP 5.5.9 (cli) (built: blah blah) - Ceeee
1
CLI和Web服务器的SAPI不同。上传一个带有phpinfo()的文件来检查Web服务器正在运行什么。 - Gordon
我必须说,尽管这个问题看起来很简单,但我花了相当长的时间才意识到这一点…… - Hector Ordonez
2个回答

13

password_verify() 自 PHP 5.5.0 起被内置,但您的服务器很可能不运行最新版本的 PHP。请务必通过phpinfo()phpversion()确认您的服务器上的 PHP 版本。

请注意,您的 CLI 和 mod_php(或 php-fpm)版本可能不同,执行 php -v 可能会给出错误的版本号。创建一个 PHP 文件并用浏览器打开它以确保绝对准确。

CLI、mod_php 和 php-fpm 版本之所以不同,是因为操作系统提供的软件包及实际管理员安装在系统上的软件不同。个人建议自己编译 PHP,以确保获得最佳性能和完整系统中相同的版本。


我已经检查过了,使用 php -v 命令,它显示 PHP 5.5.9。 - Ceeee
这是因为它们是不同的安装。如果这是您自己的服务器,只需更新所有PHP软件包和您使用Apache httpd的mod_php即可。如果这是托管,则可能就没办法了。 - Fleshgrinder
这绝对是另一个问题,取决于您的操作系统、PHP通过mod_php还是php-fpm,您是否拥有SSH访问权限或者您的托管服务商是否提供管理服务?请创建一个新问题,包含尽可能多的关于您的服务器环境的信息,我们会立即给您答复。 - Fleshgrinder
抱歉,我对服务器方面不是很熟悉,我只是一名程序员,而且我没有访问服务器的权限,只能访问其中的某个部分/文件夹。 - Ceeee
1
好的,向他们展示他们是错误的,并告诉他们更新PHP Web服务器SAPI。 - Fleshgrinder
显示剩余2条评论

4

迁移服务器时,没有费心安装非仓库版本的PHP...这是一个重大疏忽。不过,这个方法完美地解决了问题,谢谢。 - Dan Hastings

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接