问题整理
报错
Unable to open 'lpd_graph.jpeg' for writing: Permission denied in /var/www/html/php-syslog-ng/html/includes/blocks/graph-logs_per_day.php on line 164
调整权限/var/www/html/php-syslog-ng/html/lpd_graph.jpeg权限为777
点击"Graph"的时候,报错:
JpGraph Error Font file "/usr/share/fonts/corefonts/verdana.ttf" is not readable or does not exist.
原因是,新版的php-syslog-ng考虑到旧版字库版权的问题,使用了verdana.ttf字库。而当前系统目录该字库。
解决办法:从Windows\Fonts目录中拷贝到上述的路径即可;
mkdir -p /usr/share/fonts/truetype/msttcorefonts/
上传文件
图例:
由于PHP版本过高,报错
Deprecated: Function split() is deprecated
将问题页面的plit("\n",$txt)方法替换为preg_split('/\n/',$txt)方法
Deprecated: Function ereg() is deprecated
将问题页面的ereg("\n",$txt)方法替换为preg_match('/\n/',$txt)方法
Deprecated: Function session_unregister()
替换为$_SESSION = NULL
scripts中的脚本
对scripts目录中其他的文件讲解以下:
请留意,.sh结尾的是bash脚本,可直接执行;而.pl的是perl脚本,使用perl执行;而.php结尾的是php脚本,需使用php命令执行。
1、logrotate.php
对php-syslog-ng中的表进行日志循环,其与系统的logrotate不同。该脚本的执行结果,是把每天的日志表备份起来,并创建一个新的日志表供读写。在crontab下,每天自动执行一次。
2、syslog2mysql.sh
该脚本是用于创建mysql的pipe管道,让syslog-ng可通过该管道写入mysql中。在crontab下,系统系统的时候自动运行。
3、reloadcache.php
该脚本的作用是,当有新的host加入syslog-ng后,更新mysql中的信息。在crontab下,每5分钟运行一次。
4、resetusers.sh
用于重置用户表,当忘记admin密码的时候,可运行它。重置后,管理员用户名和密码都是admin。
5、drop-old-tables.php
当php-syslog-ng运行一段时间后,由logrotate.php可能会产生大量的旧日志表。使用这个脚本,可删除具有相同前缀的表,例如logs_*等,可方便管理。
6、dbgen.pl
logs表无数据,运行../php-syslog-ng/scripts/contrib/dbgen/dbgen.pl
# perl dbgen.pl
Can't locate Net/MySQL.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at dbgen.pl line 22.
BEGIN failed--compilation aborted at dbgen.pl line 22.
该脚本用于产生一些演示数据,在测试php-syslog-ng是否正常时可以运行,其会插入大量数据到mysql中。
因其使用perl编写,故需要使用Net::MySQL模块。
安装模块及运行:
# cp MySQL.pm /usr/lib64/perl5/Net/
#perl /var/www/html/php-syslog-ng/scripts/dbgen.pl
示例:
※注意:这个脚本只是演示而已,实际没什么用的。而官方提供的crontab文件里是每小时执行一次的,应把它删掉。