目錄
圖形驗證碼載入不出來
看phpinfo()的方法
docker編譯映像
docker編譯映像報錯
使用整合了freetype的新映像
首頁 CMS教程 &#&按 圖文詳解wordpress用wechat-social-login外掛實現QQ微信釘釘Github手機號登陸

圖文詳解wordpress用wechat-social-login外掛實現QQ微信釘釘Github手機號登陸

Mar 24, 2021 pm 05:44 PM
golang

以下由WordPress教學專欄給大家介紹wordpress用wechat-social-login外掛實現QQ微信釘子Github手機號碼登陸方法,希望對需要的朋友有所幫助!

圖文詳解wordpress用wechat-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用wechat-social-login外掛實現QQ微信釘釘Github手機號登陸

圖文詳解wordpress用wechat-social-login外掛實現QQ微信釘釘Github手機號登陸
開啟wordpress日誌後,發現debug日誌檔案中回報以下的錯誤。開啟debug日誌方法請移步歷史文章如何開啟WordPress調試模式(報錯提示),將日誌印到wp-content目錄下的debug.log中。
圖文詳解wordpress用wechat-social-login外掛實現QQ微信釘釘Github手機號登陸

[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
圖文詳解wordpress用wechat-social-login外掛實現QQ微信釘釘Github手機號登陸

看phpinfo()的方法

在網站的根目錄下新建一個php-info.php的文件,內容為:

<?php phpinfo();

儲存後,用網域訪問,如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-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

#執行以下編譯指令:

docker build -t wordpress-freetype:4.9.8 .

結果編譯報錯。

docker編譯映像報錯

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

因為我使用的是19.03.5版本的docker,在網路上查了資料,大致意思是需要18版本的docker編譯才不會報錯。

果然,18版的docker編譯沒有報錯:
圖文詳解wordpress用wechat-social-login外掛實現QQ微信釘釘Github手機號登陸

使用整合了freetype的新映像

使用新映像之後,可以看到freetype成功整合。
圖文詳解wordpress用wechat-social-login外掛實現QQ微信釘釘Github手機號登陸
可以看到二維碼已經成功的顯示出來了。

圖文詳解wordpress用wechat-social-login外掛實現QQ微信釘釘Github手機號登陸

#

以上是圖文詳解wordpress用wechat-social-login外掛實現QQ微信釘釘Github手機號登陸的詳細內容。更多資訊請關注PHP中文網其他相關文章!

本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn

熱AI工具

Undress AI Tool

Undress AI Tool

免費脫衣圖片

Undresser.AI Undress

Undresser.AI Undress

人工智慧驅動的應用程序,用於創建逼真的裸體照片

AI Clothes Remover

AI Clothes Remover

用於從照片中去除衣服的線上人工智慧工具。

Clothoff.io

Clothoff.io

AI脫衣器

Video Face Swap

Video Face Swap

使用我們完全免費的人工智慧換臉工具,輕鬆在任何影片中換臉!

熱工具

記事本++7.3.1

記事本++7.3.1

好用且免費的程式碼編輯器

SublimeText3漢化版

SublimeText3漢化版

中文版,非常好用

禪工作室 13.0.1

禪工作室 13.0.1

強大的PHP整合開發環境

Dreamweaver CS6

Dreamweaver CS6

視覺化網頁開發工具

SublimeText3 Mac版

SublimeText3 Mac版

神級程式碼編輯軟體(SublimeText3)

熱門話題

PHP教程
1596
276
了解Web API的Golang和Python之間的性能差異 了解Web API的Golang和Python之間的性能差異 Jul 03, 2025 am 02:40 AM

Golangofferssuperiorperformance,nativeconcurrencyviagoroutines,andefficientresourceusage,makingitidealforhigh-traffic,low-latencyAPIs;2.Python,whileslowerduetointerpretationandtheGIL,provideseasierdevelopment,arichecosystem,andisbettersuitedforI/O-bo

內存足跡比較:在Golang和Python中運行相同的Web服務工作負載 內存足跡比較:在Golang和Python中運行相同的Web服務工作負載 Jul 03, 2025 am 02:32 AM

Gousessigantallymorythanpythanpythonwhenrunningwebservicesduetolanguigedesignesignandconcurrencymodeldifferences.1.go'sgoroutinesarelelightwithwithminimalstackoverhead,允許效率效率,使得十種

機器學習庫的狀態:Golang的產品與廣泛的Python生態系統 機器學習庫的狀態:Golang的產品與廣泛的Python生態系統 Jul 03, 2025 am 02:00 AM

Pythonisthedominantlanguageformachinelearningduetoitsmatureecosystem,whileGoofferslightweighttoolssuitedforspecificusecases.PythonexcelswithlibrarieslikeTensorFlow,PyTorch,Scikit-learn,andPandas,makingitidealforresearch,prototyping,anddeployment.Go,d

了解內存管理差異:Golang的GC與Python的參考計數 了解內存管理差異:Golang的GC與Python的參考計數 Jul 03, 2025 am 02:31 AM

Go和Python在內存管理上的核心差異在於垃圾回收機制不同。 Go使用並發標記清除(MarkandSweep)GC,自動運行並與程序邏輯並發執行,有效處理循環引用,適合高並發場景,但無法精確控制回收時間;而Python主要依賴引用計數,對象引用歸零即刻釋放,優點是即時回收且實現簡單,但存在循環引用問題,需借助gc模塊輔助清理。實際開發中,Go更適合高性能服務端程序,Python則適用於腳本類或性能要求不高的應用。

Golang指針指向接口說明 Golang指針指向接口說明 Jul 21, 2025 am 03:14 AM

接口不是指針類型,它包含動態類型和值兩個指針。 1.接口變量內部保存具體類型的類型描述符和數據指針;2.將指針賦值給接口時存儲的是指針的拷貝,接口本身不是指針類型;3.接口是否為nil需同時判斷類型和值;4.方法接收者為指針時只有指針類型能實現接口;5.實際開發中需注意接口的值副本和指針傳遞區別。理解這些能避免運行時錯誤並提升代碼安全性。

比較標準庫:Golang和Python之間的關鍵差異 比較標準庫:Golang和Python之間的關鍵差異 Jul 03, 2025 am 02:29 AM

Golang和Python的标准库在设计哲学、性能与并发支持、开发者体验及Web开发能力等方面存在显著差异。1.设计哲学上,Go强调简洁与一致性,提供少量但高效的包;而Python遵循“自带电池”理念,提供丰富模块以增强灵活性。2.在性能和并发方面,Go原生支持协程和通道,适合高并发场景;Python受限于GIL,多线程无法实现真正并行,需依赖更重的多进程模块。3.开发者体验方面,Go工具链强制代码格式化和规范导入,提升团队协作一致性;Python提供更多自由度但也易导致风格混乱。4.Web开发

將Python Web應用程序遷移到Golang Microservices架構 將Python Web應用程序遷移到Golang Microservices架構 Jul 03, 2025 am 01:53 AM

遷移至Golang微服務架構的核心在於明確服務邊界、選擇通信模式、管理數據流並優化部署監控。首先,通過識別業務邏輯邊界如用戶管理、支付等模塊來定義獨立服務,並遵循高內聚低耦合及領域驅動設計原則;其次,根據需求選擇REST、gRPC或消息隊列作為通信方式,例如使用事件異步通知替代直接調用;接著,各服務獨立管理數據庫並通過API或事件交換數據,採用CQRS或Saga處理分佈式事務;最後,利用Docker容器化與Kubernetes編排部署服務,結合日誌、指標和追踪工具實現全面可觀測性。

如何在Golang中運行shell命令 如何在Golang中運行shell命令 Jul 07, 2025 am 12:47 AM

在Go語言中執行Shell命令可通過標準庫os/exec實現,基本方法是使用exec.Command()創建命令對象並調用Output()獲取結果;1.執行簡單命令時創建命令對像後調用Output()即可獲取輸出;2.需要實時輸出時應使用StdoutPipe和StderrPipe配合goroutine邊執行邊打印;3.對於包含管道或重定向的複雜命令,可交由/bin/sh-c解析處理;4.安全方面避免拼接用戶輸入,建議傳遞參數列表;5.控制命令後台運行可通過Start()和Wait()組合實現;此

See all articles