All right, waiting for you to die, I'll laugh ...
分类: LINUX
2011-08-28 12:08:23
在Orcale VM VirtualBox中向RedHat AS5.4移植通达OA2010完美平台版
一、准备工作
本文只用于学习目的,请阅读本文的朋友尊重通达公司的软件的著作权,不要使用破解各版本。本文通达OA2010完美平台版。具体搭建环境如下:
主机:Windws 7旗舰版
计算机配置:Sony VPCEA47EC
2G内存
虚拟机:Oracle VM VirtualBox 4.1.0 or 73009
Redhat AS5.4
PHP (系统安装时选择安装)
Mysql (系统安装时选择安装)
Apache (系统安装时选择安装)
Vsftpd (系统安装时选择安装)
本次搭建是为了实验通达OA向linux的移植,不会安装其它软件,也不在乎系统的性能,所以就Redhat只用两个分区——一个是做为根分区,另一个是交换分区。网络设置如下:
机器名:test
IP:192.168.0.220
子网掩码:255.255.255.0
网关:255.255.255.0
DNS:192.168.0.10
在 Oracle VM VirtualBox中安装完成Redhat后,测试两个环境是否通网(测试环境搭档建网络连接在VM下选择桥接)
二、安装vsftpd
安装完vsftpds需进行一些必要的设置,使得从本地对ftp服务器中的usr/ftp/pub目录进行上传、下载、删除、建立目录等操作,这样一来,我们就可以方便地通过客户机向服务器上传必要的安装文件。
在usr/ftp/pub下新建一个目录,让所有用户都能访问,能够上传文件,能建立子目录。这里要说的是,usr/ftp/pub的主文件夹不能有全局写权限,否则将不能登录。
#chmod –v 777 /home/ftp/pub
接着我们配置/etc/vsftpd.conf,这个配置文件中相关的设置中下:
listen=YES
anonymous_enable=YES
write_enable=YES
anon_umask=000
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
其余内容都保持不变。
然后重新启动ftp服务:
# service vsftpd restard
设置完成后需要测试一下FTP是否可以上传。随便上传一文件进行测试成功即可。
三、安装apache2
在系统安装时选择安装httpd,系统安装完成后在本地浏览器的地址栏中输入:
192.168.0.220
应该能显示apache首页界面,表时apache2安装成功。
不过,我们将来的OA的主页并不是在/www目录下。在windows环境下,OA的所有文件都在D:\MYOA目录中,网页文件都在D:\MYOA\webroot目录下。为了保持与linux环境下目录的一致性,我们在linux系统中建立一个同样的目录。
# mkdir /home/myoa
然后再在/home/myoa目录下再建立一个子目录webroot、attach
# cd /home/myoa
# mkdir –v webroot attach
修改attahc的权限,让所有用户都可读写。
# chmod –v 777 attach
下面,我们在webroot目录下建立一个测试网页test01.html,这个用于测试网页的文件只显示一行字符(个人采用的的是Editplus3.0):
Testing myoa_dir …
修改/etc/httpd/config.conf的内容,请对照如下部分修改:
DocumentRoot /home/myoa/webroot
Options FollowSymLinks
AllowOverride None
其余部分都保持原先的内容。
重新启动apache2:
# service httpd restart
在本机的浏览器的地址栏中输入下面内容:
192.168.0.220/webroot/test01.html
然后按回车键,就能在浏览器中看到
Testing myoa_dir …
这就说明我们的apache2也准备好了。
四、安装MySQL
在系统安装时选择安装Mysql
测试一下MySQL的安装是否成功:
# mysql –uroot
如果出现了下面这样的提示符,就表明mysql已经安装成功。
mysql >
输入quit就可以退出MySQL的命令模式。
五、安装php5
在系统安装选择安装
为了测试php是否安装成功,我们需要一段php的测试程序,以文件名test02.php保存于/home/myoa/webroot目录下。
phpinfo();
?>
在浏览器的地址栏中输入:
192.168.0.220/test02.php
若能在浏览器中看到php的信息界面,则表明php安装成功。也可以在这个测试界面中顺便看一下mysql、Zend是否与php连接上。
MySQL数据库刚安装完成后,root的密码为空。为了导入通达OA的数据库,将虚拟机中的MySQL数据库的root密码设置与通达初始密码一样(默认myoa888)。通达OA20010完美平台版中MySQL的root用户的密码是myoa888。
# mysqladmin –u root password ‘myoa 888’
当然,上述修改密码的工作也可以通过phpmyadmin来做。
为了后面管理mysql的方便,我们安装phpmyadmin。
简单的做法是本机下载一个linux 平台下的phpmyadmin,然后上传至/home/myoa/webroot下(建议版本最小是5.5)
做完上述的工作后,在浏览器地址栏中输入192.168.0.220/phpmyadmin,就可能以显示phpmyadmin的起始页.
修改/etc/php5/apche2/php.ini,加入:
extension = msql.so
register_globals = On
default_charset = "GB2312"
include_path = ".:/home/myoa/webroot"
upload_tmp_dir = /tmp
session.save_path = /tmp
上述工作为得是登陆显示不会是乱码
六、安装ZendOptimizer
最后,为了能运行经过编译的通达OA的PHP文件,应当安装ZendOptimizer。
下载ZendOptimizer- 3.3.3-linux-glibc23-i386.tar.gz。将下载下来的文件包然后通过ftp将ZendOptimizer文件包上传到虚拟机中。最简单的办法是通IE浏览器做ftp上传工作。如果ftp服务器是按照前面的步骤做的,那么上传后的文件应当位于/home/ftp/pub目录下。
接着,将ZendOptimizer复制到/tmp后,再进行相关的安装工作。
# cd /home/ftp/pub
# cp –v Zend* /tmp
# tar xvzf Zend*
# cd Zend*
# chmod +x install.sh
# chmod +x zui_files/php
# ./install.sh
根据安装界面的提示一路安装下去:
Please specify the location for installing Zen Optimizer:
/usr/local/Zend
Enter the location of your php.ini file
/etc/php5/apache2
Are you using Apache Web server?
Specify the full path to the Apache control utility (apachectl)
/usr/sbin/apache2ctl
上述工作完成后,会有提示问你是否要重新启动Web server,当然是回答Yes。
七、数据迁移
开始将windows中的myoa迁移到linux环境下。当然,做这一工作的前提是,通达OA2010完美平台版已经安装在widnows上,并且已经能正确运行。我的实际情况是OA在widnows 2003 server安装到了D:\MYOA目录。
1、复制网页
通过ftp将d:/MYOA/webroot的文件上传到虚拟机上,然后在linux环境下将webroot的文件复制到/home/myoa/webroot
cd /home/ftp/pub/webroot
cp –rfv * /home/myoa/webroot
2、导出导入数据库
在windows的命令行模式下,进行如下操作,将数据库导出。
cd \myoa\mysql\bin
mysqldump -uroot -p --default-character-set=gbk TD_OA > TD_OA.sql
运行上述命令成功后,我们就可以在当前目录下看到一个新文件TD_OA.sql
我是用phpmyadmin将数据库导入的,这样会比较方便,而且不容易出错。
首先在phpmyadmin登录界面中以root用户登录,密码是myoa888。
建立数据库TD_OA,相关的设置如下图所示,其它部分保持不变。然后点击创建按钮。
然后出现下面的界面:
我们在左侧的“数据库“选择TD_OA(0),然后点击顶部菜单“Import”,将会出现下面的界面,我们照着图进行设置。其中“文本文件的位置”就是我们在客户机的导出的数据库文件的位置。文件的字符集选择gbk。然后点击右下脚的“执行”按钮就可以实现数据库的导入。
如果导入成功,显示界面如下:
注意右边的“数据库”,下拉菜单的内容变成了“TD_OA(168)”,并且还有168个表名的列表。
3、将数据库中的表名由小写改为大写
在windows环境下,程序对文件名大小写不敏感,但在linux环境中,却是区分大小写的。所以,需要将导入后的数据库的表的文件名改为大写。为此,我们需要编辑一段php程序实现这一目标。这一段程序名为table_name.php,保存于/home/myoa下。这一段程序是由沧海云帆在其博客()中给出的,我完全抄了过来。
# table_name.php
include_once("inc/conn.php");
$connection = OpenConnection();
$FILE_CONTENT="";
$TABLE_ARRAY = mysql_list_tables($MYSQL_DB);
while($TABLE = mysql_fetch_row($TABLE_ARRAY))
{
$TABLE_NAME = $TABLE[0];
$TABLE_NAME1 = strtoupper($TABLE_NAME);
$query="ALTER TABLE $TABLE_NAME RENAME $TABLE_NAME1;";
echo $query."
";
exequery($connection,$query);
}
echo "OK!";
?>
在运行table_name.php之前,我们需要先修改/home/myoa/webroot/inc/oa_config.php。修改的内容如下:
//-- 附件路径配置(Windows) --
//$ATTACH_PATH=$ROOT_PATH."attachment/";
//$ATTACH_PATH2=realpath($ROOT_PATH."../")."/attach/";
//-- 附件路径配置(Unix/Linux) --
//$ATTACH_PATH="/myoa/attachment/";
//$ATTACH_PATH2="/myoa/attach/";
$ATTACH_PATH="/home/myoa/webroot/attachment/";
$ATTACH_PATH2="/home/myoa/attach/";
在浏览器地址栏中输入192.168.0.220/table_name.php。如果前面的工作都做得正确,那么浏览器就会显示转换的结果。
这些工作都完成后,我们IE浏览器中输入192.168.0.220后按回车。是不是可以看到OA的登录界面?
我们以admin为用户名登录进入OA,应该能顺利进入通达OA。
八、大小写转换
如果导入的数据库TD_OA是全新的,里面只有一个用户——管理员,这个用户就是我们以admin登录进去的用户。我们试着用管理员给管理员发一个内部邮件,会看到有如下的错误提示:
Warning: file_put_contents(/home/myoa/webroot/inc/censor_words.php) [function.file-put-contents]: failed to open stream: Permission denied in /home/myoa/webroot/inc/utility_all.php on line 1234
Warning: file_put_contents(/home/myoa/webroot/inc/censor_words.php) [function.file-put-contents]: failed to open stream: Permission denied in /home/myoa/webroot/inc/utility_all.php on line 1264
Warning: file_put_contents(/home/myoa/webroot/attachment/new_sms/1.sms) [function.file-put-contents]: failed to open stream: Permission denied in /home/myoa/webroot/inc/utility.php on line 333
后面我们还会看到这样的错误提示:
Warning: file_put_contents(/home/myoa/webroot/inc/department.php) [function.file-put-contents]: failed to open stream: Permission denied in /home/myoa/webroot/inc/utility_org.php on line 184
这是的权限的问题。我们将censor_words.php、department.php、1.sms
# cd /home/myoa/webroot/inc
# chmod –v 777 censor_words.php
# chmod –v 777 department.php
# cd /home/myoa/webroot/attachment/new_sms
# chmod –v 777 1.sms 2.sms
在使用其它功能时,依然有类似的错误提示出现,但只要将提示中显示的权限问题的文件名的权限修按上面的方法修改后,就解决了问题。
写到这里,在VirtualBox虚拟机中向redhat AS5.4移植通达OA2010完美平台版完成。实际上,我还有许多问题没有解决。主要有以下几个方面:
1、 管理员用户在firefox浏览器中写内部邮件,但IE浏览器却不行。
2、 手机短信平台的实现
3、 论坛
4、 报表
5、 其他收费控件是否能够完全运行(因为交费)
这个如果遇到问题,可以随时与通达技术方面沟通,不过他们平台移植技术支持不好说,就看你有你能把你的问题能否说清楚了。
安装参照文档:
http://blog.sina.com.cn/s/blog_591d3eae0100d79m.html