WordPressプラグインの開発で発生し易いエラーと対処方法

WordPress

WordPressプラグインを開発していく中で、何かしらエラーが発生して悩んでしまう場合があるかと思います。
特にWordPressプラグインの開発を始めたばかりの人の場合、ハマって場合もあります。


そんな人むけに、WordPressプラグインの開発を始めたばかりの人がハマりやすいエラーについて、原因と対処方法を説明します。


環境情報


  • WordPress 5.4.1

文字化け


一番最初に陥り易いエラーです。


WordPressのダッシュボードで、開発しているプラグインの説明分が文字化けしてしまう場合があります。


WordPressプラグインの有効化の時に文字化け

文字化けしてしまう原因は文字コードです。
WordPressの文字コードは「UTF-8」なのですが、開発しているプラグインのPHPファイルが他の文字コードになっている事が原因です。


PHPファイルの文字コードを「UTF-8」に変更して保存すれば、文字化けは解消されます。


WordPressプラグインの有効化の時に文字化けの解消

プラグインの有効化中に”N”文字の予期しない出力が生成されました


プラグインの有効化をおこなうタイミングで発生するエラーになります。
これは、PHPプログラムの先頭、もしくは、末尾に、余計な改行や空白が存在する場合に発生します。


WordPressプラグインの余分な改行

PHPプログラムの先頭や末尾には、余分な改行や空白は不要になります。
以下のように、末尾位置と改行位置は一致する必要があります。


WordPressプラグインの先頭
WordPressプラグインの末尾

重大なエラーを引き起こしたため、プラグインを有効化できませんでした


プラグインの有効化をおこなったタイミングでPHPファイルに文法エラーが存在すると、有効化に失敗します。


WordPressプラグインの有効化時syntaxエラー

通常のPHPエラーがダッシュボードに表示されているだけなので、エラー内容を確認した上で対処すればよいです。


上記サンプルのエラーでは、「;」(セミコロン)の記載をおこなっていないので、PHPのパースに失敗しています。
通常のPHPと同様に、エラー発生箇所に対して「;」を記載して、再度プラグイン有効化すれば正常に有効化がおこなわれます。


EclipseでTomcat起動タイムアウトし、起動しない原因と対処方法

Tomcat起動タイムアウトエラー

EclipseでTomcatを使ったWEBアプリケーションの開発をおこなう際、いきなりTomcatが起動しなくなった場合の対処方を紹介します。
今回紹介するのは、Tomcat起動でタイムアウトが発生した場合の対処方法です。


Tomcat起動でタイムアウトした場合は、設定を変更することで事象が解消されることがほとんどです。


EclipseでのTomcat起動時に起動タイムアウトが発生すると、以下のようなメッセージが表示されます。


一概には言えませんが、紹介する2つの方法のどちらかで対処可能なことが多いです。


環境情報


  • Eclipse:Luna Service Release2(4.4.2)
  • WEBサーバ:Tomcat8.5

タイムアウト値を変更する


まずは、単純にタイムアウト値を変更する方法です。
WEBサーバに配置するアプリケーション自体が大きくなってくれるとTomcatへの展開に時間が掛かってしまい、タイムアウトが発生することがあります。


タイムアウト値の変更方法は以下になります。


まず、Eclipse上のコンソールビューでサーバタブを選択し、「ローカルホストのTomcat v8.0のサーバ」をダブルクリックし、Tomcatの設定ウィンドウをひらきます。



Tomcatの設定ウィンドウにおいて、タイムアウトに関する設定が存在するので、このタイムアウト値を変更することで、Tomcat起動時のタイムアウト値を変更することができます。



割当メモリを変更する


タイムアウト値を長めに変更してもTomcat起動時にタイムアウトの問題が発生する場合は、Tomcatに割り当てられているメモリが少ない事が原因で起動に失敗している可能性があります。
その場合は、メモリの設定を見直してみましょう。


メモリの設定方法は以下になります。
タイムアウト値の変更で使用したTomcatの設定ウィンドウで、一般情報の「起動構成を開く」を選択します。



起動構成プロパティーの編集において、引数タブを押下し、VM引数の設定ウィンドウをひらきます。



VM引数の設定ウィンドウにおいて、末尾に以下の文字列を追加します。

起動時メモリの設定になります。


-Xmx1024M -Xms521M -Djava.awt.headless=true

 

-Xmx

ヒープ全体の最大値

-Xms

ヒープ全体の最小値

-Djava.awt.headles

headlessモードの設定


一番最後の「-Djava.awt.headless」は、メモリの設定とはちょっと違いますが、trueにしておいた方が無難です。
特にGUI環境が無いLinuxサーバでTomcatを動かす場合、この設定がないとエラーになることがあるようです。
なので、常にtrueを設定しておいた方がいいです。


まとめ


EclipseでのTomcat起動タイムアウトは現認が解り辛いです。
しかし、紹介した2つの方法のいずれかで解決することが多いです。


Tomccat起動タイムアウトになった際の見直しポイント
  • タイムアウト値を単純に伸ばそう
  • メモリの設定を見直そう