2005年6月アーカイブ

MySQL

| | コメント(0) | トラックバック(0)| Edit
cactiって言うツールが、面白そうなのでインストールすることにする。
んが、このcacti君がMySQLを要求するので、まずはMySQLを動かさないといけない。
もともと、bugzzilla用とかでインストールはしてあったのだけれど、良くわからないので杜撰な状態だったので、ちょっと整理する。

まずは、インストール。portsから、databases/mysql41-serverをインストールする。
特にオプションは必要ない。
いつものように/etc/rc.confにmysqlのことを追加して、/usr/local/etc/rc.d/mysql-server.sh start で起動する。
・・・と、その前に、mysqlはlocalhostからしか使わないので、外部からの接続をはじくように設定する。
portsのデフォルトだと、mysqlのデータベースは /var/db/mysql にできるので、ここにmy.cnfを置く。
このディレクトリにはサンプルがないので、/usr/local/share/mysql から適当なファイルをコピーしてくる。今回は、my-small.cnf をコピーした。
localhostからだけ繋げるように、my.cnf の[mysqld]セクションに、以下を追加する。
bind-address = 127.0.0.1
もっとまじめなアクセスコントロールについては、きちんとマニュアルを読む必要がある。
後は、root のmysqlアカウントにパスワードを設定する。(あ、mysqlは起動してからね)
# mysql
mysql> set password for root@localhost = password('パスワード');
これで、rootにパスワードが設定される。次からは、mysqlを -p オプションつきで起動すれば、パスワードを聞いてくるようになる。

cacti

| | コメント(0) | トラックバック(0)| Edit
と、言うわけでいよいよcactiです。(しかし、口調が安定しないなあ)
まずは、rrdtoolをインストール。これはports一発。
続いて、cactiをインストール。これもportsから一発。
続いて、MySQLにcactiのデータベースを作る。
# mysqladmin --user=root create cacti
# mysql
mysql> GRANT ALL ON cacti.* TO cactiuser at localhost IDENTIFIED BY 'cactiuser';
mysql> FLUSH PRIVILEGES;
# mysql cacti < /usr/local/share/cacti/cacti.sql
/usr/local/share/cacti/include/config.phpを修正し、DB名、ユーザ名、パスワードを今作成したものに合わせる。
続いて、/etc/crontabに以下を追加。
*/5 * * * * cacti /usr/local/bin/php /usr/local/share/cacti/poller.php > /dev/null 2>&1
ここまで、portsのインストール時に出る手順の通り。(実は、MySQLのrootのパスワードがわからなくてはまり、MySQLをインストールしなおしたのは秘密だ)
続いて、httpd.confでAliasを切る代わりに、/usr/local/share/cactiから自分のhtdocsの適当な場所にリンクを貼る。
(これだと、/usr/local/share/cactiにログやrrdtoolのデータが置かれてtripwireがうるさいので、/var/local/cactiも作って/usr/local/share/cactiの下のlogとrraの二つのディレクトリを/var/local/cactiに逃がす。)
いよいよ、ブラウザを使ってcactiにアクセス。admin/adminでログインすると、パスワードの変更を要求される。
その後、初期設定をして先に進もうとすると、HTTP 405 のエラーが出る。POSTが認められないとかなんとか。apacheのログを見ると、
[error] SSL Re-negotiation in conjunction with POST method not supported! hint: try SSLOptions +OptRenegotiate
なんてエラーが出ている。良くわからないけど、ssl.confのSSLOptionsに追加してみると、先に進めた。
後は、画面に従っていろいろ設定したら、今まで使っていたMRTGよりも良い感じです。
んが、動作がもっさりしている・・・。そろそろPen2 400の限界かしらん?
courier-imapのバージョンを、3.0.8から4.0.3にバージョンアップ。
このバージョンアップで、/etc/rc.confに書く名前が変わったらしく、imapd-sslが起動しなくなる。
いつものこと、と思いつつ/etc/rc.confを直して、メーラから繋いで見る・・・。
繋がりません~(泣)
あれ~?と思いつつ、調べてみると、authdaemondが別の起動スクリプトになってる。
で、それも/etc/rc.confに追加して、authdaemondを起動。
・・・って起動しない!
たーくんずろぐによれば、バージョンアップの手順に問題があるようだ。
そこで、courier-authlibをdeinstall/reinstallして、無事にcourierloggerが入る。
・・・まだ繋がらない(泣)
/var/log/maillogを見ると、authdaemondのモジュールが一つもロードできてない。
authuserdbを使っていたはずなのだが・・・。
結局、courier-authlibとcourier-authlib-baseのMakefileを一生懸命読んで再インストールをしても駄目で、取った策が以下。(正しいやりかたはどうだったんだろう・・・)
  1. /usr/ports/security/courier-authlib-base を courier-authlib-userdbにコピー
  2. /usr/ports/security/courier-authlib-userdb/MakefileのPKGNAMESUFFIXを-userdbに変更
  3. make install
これで、なんとかまたメールが読めるようになりました。
/usr/ports/security/courier-authlib で make config ってやると、選択画面は出るんだけどねえ・・・。
apacheのエラーログに、以下のエラーメッセージが延々出てる。
[error] Subroutine MT::Template::Context::add_global_filter redefined at /mt/extlib/bradchoate/postproc.pm line 22.
[error] Subroutine MT::Template::Context::post_process_handler redefined at /mt/extlib/bradchoate/postproc.pm line 41.
これだと、本当の問題がわからないので、対策することに。
googleとかで調べたけど、同じエラーはひっかかるけど対策が良くわからない。(英語力が・・・)
mt/lib/MT/Template/Context.pmとmt/extlib/bradchoate/postproc.pmを修正する。
*** Context.pm.ORIG Sat Jun 25 16:07:31 2005
--- Context.pm  Sat Jun 25 16:03:28 2005
***************
*** 46,56 ****
          }
      }, is_container => 1 };
  }
! sub add_global_filter {
!     my $class = shift;
!     my($name, $code) = @_;
!     $Global_filters{$name} = $code;
! }

  sub new {
      my $class = shift;
--- 46,57 ----
          }
      }, is_container => 1 };
  }
!
! #sub add_global_filter {
! #    my $class = shift;
! #    my($name, $code) = @_;
! #    $Global_filters{$name} = $code;
! #}

  sub new {
      my $class = shift;
***************
*** 225,231 ****
      $_[0]->{'sanitize'} = 1 unless exists $_[0]->{'sanitize'};
  }

! sub post_process_handler {
      sub {
          my($ctx, $args, $str) = @_;
          if ($args) {
--- 226,232 ----
      $_[0]->{'sanitize'} = 1 unless exists $_[0]->{'sanitize'};
  }

! sub mt_post_process_handler {
      sub {
          my($ctx, $args, $str) = @_;
          if ($args) {
*** postproc.pm.ORIG   Sat Jun 25 16:08:36 2005
--- postproc.pm Sat Jun 25 16:03:34 2005
***************
*** 37,43 ****
  sub _set_custom_post_process_handler {
    require MT::Template::Context;

!   $mt_post_process_handler = MT::Template::Context::post_process_handler();
    *MT::Template::Context::post_process_handler = \&custom_post_process_handler
;
  }

--- 37,43 ----
  sub _set_custom_post_process_handler {
    require MT::Template::Context;

!   $mt_post_process_handler = MT::Template::Context::mt_post_process_handler();
    *MT::Template::Context::post_process_handler = \&custom_post_process_handler
;
  }

2005年6月
      1 2 3 4
5 6 7 8 9 10 11
12 13 14 15 16 17 18
19 20 21 22 23 24 25
26 27 28 29 30    

このアーカイブについて

このページには、2005年6月に書かれたブログ記事が新しい順に公開されています。

前のアーカイブは2005年5月です。

次のアーカイブは2005年7月です。

最近のコンテンツはインデックスページで見られます。過去に書かれたものはアーカイブのページで見られます。

Powered by Movable Type 6.1.1