KnowledgeTree 3.5.2cから3.5.3へアップグレード(2)

KnowledgeTree 3.5.2cから3.5.3へアップグレード(1) : Imai blog の続きです。

  • ファイル修正
    • lib/email/Email.inc改造
      3.5.2c時同様、phpのMail()が使用できるように改造。
    • bin/luceneserver/KnowledgeTreeIndexer.properties修正
      3.5.2c時同様修正。3.5.2c時はなぜindexer.directoryの階層がずれているのかわからなかったのですが、この階層はstack installしたときのディレクトリ構成ですね。
    • bin/scheduler.php修正
      これは前回なかった修正です。3.5.2cから3.5.3の間に追加されたコードで、OSがWindowsでなくscheduler.phpを起動したユーザがrootであれば、var/以下のユーザ.グループを、nobody.rootに変えてしまうというものです。
      CentOS 5のパッケージではhttpdはapache.apacheで動いてます。indexerを試そうとコマンドラインからbin/scheduler.phpを起動したら、その後ブラウザからアクセスしてもログ書き込みができないので全てエラーになりました。一切何もできなくなってしまい、はじめは原因がわからずかなりあせりました。
      なぜ、こんなユーザ.グループが使われているのかと考えると、これもstack installに合わせた設定のようです。それにしてもここにユーザ.グループがハードコーディングされているのは、ちょっと雑な作りですね。
      スケジューラが起動されるたびにユーザ.グループを書き直す必要もないと考え、ばっさりコメントアウトしました。

diff -cr ../knowledgeTree-STABLE-OSS.orig/lib/email/Email.inc ./lib/email/Email.inc
*** ../knowledgeTree-STABLE-OSS.orig/lib/email/Email.inc        Sat Aug 16 00:11:36 2008
--- ./lib/email/Email.inc      Wed Sep 24 16:59:43 2008
***************
*** 36,41 ****
--- 36,42 ----
   * copyright notice.
   * Contributor( s): ______________________________________
   */
+ /* Modified by imai at Glatts, inc. for support PHP mail(). '08.6.11 */

  class Email {

***************
*** 58,65 ****
          $this->oMailer = new phpmailer();
        $this->oMailer->Encoding = 'base64';
        $this->oMailer->CharSet = 'utf-8';
!         $this->oMailer->isSMTP();
!         $this->oMailer->Host = $default->emailServer;
          $this->oMailer->From = (strlen($sFromEmail) == 0) ? $default->emailFrom : $sFromEmail;
          $this->oMailer->FromName = (strlen($sFromName) == 0) ? $default->emailFromName : $sFromName;
          $this->oMailer->WordWrap = 100;
--- 59,73 ----
          $this->oMailer = new phpmailer();
        $this->oMailer->Encoding = 'base64';
        $this->oMailer->CharSet = 'utf-8';
!
!         /* Modified by imai at Glatts, inc. '08.6.11 */
!         if($default->emailServer == 'PHP') {
!             $this->oMailer->IsMail();
!         } else {
!             $this->oMailer->IsSMTP();
!             $this->oMailer->Host = $default->emailServer;
!         }
!
          $this->oMailer->From = (strlen($sFromEmail) == 0) ? $default->emailFrom : $sFromEmail;
          $this->oMailer->FromName = (strlen($sFromName) == 0) ? $default->emailFromName : $sFromName;
          $this->oMailer->WordWrap = 100;
***************
*** 76,94 ****
              $this->bEmailDisabled = true;
          }

!       $sEmailPort = $oConfig->get('email/emailPort');
!       if(!empty($sEmailPort)) {
!           $this->oMailer->Port = (int) $sEmailPort;
!       }
!
!       $bEmailAuth = $oConfig->get('email/emailAuthentication');
!       if($bEmailAuth) {
!           $sEmailUser = $oConfig->get('email/emailUsername');
!           $sEmailPass = $oConfig->get('email/emailPassword');
!           $this->oMailer->SMTPAuth = true;
!           $this->oMailer->Username = $sEmailUser;
!           $this->oMailer->Password = $sEmailPass;
!       }
      }

      /**
--- 84,105 ----
              $this->bEmailDisabled = true;
          }

!         /* Modified by imai at Glatts, inc. '08.6.11 */
!         if($default->emailServer != 'PHP') {
!           $sEmailPort = $oConfig->get('email/emailPort');
!           if(!empty($sEmailPort)) {
!               $this->oMailer->Port = (int) $sEmailPort;
!           }
!
!           $bEmailAuth = $oConfig->get('email/emailAuthentication');
!           if($bEmailAuth) {
!               $sEmailUser = $oConfig->get('email/emailUsername');
!               $sEmailPass = $oConfig->get('email/emailPassword');
!               $this->oMailer->SMTPAuth = true;
!               $this->oMailer->Username = $sEmailUser;
!               $this->oMailer->Password = $sEmailPass;
!           }
!         }
      }

      /**
diff -cr ../knowledgeTree-STABLE-OSS.orig/bin/luceneserver/KnowledgeTreeIndexer.properties ./bin/luceneserver/KnowledgeTreeIndexer.properties
*** ../knowledgeTree-STABLE-OSS.orig/bin/luceneserver/KnowledgeTreeIndexer.properties   Sat Aug 16 00:11:36 2008
--- ./bin/luceneserver/KnowledgeTreeIndexer.properties Wed Sep 24 16:35:06 2008
***************
*** 1,4 ****
  server.port=8875
  server.paranoid=true
! server.accept=127.0.0.1,192.168.1.1
! indexer.directory=../../../var/indexes
--- 1,4 ----
  server.port=8875
  server.paranoid=true
! server.accept=127.0.0.1
! indexer.directory=../../var/indexes
diff -cr ../knowledgeTree-STABLE-OSS.orig/bin/scheduler.php ./bin/scheduler.php
*** ../knowledgeTree-STABLE-OSS.orig/bin/scheduler.php  Sat Aug 16 00:11:36 2008
--- ./bin/scheduler.php        Wed Sep 24 22:56:30 2008
***************
*** 52,67 ****
  }

  // If this is *nix and we are root then make sure file permisions are correct
! if(!OS_WINDOWS && (get_current_user() == 'root'))
! {
!     // The log files...
!     try {
!         $default->log->debug( 'Scheduler: setting owner to nobody on - '.$default->logDirectory);
!         exec('chown -R nobody:0 '.escapeshellcmd($default->logDirectory));
!     } catch(Exception $e) {
!         $default->log->debug('Scheduler: can\'t set owner to nobody - '.$e);
!     }
! }

  /* ** Set up functions ** */

--- 52,67 ----
  }

  // If this is *nix and we are root then make sure file permisions are correct
! // if(!OS_WINDOWS && (get_current_user() == 'root'))
! // {
! //     // The log files...
! //     try {
! //         $default->log->debug( 'Scheduler: setting owner to nobody on - '.$default->logDirectory);
! //         exec('chown -R nobody:0 '.escapeshellcmd($default->logDirectory));
! //     } catch(Exception $e) {
! //         $default->log->debug('Scheduler: can\'t set owner to nobody - '.$e);
! //     }
! // }

  /* ** Set up functions ** */

(つづく)

コメントを残す

メールアドレスが公開されることはありません。 * が付いている欄は必須項目です

CAPTCHA