Cocoonテーマに切り替えた時に発生したFatal Error。
画面が表示されなくなったところから、
切替前のテーマに戻す方法は前回ご紹介しました。
今回は、切り替えた時にFatal Errorが出ないようにし、
Cocoonを使えるようにする方法をご紹介したいと思います。
Fatal Errorの発生環境
本番環境(Ubuntu/Linode)で発生しました。
ローカル環境(XAMPP)や、
レンタルサーバー「ロリポップ!」では発生しません。
エラー内容
エラー文言
Fatal error: Uncaught Error: Call to undefined function curl_version() in [WordPressインストルディレクトリ]\wp-content\themes\cocoon-master\lib\open-graph.php:265 Stack trace: #0
open-graph.phpの265行目にあるcurl_version()という関数が定義されていないという意味です。
curl_version()は、PHPの関数で、
cURLのバージョンを確認するために使います。
cURLとは、
HTTPリクエストをすることにより、外部サイトの情報を取得することができる関数です。
このcURLが、サーバー上で準備されているかどうかで、
エラーが出るかどうかが変わるようです。
つまり、ローカル環境(XAMPP)やレンタルサーバー「ロリポップ!」にはインストールされていたけれど、
本番環境(Linode)にはなかったためとなります。
Fatal Errorが出ないよう、cURLをインストールしよう
管理者でサーバーにログインし、以下を実施します。
cURLインストール手順
①以下コマンドを実行し、cURLがインストールされているか確認する。
- php -m
確認結果
②以下コマンドを実行し、cURLをインストールする。
途中、パスワードを求められるので、入力し、Enterキーを押す。
その後、続けるかの確認が表示されるため、問題なければ「Y」キーを押す。
- sudo apt install php-curl
確認結果
③以下コマンドを実行し、Webサーバのapacheを再起動する。
- sudo service apache restart
確認結果
④以下コマンドを実行し、cURLがインストールされたことを確認する。
- php -m
インストール済みCocoonを削除しよう
インストールし、エラーが発生したときのCocoonは一度削除してから、再度インストール、有効化しましょう。
前回インストール時にエラーが発生していたため、
エラーが発生した段階で、後続の処理は停止している可能性があります。
# 実際、cURLをインストールした直後に、そのままCocoonを有効化した際、次のようなデータベースエラーが発生しました。
これは、cocoonの吹き出しや、ランキング等利用時に使われるデータベースが存在しないといったエラーです。
インストールをし直した後有効化した場合、このエラーは表示されなかったため、
再度これらデータベースは、cURLの処理後に、作成されていると思われます。
インストール済みテーマの削除手順
①外観>テーマの順にクリックする。
②Cocoon Childをクリックする。
③画面右下の「削除」をクリックする。
④テーマ一覧からCocoon Childが削除される。
⑤同様に、Cocoonを選択し、「削除」をクリックする。
Cocoonをインストールしよう
以下手順を参照し、Cocoonをインストールしましょう。
Cocoonを有効化しよう
では、インストールしなおしたCocoonを有効化しましょう。
Cocoon有効化手順
①Cocoon Childの「有効化」ボタンをクリックする。
②「新しいテーマを有効化しました」が表示されるので、「サイトを表示」をクリックする。
③Cocoonが適用されたサイトが表示される。
まとめ
いかがでしたでしょうか?
今回は環境依存のエラーだったため、そもそも対応不要といった方も多いと思います。
皆さんがお好みのテーマを使って、サイトを作れていますように✨
ご参考
~Cocoon有効時のFatal Errorを避けるために~
環境によってcURLがあるかどうかでエラーになるかどうかが決まっていることは上述しました。
突然エラーになるのを避けるために、
有効化前に、インストールしたCocoonのopen-graph.phpを変更しましょう。
対象ファイル:
変更箇所&内容:
※対象ファイルをダウンロードし、ATOMなどのテキストエディタで開いて編集してください。