PHP バージョン: v7.2.12グラフィック検証コードをロードできませんWordPress を使用して最近ウェブサイトを構築しました。
dockcer ミラーは: wordpress:4.9.8
wechat-social-loginプラグイン実装
WeChat、QQ、DingTalk、Githubを使用しました。ログイン時に、グラフィック認証コード機能をオンにした後、グラフィック QR コードをロードできないことを示します。
F12ステータス コードは 200 ですが、戻り値がありません。エラー
このリクエストには利用可能な応答データがありません。
##WordPress ログを開いた後、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
と freetype
のインストールが必要です。およびその他の依存関係については、phpinfo() の詳細情報を確認してください: gd 拡張機能には freetype がありません
:
phpinfo のメソッドを表示します()
Web サイトのルート ディレクトリに新しいファイル
php-info.php を作成します。内容は次のとおりです: <div class="code" style="position:relative; padding:0px; margin:0px;"><pre class="brush:php;toolbar:false"><?php phpinfo();</pre><div class="contentsignin">ログイン後にコピー</div></div></pre>
保存後、ドメイン名を使用して
などにアクセスすると、表示されます。 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 はエラーなしでコンパイルされました:
freetype と統合された新しいイメージを使用します
新しい画像を使用する 最後に、freetype が正常に統合されたことがわかります。
QRコードが正常に表示されたことがわかります。