“getimagesize():SSL 操作失败,代码为 1”(仅限本地 Xampp)

Ang*_*Cub 4 php xampp getimagesize

getimagesize() 在 Xampp(本地 PC)中失败,尽管它在实时环境中工作正常。

根据错误消息,该问题似乎与证书配置有关。我根据本文创建了自签名证书:https://shellcreeper.com/how-to-create-valid-ssl-in-localhost-for-xampp/

这从 Apache 的错误日志中删除了 SSL 警告,但 getimage() 的问题仍然相同。

http如果我使用而不是传递图像的 URL https,则调用有效。

<?php
$file = "http://webtest.test/content/uploads/img.jpg";  // Will work
$file = "https://webtest.test/content/uploads/img.jpg"; // Will not work

// ...

$img_info = getimagesize($file);
if(!$img_info) {
  throw new Exception(__("The file type is not valid image (1)"));
}
?>
Run Code Online (Sandbox Code Playgroud)

收到错误:

PHP Warning:  getimagesize(): SSL operation failed with code 1. OpenSSL Error messages:\nerror:1416F086:SSL routines:tls_process_server_certificate:certificate verify failed in \\xampp\\htdocs\\index.php on line 3, referer: https://webtest.test/
PHP Warning:  getimagesize(): Failed to enable crypto in \\xampp\\htdocs\\index.php on line 3, referer: https://webtest.test/
PHP Warning:  getimagesize(https://webtest.test/content/uploads/photos/2019/08/2f203cfc1e.jpg): failed to open stream: operation failed in \\xampp\\htdocs\\index.php on line 3, referer: https://webtest.test/
Run Code Online (Sandbox Code Playgroud)

Xampp/PHP 版本 7.3.6。加载的模块:

core mod_win32 mpm_winnt http_core mod_so mod_access_compat mod_actions mod_alias mod_allowmethods mod_asis mod_auth_basic mod_authn_core mod_authn_file mod_authz_core mod_authz_groupfile mod_authz_host mod_authz_user mod_autoindex mod_cgi mod_dav_lock mod_dir mod_env mod_headers mod_include mod_info mod_isapi mod_log_config mod_cache_disk mod_mime mod_negotiation mod_proxy mod_proxy_ajp mod_rewrite mod_setenvif mod_socache_shmcb mod_ssl mod_status mod_php7 
Run Code Online (Sandbox Code Playgroud)

问题可能来自哪里,如何解决?

小智 6

如果您尝试从自己的服务器图像目录获取图像大小,base_path则可以使用url().'pathtoyourimage'.