WordPressの勉強のために使っていないノートパソコンにMintLinuxを入れてローカルにウェブ環境を作ってみた。
WordPressを導入して無料のテーマCocoon、ルクセリタスを導入したら「サイトに技術的な問題が発生しています」とのエラーメッセージが表示されたので対処した。
何とか解決したので、自分用の備忘録として残しておくことにする。
ルクセリタスで発生した技術的な問題
サイトテーマでルクセリタスを有効にしてサイトを確認すると、投稿の一覧が表示されているはずが「サイトに技術的な問題が発生しています」の一文だけが表示されていた。
WordPressのエラーログを有効にして、エラー内容を確認してみると下記の内容。
PHP Fatal error: Uncaught Error: Call to undefined function mb_language()…
mb_language()とは
mb_language()とはphpで多言語を扱う関数でエラー内容としては、モジュールが存在しないために関数の呼び出しが失敗したというものだ。
phpinfoで確認してみても mbstring disabledと、多言語化が有効になっていないことがわかる。
解決方法
要は言語モジュールをインストールすればいいので、sshなどからLinux コンソールを下記のように操作する。
apt install php-mbstring
モジュールをインストールしただけではまだ不十分、php.iniからextention=mb_stringと記載されている部分を探しコメントアウトされていれば解除して、記載がなければ追記する必要がある。
php.iniを書き換えたら、apacheを再起動させて、サイトを確認すると問題なくルクセリタスで投稿が表示されていた。
Cocoonで発生した技術的な問題
ルクセリタスが正常に表示できたので、Cocoonも問題ないだろうと思ってインストールと有効化を実施したところ、またもや「サイトに技術的な問題が発生しています」と表示される。
さらに悪いことに、CocoonではWordpressの管理画面すら見られなくなってしまっていて、エラーログを確認すると下記の内容が記載されていた。
Fatal error: Uncaught Error: Call to undefined function curl_version()…
curl_version()とは
curl_version()とは、HTTPリクエストによりAPIなどの外部サイトの情報を取得するcURLモジュールのバージョンを返す関数。
Cocoonを利用するうえで、php7以上のcurlモジュールをインストールする必要があったということになる。
解決方法
今回使用しているphpのバージョンが7.3なので、php7.3-curlモジュールをインストールすればよいことになる。
sshなどからLinux コンソールを操作して下記のようにモジュールをインストールすればok。
apt install php7.3-curl
Linux コンソールからapacheを再起動させ、サイトを確認すると、Cocoonが問題なく表示された。
cURLを利用するにはphp.iniでextension=curlのコメントアウトを解除する必要があるが、コメントアウトしたままでもエラーはなくなりCocoonが利用できる状態になった。
まとめ
今回はlinuxを利用したローカル環境で生じたWordpressエラーに対処した。
ルクセリタスとCocoonいずれの問題も、phpモジュールの不足とphpの初期設定に問題があった。
作業環境が整備されているレンタルサーバーを利用する場合には、今回のような問題が起こることは考えづらい。
自分で立てたローカル環境での作業の場合には十分に起こり得るので、この記事が誰かの役に立てばいいとおもう。
コメント
pho.ini とは,php.ini でしょうか.
ご指摘ありがとうございます。
誤字でした。
誤)pho.ini
正)php.ini