下面由WordPress教程欄目給大家介紹wordpress怎么實(shí)現(xiàn)QQ微信釘釘Github手機(jī)號(hào)登陸,希望對(duì)需要的朋友有所幫助!
wordpress版本:wordpress:4.9.8版本
php版本:v7.2.12
dockcer鏡像為:wordpress:4.9.8
圖形驗(yàn)證碼加載不出來(lái)
最近利用wordpress建站的時(shí)候,用到了wechat-social-login
插件實(shí)現(xiàn)微信、QQ、釘釘、Github
登陸功能時(shí),開(kāi)啟圖形驗(yàn)證碼功能后,看到圖形二維碼一直加載不出來(lái),F12
看到狀態(tài)碼為200,但沒(méi)有返回值,報(bào)錯(cuò)This request has no response data available
打開(kāi)wordpress日志后,發(fā)現(xiàn)debug
日志文件中報(bào)以下的錯(cuò)誤。開(kāi)啟debug日志方法請(qǐng)移步歷史文章如何開(kāi)啟WordPress調(diào)試模式(報(bào)錯(cuò)提示),將日志打印到wp-content
目錄下的debug.log
中。
[08-Feb-2020 07:37:42 UTC] PHP Fatal error: Uncaught Error: Call to undefined function GregwarCaptchaimagettfbbox() 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): GregwarCaptchaCaptchaBuilder->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): GregwarCaptchaCaptchaBuilder->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
網(wǎng)站查詢(xún)資料說(shuō):圖形驗(yàn)證碼功能需要安裝gd庫(kù)
和freetype
等依賴(lài),通過(guò)phpinfo()查看到詳細(xì)信息里:gd擴(kuò)展沒(méi)有freetype
:
查看phpinfo()的方法
在網(wǎng)站的根目錄下新建一個(gè)php-info.php
的文件,內(nèi)容為:
<?php phpinfo();
保存后,用域名訪(fǎng)問(wèn),如https://action.liabio.cn/php-info.php
,即可看到。
docker編譯鏡像
Dockerfile文件如下:
FROM wordpress:4.9.8 RUN echo 'deb http://mirrors.163.com/debian/ stretch main contrib non-freendeb http://mirrors.163.com/debian/ stretch-updates main contrib non-freendeb 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
執(zhí)行以下編譯命令:
docker build -t wordpress-freetype:4.9.8 .
結(jié)果編譯報(bào)錯(cuò)。
docker編譯鏡像報(bào)錯(cuò)
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
因?yàn)槲沂褂玫氖?9.03.5版本的docker,在網(wǎng)上查了資料,大致意思是需要18版本的docker編譯才不會(huì)報(bào)錯(cuò)。
果然,18版本的docker編譯沒(méi)有報(bào)錯(cuò):
使用集成了freetype的新鏡像
使用新鏡像后,可以看到freetype成功集成。
可以看到二維碼已經(jīng)成功的顯示出來(lái)了。