零基础PHP项目迁移与问题解决:验证码与图片上传故障排查
我正在做Java,还维护了我直接接管的PHP项目。它的PHP为零。我已经完成了该项目的服务器迁移,将HTTPS添加到域名中,最后检查了它可以正常访问。详细功能尚未完全测试。突然,有一天我被抱怨说,注册模块的验证代码无法正常显示(暂时删除后,我输入了背景管理模块,发现图像上传功能不正常,这可能是一个问题)。因此,我开始间歇性地在网上找到解决方案。实际上,很容易找到解决一般情况的解决方案。一些关键字是PHP-GD,PHP-FPM(我配置为NGINX),php.ini和缓存清除。但是,Debian系统具有难以想象的依赖关系,并且每个版本的依赖性名称不同。当前系统本身是生产环境服务器,并且有各种版本的依赖性。简而言之,这很重要。最后,在尝试了无数的依赖源之后,在更新依赖项后,成功安装了PHP5-GD所需的依赖关系。最后,在Phpinfo中,除了GD版本信息和支持的图像格式外,仍然无法显示验证代码。 。 。 。 。 。在尝试了无数搜索关键字之后,“ PHP5安装了GD并未显示验证代码”,最终找到了一个帖子,其中提到了BOM标头。我理解这一点,因为当使用CRT远程登录到服务器以编辑某些文件时,它也将有一个BOM标头,因此在项目root Directory中创建一个Clean.php文件并粘贴以下代码

";
}else{
$dirname = $basedir."/".$file;
checkdir($dirname);
}
}
}//end while
closedir($dh);
}//end if($dh
}//end function
function checkBOM($filename){
global $auto;
$contents = file_get_contents($filename);
$charset[1] = substr($contents, 0, 1);
$charset[2] = substr($contents, 1, 1);
$charset[3] = substr($contents, 2, 1);
if(ord($charset[1]) == 239 && ord($charset[2]) == 187 && ord($charset[3]) == 191){
if($auto == 1){
$rest = substr($contents, 3);
rewrite ($filename, $rest);
return "BOM found, automatically removed.";
}else{
return ("BOM found.");
}
}
else return ("BOM Not Found.");
}//end function
function rewrite($filename, $data){
$filenum = fopen($filename, "w");
flock($filenum, LOCK_EX);
fwrite($filenum, $data);
fclose($filenum);
}
?>
直接浏览器访问
如果您有任何问题,您会看到很多这样的日志,然后重新访问验证代码页面。
正常访问〜
上传图片的问题实际上是因为域名已更改为HTTPS,并且上传模块的配置尚未更改。添加https是正常的。
帖子: