Archive for the "Linux" Category

20130307

BIRT在Tomcat环境下生成PDF报表缺少文字的解决

Author:  WinkCategories:  LinuxNo Comments »

最近在使用发布Mifos项目时,利用Mifos系统报表功能(BIRT)生成的PDF报表文档中,总是缺少很多汉字,无论这些文字是写在报表项目源文件中的,还是从MySQL取出的,都是如此。一番分析之后,终于解决了该问题,于是备注下来,以备后用。

首先分析一下BIRT项目包中的“fontsConfig.xml”文件(位于项目下形如“org.eclipse.birt.report.engine.fonts_xxxxx”目录内),发现有以下大段代码:

Read the rest of this entry

20051028

让Fedora 4支持NTFS

Author:  WinkCategories:  LinuxNo Comments »
Tags:  ,

几乎所有的发行版本都支持NTFS,但是打有RedHat的标记的发行版本出外,据说是版权原因。让Fedora支持NTFS,可以重新编译内核,也可以安装NTFS模组的RPM,也可以直接使用.ko(.o)文件。我决定使用最后一个方法。

首先确定自己的版本为2.6.13-1.1532_FC4(注意smp的版本有区别), 前往Linux-NTFS Wiki下载支持该版本的i686版本,在“/lib/modules/2.6.3-1.1532_FC4/kernel/fs/”下建立ntfs文件夹,将刚刚下载的kernel-module-ntfs-2.6.13-1.1532_FC4-2.1.23-0.rr.10.4.i686.ko复制为“ntfs/ntfs.ko”, 然后使用命令“depmod -a”重新建立依赖关系。

ntfs分区加载命令格式大概为

mount -t ntfs -o nls=utf8,umask=000 /dev/hda1 /mnt/part1

其中-t ntfs说明文件系统的格式是ntfs的;-o是选项(option),nls=utf8即指定Native Language Support(本地语言支持)为utf8,Fedora core 4默认的编码就是utf8的;umask=000表示所有的用户组都可读可写,但是因为NTFS在Linux中写入不安全,所以只能读不能写入,如果想写入,只能自己编内核来实现,但是意义并不是太大。

如果需要自动挂载,可以在/etc/fstab中添加:

/dev/hda1 /mnt/part1 ntfs umask=000,nls=utf8
20050923

phpMyAdmin的字符编码问题

Author:  WinkCategories:  Linux, SoftwaresNo Comments »

有的时候在Linux上用phpMyAdmin,会遇上类似如下字符编码错误:

Warning: mb_internal_encoding(): Unknown encoding “gb2312″ in /var/www/html/phpMyAdmin263/libraries/string.lib.php on line 41

Warning: Cannot modify header information – headers already sent by (output started at /var/www/html/maint/phpMyAdmin263/libraries/string.lib.php:41) in /var/www/html/phpMyAdmin263/libraries/auth/config.auth.lib.php on line 81

Warning: Cannot modify header information – headers already sent by (output started at /var/www/html/maint/phpMyAdmin263/libraries/string.lib.php:41) in /var/www/html/phpMyAdmin263/libraries/select_theme.lib.php on line 86

解决方法是:根据错误提示找到string.lib.php文件中“mb_internal_encoding($GLOBALS['charset']);”的所在,把这一段屏蔽掉就可以了。

20050819

yum服务器架设

Author:  WinkCategories:  Linux, NetworksNo Comments »
Tags:  , , ,

查了网上的资料,好像RHN的up2date升级必须使用redhat自己的服务器,所以内网的Fedora升级就考虑使用yum来代替。

我是用以前在192.168.1.43上做的FC4的FTP安装为基础架的。这样FC4的安装盘的RPM不需要重新复制了。FC4 FTP安装目录是“/home/homepage/software/os/fc4/Fedora/”,学生只要在安装的时候使用启动盘启动,选择ftp安装,地址填写“192.168.1.43”,目录填写“/”,帐号密码都填写“fc4”就可以了。

Read the rest of this entry

20050819

解决Linux只能挂载八个loop设备

Author:  WinkCategories:  LinuxNo Comments »
Tags:  ,

Fedora Core 4缺省只带了八个loop设备文件(从“/dev/loop0”到“/dev/loop7”),也就是说最多只能挂载八个ISO文件。这样有时无法满足需要。在网上搜索之后,发现可以用以下方法解决。

假设如果需要增加loop最大为200,可以在“/etc/modprobe.conf”中添加一句:

options loop max_loop=200

然后用下面的脚本在“/dev”目录下生成设备文件loop8到loop199:

for i in `seq 21 200`; do mknod -m 660 loop$i b 7, $i; chown root:disk loop$i; done

然后重新启动系统就可以了。

20050729

使用MySQL为HTTP做认证

Author:  WinkCategories:  Linux, NetworksNo Comments »
Tags:  , ,
  • 作者:abel
  • 原载:CHINAUNIX

一般使用Apache的认证,相信大多数人都使用.htaccess+htpasswd的方式,这种方式唯一的缺点多是你无法从网页管理介面去增删改user,即使有方法也会比较费事,而mod_auth_mysql则提供了从MySQL的table来做认证,更增加了系统的弹性。不过由于Apache有两种版本1.3.x及2.x,而这两个版本的DSO的hook API不同,所以mod_auth_mysql也就有编译/安装即有两种版本,以下分别依序介绍1.3.x及2.x。

Read the rest of this entry

20050518

Subversion数据库修复

Author:  WinkCategories:  LinuxNo Comments »
Tags:  

注意:修复时Subversion不能被使用。

#svnadmin recover project

“project”根据实际情况更改名称。

// 以下根据实际情况

// 更改“project”下所有子目录为“project”所有
#chgrp -R project project

// 添加组权限,其中“X”为根据用户权限是否有“x”决定是否添加组权限中的“x”
#chmod -R g+rwX project

#svnserve -d
20050422

利用iptables做端口映射

Author:  WinkCategories:  Linux, NetworksNo Comments »
Tags:  , ,

最近想在家调试公司一台机器上的JSP文件并预览到效果。因为那台机器IP为192.168.1.15,JSP端口为8008,公司的Linux服务器内网eth1的IP为192.168.1.1,服务器对外用eth0链接ADSL,即ppp0,并且已经在服务器上做了DDNS,所以需要在服务器上做端口映射。

#iptables -t nat -A PREROUTING -p tcp -m tcp --dport 8008 -j DNAT --to-destination 192.168.1.15:8008

还有一种是利用ppp0,不知道什么区别,待研究

#iptables -t nat -A PREROUTING -i $PPPIF -p tcp --dport 8008 -j DNAT --to-destination 192.168.1.15:8008

其中,$PPPIF代表ppp0,是ADSL拨号成功后的设备名。

上面即将tcp8008端口的包直接转发到IP为192.168.1.15这台电脑的相同端口上。

#iptables -t nat -A POSTROUTING -s 192.168.0.0/16 -d 192.168.1.15 -p tcp -m tcp --dport 881 -j SNAT --to-source 192.168.1.1

返回时数据源来自同一子网,所以将其源地址更改为192.168.1.1,从eth0发出,并在连接跟踪表中查出数据源从ppp0进来的,又由ppp0将此数据发出。

映射udp端口与tcp类似。

之后保存:

#/etc/rc.d/init.d/iptables save
#/etc/rc.d/init.d/iptables restart

同样适合为子网客户机上eMule之类的做端口映射以令其成为HighID。

Back to Page Top