- 締切済み
OpenPNEのインストールでエラーが出る(linux)
OpenPNEのインストールでエラーが出る(linux) OpenPNE3を使用したいと思い、インストールを試みているのですが、 どうしてもうまくいかず、自力ではギブアップなので どなたか詳しい方がおられましたら、ご教授お願いします。 よろしくお願いします。 問題は、OpenPNE3のtarをダウンロードして展開してiniファイルをコピーした後、 symfonyを使って、 ./symfony openpne:install とやると (フルパス指定でも同じでした) chmod 777 /(パス)/OpenPNE3/web/cache と表示された次の行で、 Fatal error: Call to undefined function mb_internal_encoding() in /home/(ユーザー名)/OpenPNE3/lib/config/sfOpenPNEApplicationConfiguration.class.php on line 24 と表示され、終わってしまいます。 インストールを試みてるOpnePNEはOpenPNE3.0.8 とOpenPNE3.2.6 なんですが、どちらも別々にインストールを 試みたのですが、全く同じエラー(上の)が発生してダメでした。 環境は、2年前後前にインストールしたCentOS4に、Apache2.0.52 が入ってたいたところへ 今回、OpenPNE3を入れるにあたり、MySQLもPHPもどちらもバージョンが低過ぎたので、 MySQL5.0.91とPHP5.2.13を入れ、phpMyAdminを入れ とここまではなんとか、ネットを検索した情報だけでなんとかなったのですが、(かなり苦労しましたが) 肝心のOpenPNE3はかなり長い時間(期間)ネットの検索を使って試行錯誤したのですが、行き詰まってしまいました。 かなりいろいろ試行錯誤したので、記憶が無くなってる部分もありますが、 以下、関係がありそうな行動と結果を記憶の限り書きます。 /sfOpenPNEApplicationConfiguration.class.phpの24行には 「mb_internal_encoding('UTF-8);」 という記述があるのですが、test.phpに <?php echo mb_internal_encoding();?> というのを書き、ブラウザからアクセスしたところ エラーは出ず、「EUC-JP」と表示されました。 phpinfo();の表示内容の中のmbstring関係は あまり意味は分からないのですが、多少php.iniの[mbstring]の部分を いじくったりしてみたのですが、エラーには全く影響しなかったので、 たぶん問題無いのではないと思うのですが…分かりません。 mbstring.http_output はUTF-8 に Multibyte string engine はlibmbfl に なっています。 ちなみに、mbstringはphpizeで後から追加してます。 そのため、php.iniでのモジュールの指定がいい加減になっていて どのファイルを指定すればいいのか正しいのか自信がありません。 また、このエラーが出る前、(古いバージョンでインストールを試みた時のが 残っているのですが)そのディレクトリにアクセスした時のApacheのerror_logの内容は PHP Fatal error: Class 'BaseMember' not found in /home/(パス)/OpenPNE3/lib/model/Member.php on line 18 となっています。 Apache起動時のerror_logには PHP Warning: Module 'mbstring' already loaded in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library というものが記録されています。 他にもネットでPHPとmbstring関係のエラーに関するところをいろいろ見て かなりいろいろ試してみたのですが、全く症状(エラー)に変化が見られなかったもので、 どんな事をやったのかほとんど忘れてしまいました。。 これ以上長くなると、読んでいただける方が減ってしまうと思いますので、 その意味でも省略させてください。 ただ、./symfony openpne:install 数十回は試したと思います。 長くなりまして申し訳ありません。読んでいただきありがとうございます。 何かアドバイスありましたらよろしくお願い致しますm(__)
- みんなの回答 (2)
- 専門家の回答
みんなの回答
- memphis
- ベストアンサー率40% (975/2395)
>mbstringはphpizeで後から追加してます。 上の作業が原因では? php.iniと環境変数をよく確認して適切に設定すれば解決すると思います。 私なら、apache,php,mysqlを全て最初の状態に戻してから作業をやり直します。
symfony が見ている PHP と、Web サーバに組み込まれた PHP モジュールは別のものではないですか。 Web サーバを介して得られる情報と、CLI で "php -i" と入力して得られる情報を比較してください。 おそらく CLI での結果には「mbstring」項目が存在しないのではないでしょうか。
補足
回答ありがとうございます!! "php -i"で確認してみたところ、確かにおっしゃる通り、 その中に「mbstring」の項目がありませんでした!! つまり、symfonyを使う時には、mbstringが無効になっていたということでしょうか。 どうすれば、symfonyを使う時に、mbstringを有効にさせればいいのでしょうか。 調べるためのヒントやポインタだけでも結構ですので、教えていただければ幸いです。 php.iniファイル自体はシステムの中に一つしか存在していないようでしたので、 試しに php -c /etc/php.ini symfony openpne:install とやって実行してみたところ、 今までさんざん出ていた場所でのmb_string_encoding()のエラーが出なくなりました!!! しかし、他のエラーが出てしまって( 2002エラーで、MySQLサーバーに指定のソケットで 接続出来ないという)、インストール完了というワケにはいきませんでした。 おそらく、2002エラーのソケットの指定と、今回のphp自体の設定の問題は別問題なのだろうとは 思うのですが、これだけエラーが頻出すると、 おそらく根本的に何かが間違ってる(OS回りの環境が古すぎる?)と思ってしまうので、 簡単にはインストール出来ないことは覚悟しないといけない事が分かってきました。 回答ありがとうございました!! 確実に1歩前進することが出来まして、行き詰まってたところに一つの確実な穴が空いた気がします PS 参考URLは一応、全体的に読んでみたのですが、今回の問題の直接の答えになるような場所が 見つけられませんでした。 正直言って、php自体に関しては知識がほとんど無い(実戦0)ので、一番根本的な問題は、phpに対する 無知のような気がして反省しています。
お礼
回答ありがとうございます!! たしかに、それが原因の可能性も高いと思い、 phpをconfigureオプションを徹底的に吟味して、慎重に再インストールしてみました。 その結果、OpenPNE3インストーラの挙動には変化は見られなかったのですが phpMyAdminの方で出ていた警告(という不具合)が一気に全部解消され 再インストールした甲斐はあったかな、と思いました。 mysqlも再インストールした方がいいのかな、とも思うのですが、 多少既に(OpenPNE2の)データベースとして使っているので、 どうすればデータを消さずに再インストール出来るか、というのが 自分の力ではなかなか難しそうなので、 とりあえずはmy.cnfの設定でなんとか乗り切れないかなと思っています。 あと、関係無い話ですが、OpenPNE2の方で出ていた不具合は Apacheのhttpd.confのユーザーディレクトリのディレクティブでの AllowOverride がごちゃごちゃしてたのが問題だったみたいで 「AllowOverride All」と指定してやったところOpenPNE2の不具合は消え 完動するようになりました。 回答ありがとうございました