[PHP] OpenPNEをWebARENA SuitePROに導入してつまずいた件

  • このエントリーをはてなブックマークに追加

SNSサイトを構築する案件でオープンソースのOpenPNEを会社で契約しているWebARENA SuitePROのVPNサーバに導入した。
その際につまずいた内容をちょっとメモ。


まず、自分が手をつける前に他の社内の者がインストール作業を完了していました。
…が、管理画面に入れない…。
インストール作業を担当した者に尋ねると、管理画面のログインは試して無いと言いました。
インスール完了してないじゃないか…
担当した者はアルバイトで、いわゆる非常勤なので代わりに自分が何とかすることになりました。
さて、環境の状態ですが、

  • CentOS 4.5
  • Apache 2.0.59
  • PHP 5.1.6
  • MySQL 5.0.48

とりあえず、正しいIDとパスワードで管理画面にログインしてみます。
すると管理画面に移行せずに、元の画面に戻ってきてしまいます。
次にわざと登録されていないIDを使ってみます。
元の画面に戻ってきますが、ちゃんと警告表示が出ます。
どうやらユーザ認証はうまく動いているようです。

今度はソースを追っていきました。
全部index.phpから次々と分岐していくので軌跡を追うのが大変でした。
どうやらセッションデータの引継ぎがうまくいっておらず、リダイレクト後に認証情報が消えてしまっているようです。
phpinfoの情報を確認しました。なんかregister_globalsがOnになってたり危ない箇所がいくらかあったので、その辺は.htaccessでマシな設定にしておきました。
怪しいところは適当に弄ってみましたが挙動は変わりませんでした。
少しグーグル先生に助けてもらいました。

酔生夢死: PHP続き。

どうやらsession_auto_startがOnだとまずいようです。
早速Offに変更してみたところすんなりクリア。
親切なインストールガイドが無いからこんなことで突っかかってしまうんですな。
というか、.htaccessは標準で付属してほしいのですが。

それから順調に動いているかのように見えましたが、ここでトラブル発生。
デザインの画像がアップロードされません。アップロードすると何も表示されず、真っ白な画面になります。
エラーも吐かれないので原因がわかりません。またソースコードを追う羽目になりました。

…ようやくたどり着いた先はwebapp/lib/db/image.phpにあるdb_image_insert_c_image2関数でした。
その中に以下のようなコードがありました。

[php]
// 画像かどうかのチェック
if (!@imagecreatefromstring($image_data)) return false;
[/php]

どうやらここで死んでいるようです。@でエラー表示が抑制されているので試しにとってみました。
でた、Undefined functionです。imagecreatefromstringが定義されていないことが分かりました。
つまりGDがインストールされていないことになります。

phpinfoで確認してみると案の定GDが見当たりませんでした。
早速インストール。
yumを使ってインストールするのですが、CentOS4.5ではPHP5のパッケージはcentosplusリポジトリにあります。
デフォルトでは無効になっているので、有効にしてインストールします。

yum --enablerepo=centosplus install php-gd

これでGDのインストールも完了し、正常動作しましたとさ。

それにしても、OpenPNE公式コミュニティも招待されるには問い合わせをしないといけないのですが、招待希望なのに問い合わせ内容必須って何?

  • このエントリーをはてなブックマークに追加

SNSでもご購読できます。




コメントを残す