この記事について
| 環境 | さくらレンタルサーバー、PHP、php-mecab |
|---|---|
| 目的 | php-mecabを使用しているページがFatal error(Class Mecab not found)になったのを直す |
| 結果 | mecabとphp-mecabを入れ直して解決 |
つまずきポイント要約
- さくら側でPHPのバージョンが勝手に変更されたのが原因だと思う
- 古いmecab/php-mecabのファイルは念のため削除してから入れ直す
- php-mecabインストール時のPHPバージョン指定は新しいバージョンに合わせる
- デフォルトのmecabより自前でlocal領域に入れたほうが解決しやすい
事象
php-mecab を使用してるページがエラーしか表示されなくなった。
表示されたエラー
Fatal error: Class 'Mecab' not found in /home/username/www/xxxx.html on line 20
原因
推測だが、さくらインターネットの PHP のバージョンが勝手に変更されたのが原因だと思う。phpinfo で mecab が表示されない。つまり、php-mecab が認識されていない。
対処
mecab および php-mecab を入れ直した。
入れ直し時に注意すること。
・mecab と php-mecab の古いファイルは念のため削除しておく。上書きされるかと思ったがうまくいかなかった。(これがうまくいかない原因だったかは不明)
・php-mecab のインストール時に php のバージョンを指定する箇所があるので新しいバージョンに合わせる。
・さくらにデフォルトインストールの mecab に問題があった場合解決が難しいので、自前の mecab を local 領域にいれて使用したほうが解決しやすい。(今回、デフォルト → 自前 に変更した)
