Discuz!论坛进行环境检测时提示不支持fsockopen和pfsockopen函数
在云虚拟主机上安装Discuz!论坛时,系统会执行环境检测确保该论坛可以正常安装。可能由于云虚拟主机本身默认某些功能(例如PHP函数fsockopen)已关闭或无法使用,导致环境检测过程中,提示不支持fsockopen
和pfsockopen
函数。本文介绍这种情况的可能原因和解决方案。
问题描述
在Linux系统云虚拟主机中安装Discuz!论坛进行环境检测(例如函数依赖性检查环节)时,提示不支持fsockopen()
和pfsockopen()
函数。
说明
fsockopen
和pfsockopen
函数与Discuz!论坛的邮件功能有所关联。其中,pfsockopen
是fsockopen
函数的长连接版本(即当脚本执行完成后,pfsockopen
函数连接一直不会关闭),两个函数作用是一样的。
问题原因
基于安全考虑,Linux系统云虚拟主机默认无法使用pfsockopen
函数,但允许设置fsockopen
函数功能,默认情况下,fsockopen
函数功能为禁用状态,故Discuz!论坛进行环境检测时两个函数均显示不支持。
解决方案
登录云虚拟主机管理页面。
找到待安装Discuz!论坛的云虚拟主机,单击对应操作列的管理。
在左侧导航栏,选择高级环境设置 > PHP.INI设置。
在PHP.INI设置页面的PHP函数设置区域,选择PHP函数fsockopen设置为启动状态。
单击保存设置。
再次执行进行环境检测时,确认
pfsockopen
和fsockopen
函数报错消失。