FreeBSD/php-syslog-ng の変更点


*php-syslog-ng [#qef28772]

#contents

**必要な環境 [#z688a650]
[[syslog-ng>/FreeBSD/syslog-ng]]~
Apache~
PHP~
MySQL~

インストールフォルダは/home/syslog/public_htmlでバーチャルホストはsyslog-ng.co.jp、データベースはsyslogとする。


**ソースを持ってくる [#pf6c4878]
http://code.google.com/p/php-syslog-ng/downloads/list

**公開するディレクトリに展開 [#obc078b9]
 $ cd /home/syslog/public_html
 $ fetch http://php-syslog-ng.googlecode.com/files/php-syslog-ng-2.9.8.tgz
 $ tar zxvf php-syslog-ng-2.9.8.tgz

**DBを作成しておく。 [#b9b6861c]
 $ mysql -u ユーザ -pパスワード
 mysql> create database syslog;

**DBにテーブルを追加 [#tcc251b8]
&color(Red){※最新バージョンの2.9.8fでは最初から作成されているので、必要なし。};

 ALTER TABLE logs ADD counter INT NOT NULL DEFAULT 1;
 ALTER TABLE logs ADD fo datetime default NULL;
 ALTER TABLE logs ADD lo datetime default NULL;


*Apache側の設定 [#ae0acb13]
**Apacheのバーチャルホスト設定 [#rf6cfaf2]
 <VirtualHost *:80>
     ServerAdmin webmaster@dummy-host2.example.com
     DocumentRoot "/home/syslog/public_html/php-syslog-ng"
     ServerName syslog-ng.co.jp
 </VirtualHost>
 <Directory "/home/*/public_html">
     AllowOverride FileInfo AuthConfig Limit Indexes
     Options MultiViews Indexes SymLinksIfOwnerMatch IncludesNoExec ExecCGI
     <Limit GET POST OPTIONS>        Order allow,deny        Allow from all
     </Limit>
     <LimitExcept GET POST OPTIONS>        Order deny,allow        Deny from all
     </LimitExcept>
 </Directory>

**php.iniの設定変更 [#d5759853]
 # vi /usr/local/lib/php.ini
 memory_limit = 128M 
 max_execution_time = 300

**Apacheの再起動 [#h1e75614]
 # /usr/local/etc/rc.d/apache22 restart

*インストールはWebから行う [#j2675d96]
http://syslog-ng.co.jp/install/index.php

*各種スクリプトファイルの設定 [#hf2f6952]
**php-syslog-ngのcronログの格納場所作成 [#hacd7831]
 # mkdir -p /var/log/php-syslog-ng

**スクリプトファイルのパスをperlで修正 [#se9086a1]
 # cd /home/syslog/public_html/php-syslog-ng/scripts/
 # perl -i -pe 's/\/www\/php-syslog-ng/\/home\/syslog\/public_html\/php-syslog-ng/g' *

**/etc/crontabに設定追加 [#o7a17c18]
&color(Red){各スクリプトのinclude_onceのパスは事前に修正しておく!};
 # vi /etc/crontab
 ------------------ 追加 -------------------------
 @daily /usr/local/bin/php /home/syslog/public_html/php-syslog-ng/scripts/logrotate.php >> /var/log/php-syslog-ng/logrotate.log 
 @daily /usr/bin/find /home/syslog/public_html/php-syslog-ng/html/jpcache/ -atime 1 -exec rm -f '{}' ';' 
 */5 * * * * /usr/local/bin/php /home/syslog/public_html/php-syslog-ng/scripts/reloadcache.php >> /var/log/php-syslog-ng/reloadcache.log
 */5 * * * * /usr/local/bin/php /home/syslog/public_html/php-syslog-ng/scripts/SqueezeDB-v2.0.php >> /var/log/php-syslog-ng/squeezedb.log

***ログが多いとSqueezeDB-v2.0.phpが二重起動してしまう。 [#f1abe932]
これで起動する際にプロセスが存在する場合は、exitする。
 # vi /home/syslog/public_html/php-syslog-ng/scripts/SqueezeDB-v2.0.php
 112 $array=array();
 113 exec("ps auxw|grep SqueezeDB|grep -v grep|awk '{print $2}'",$array);
 114 if(count($array)>1) exit;

*グラフを表示させるには [#p6fc710e]

**fontをダウンロードする [#df0cc55d]
 $ fetch http://osdn.dl.sourceforge.jp/efont/10087/sazanami-20040629.tar.bz2
 $ tar jxvf sazanami-20040629.tar.bz2
 $ mkdir /home/syslog/public_html/php-syslog-ng/font
 $ cp sazanami-20040629/sazanami-gothic.ttf /home/syslog/public_html/php-syslog-ng/font/sazanami-gothic.ttf

**jpgraphの設定を変更 [#j3dbb198]
 $ vi /home/syslog/public_html/php-syslog-ng/html/includes/jpgraph/jpg-config.inc
 DEFINE("TTF_DIR","/usr/share/fonts/truetype/msttcorefonts/");
     -----------------↓変更-----------------
 DEFINE("TTF_DIR","/home/syslog/public_html/php-syslog-ng/font/");
 
 $ vi /home/syslog/public_html/php-syslog-ng/html/includes/jpgraph/jpgraph.php
 FF_VERDANA => array(FS_NORMAL=>'verdana.ttf', FS_BOLD=>'verdanab.ttf',  FS_ITALIC=>'verdanai.ttf', FS_BOLDITALIC=>'' ),
     -----------------↓変更-----------------
 FF_VERDANA => array(FS_NORMAL=>'sazanami-gothic.ttf', FS_BOLD=>'sazanami-gothic.ttf',  FS_ITALIC=>'sazanami-gothic.ttf', FS_BOLDITALIC=>'' ),

*トップページのグラフを表示させる。(php-syslog-ng-2.9.8f) [#p8d5a606]

**php-syslog-ng/html/config/config.php編集 [#od573645]
 # vi php-syslog-ng/html/config/config.php
 83 // Enable Overall Statistics Graph on main page (This will slow down main page rendering)
 84 define('JPG_MAIN', 'OFF'); // Not implemented yet
                 ↓
 83 // Enable Overall Statistics Graph on main page (This will slow down main page rendering)
 84 define('JPG_MAIN', 'ON'); // Not implemented yet

**php-syslog-ng/html/graph.jpegを書込み可能にする。 [#w30738b5]
 # chmod 666 php-syslog-ng/html/graph.jpeg
 # ll php-syslog-ng/html/graph.jpeg 
 -rw-rw-rw-    1 matsui   matsui      15208  2 20 16:37 html/graph.jpeg

*scripts/logrotate.phpでエラーがでる。 [#b2c029f2]
 Dropping all_logs if it exists ... Error in "function perform_query()" <br>Mysql_error: Access denied; you need the RELOAD privilege for this operation<br>Query was: FLUSH TABLES<br>ok.Renaming 'logs' to 'logs20090225' and 'templogs' to 'logs' ... ok.

**対処 [#q62ae1aa]
これはsyslog-ngのMySQLユーザに更新の権限が無い為に発生する。~
rootでmysqlにログインして
 mysql> update mysql.user set reload_priv='Y' where user like 'syslog';

*ページ上部のリンクを外す [#qe09179d]
Paypal linkの箇所をコメントアウトしてやればOK
 $ vi php-syslog-ng/html/includes/html_header.php
 136                 <!-- Begin Paypal link -->
 137 <!--
 138         <form action="https://www.paypal.com/cgi-bin/webscr" method="post">
 139                 <input type="hidden" name="cmd" value="_donations">
 140                 <input type="hidden" name="business" value="cdukes@cdukes.com">
 141                 <input type="hidden" name="item_name" value="PHP-Syslog-NG">
 142                 <input type="hidden" name="no_shipping" value="0">
 143                 <input type="hidden" name="no_note" value="1">
 144                 <input type="hidden" name="currency_code" value="USD">
 145                 <input type="hidden" name="tax" value="0">
 146                 <input type="hidden" name="lc" value="US">
 147                 <input type="hidden" name="bn" value="PP-DonationsBF">
 148                 <input type="image" src="https://www.paypal.com/en_US/i/btn/btn_donate_SM.gif" border="0" name="submit" alt="Donate to a good cause :-)">
 149                 <div align="right">
 150                 The code you support today may<br>
 151                 turn out to be <a href="http://en.wikipedia.org/wiki/Skynet_%28Terminator%29">SkyNet</a> tomorrow...
 152                 </div>
 153                 <img alt="" border="0" src="https://www.paypal.com/en_US/i/scr/pixel.gif" width="1" height="1">
 154                 </form>
 155 -->
 156                 <!-- END Paypal link -->