wordpress 버전: wordpress: 버전 4.9.8wechat-social-login
插件实现QQ微信钉钉Github手机号登陆 wordpress版本:wordpress:4.9.8版本
php版本:v7.2.12
dockcer镜像为:wordpress:4.9.8图形验证码加载不出来
最近利用wordpress建站的时候,用到了
wechat-social-login
插件实现微信、QQ、钉钉、Github
登陆功能时,开启图形验证码功能后,看到图形二维码一直加载不出来,F12
看到状态码为200,但没有返回值,报错This request has no response data available
打开wordpress日志后,发现debug
日志文件中报以下的错误。开启debug日志方法请移步历史文章如何开启WordPress调试模式(报错提示),将日志打印到wp-content
目录下的debug.log
中。[08-Feb-2020 07:37:42 UTC] PHP Fatal error: Uncaught Error: Call to undefined function Gregwar\Captcha\imagettfbbox() in /var/www/html/wp-content/plugins/wechat-social-login/includes/captcha/CaptchaBuilder.php:327 Stack trace: #0 /var/www/html/wp-content/plugins/wechat-social-login/includes/captcha/CaptchaBuilder.php(440): Gregwar\Captcha\CaptchaBuilder->writePhrase(Resource id #7, '84sx', '/var/www/html/w...', 150, 40) #1 /var/www/html/wp-content/plugins/wechat-social-login/includes/social/class-xh-social-ajax.php(203): Gregwar\Captcha\CaptchaBuilder->build() #2 /var/www/html/wp-content/plugins/wechat-social-login/includes/social/class-xh-social-ajax.php(209): XH_Social_Ajax::{closure}() #3 /var/www/html/wp-includes/class-wp-hook.php(286): XH_Social_Ajax::captcha('') #4 /var/www/html/wp-includes/class-wp-hook.php(310): WP_Hook->apply_filters('', Array) #5 /var/www/html/wp-includes/plugin.php(453): WP_Hook->do_action(Array) #6 /var/www/html/wp-admin/admin-ajax.php(99): do_action('wp_ajax_xh_soci...') #7 {main} thrown in /var/www/html/wp-content/plugins/wechat-social-login/includes/captcha/CaptchaBuilder.php on line 327网站查询资料说:图形验证码功能需要安装
gd库
和freetype
等依赖,通过phpinfo()查看到详细信息里:gd扩展没有freetype
:查看phpinfo()的方法
在网站的根目录下新建一个
php-info.php
的文件,内容为:<?php phpinfo();保存后,用域名访问,如
dockcer 미러 버전: wordpress:4.9.8https://action.liabio.cn/php-info.php
php 버전: v7.2.12
그래픽 확인 코드를 로드할 수 없습니다
wordpress를 사용하여 최근 웹사이트에서 wechat-social- When login
플러그인이 WeChat, QQ, DingTalk, Github
의 로그인 기능을 구현한 후 그래픽 인증코드를 켜서 사용했습니다. 함수, 그래픽 QR 코드를 로드할 수 없습니다. F12
code>상태 코드가 200이지만 반환 값이 없고 오류가 보고됩니다. 이 요청에는 사용 가능한 응답 데이터가 없습니다 코드>
에 보고된 다음 오류를 발견했습니다. 디버그
로그 파일. 디버그 로그를 활성화하는 방법을 보려면 WordPress 디버깅 모드(오류 프롬프트)를 활성화하는 방법 기록 문서로 이동하여 wp-content
의 debug.log
에 로그를 인쇄하세요. > 디렉토리. FROM wordpress:4.9.8
RUN echo 'deb http://mirrors.163.com/debian/ stretch main contrib non-free\ndeb http://mirrors.163.com/debian/ stretch-updates main contrib non-free\ndeb http://mirrors.163.com/debian/ stretch-backports main contrib non-free' > /etc/apt/sources.list
RUN apt update \
&& apt install -y libwebp-dev libjpeg-dev libpng-dev libfreetype6-dev \
&& docker-php-source extract \
&& cd /usr/src/php/ext/gd \
&& docker-php-ext-configure gd --with-webp-dir=/usr/include/webp --with-jpeg-dir=/usr/include --with-png-dir=/usr/include --with-freetype-dir=/usr/include/freetype2 \
&& docker-php-ext-install gd \
&& php -m | grep gd
웹사이트 쿼리 정보에 따르면: 그래픽 확인 코드 기능을 사용하려면 gd 라이브러리
및 freetype , phpinfo()를 통해 자세한 정보를 확인하세요: <code>gd 확장 프로그램에는 freetype이 없습니다
:
phpinfo() 메소드 보기 at 웹사이트의 루트 디렉터리에 php-info.php
라는 새 파일을 생성하세요. 내용은 다음과 같습니다.
docker build -t wordpress-freetype:4.9.8 .
저장 후
https와 같은 도메인 이름으로 액세스하세요. //action.liabio.cn/php -info.php
를 보시면 됩니다. docker 컴파일 이미지Dockerfile 파일은 다음과 같습니다.
OCI runtime create failed: container_linux.go:346: starting container process caused "process_linux.go:319: getting the final child's pid from pipe caused \"EOF\"": unknown