通达OA2008优化前端web为lnmp环境及后续优化

1.安装lnmp环境
具体参考:CentOS6.5编译安装Nginx1.8.1+MySQL5.5.48+PHP5.2.17+xcache3.2+ZendOptimizer-3.3.9
http://blog.csdn.net/reblue520/article/details/51098590


2.上传MYOA到/web/htdocs目录下


3.修改对应的php.ini,nginx.conf和oa_config.php


php.ini文件修改:
1.allow_call_time_pass_reference = on
2.register_globals = on
3.register_argc_argv = off
4.include_path = ".:/web/htdocs/MYOA/webroot"


oa_config.php:


if($ROOT_PATH=="")
//$ROOT_PATH="d:/myoa/webroot/";
$ROOT_PATH="/web/htdocs/MYOA/webroot/";


//-- 网页根目录配置(IIS:手工配置) --
//$ROOT_PATH="d:/myoa/webroot/";


if(substr($ROOT_PATH,-1)!="/")
$ROOT_PATH.="/";


//-- 附件路径配置(Windows) --
//$ATTACH_PATH=$ROOT_PATH."attachment/";
//$ATTACH_PATH2=realpath($ROOT_PATH."../")."/attach/";


//-- 附件路径配置(Unix/Linux) --
//$ATTACH_PATH="/myoa/attachment/";
//$ATTACH_PATH2="/myoa/attach/";
$ATTACH_PATH="/web/htdocs/MYOA/attachment/";
$ATTACH_PATH2="/web/htdocs/MYOA/attach/";


//-- MYOA数据库配置 --
$MYSQL_SERVER="localhost:3336";
$MYSQL_USER="root";
$MYSQL_DB="TD_OA";
$MYSQL_PASS="pass";


4.优化各组件(xcache,mysql,nginx)压力测试


# chown -R nginx.nginx /web/
# chown -R mysql.mysql /data


5.配置数据库读写分离
数据库TD_OA上传到/data/mydata目录下


6.测试


流程的验证:
可以发起修改js后的流程(模拟其中一个一样的流程,是否最终一致)


数据库安装后
需要查看
open_files_limit参数是否设置的足够
mysql > show variables like '%open_files_limit%';
也可以在My.cnf中添加参数
open_files_limit=65535  
否则报错如下:
错误#23: Out of resources when opening file './TD_OA/USER.MYD' (Errcode: 24)
SQL语句: SELECT * from USER where USER_ID='admin' or BYNAME='admin'


同时修改/etc/security/limits.conf,然后加入以下内容,退出再重新登陆即可(不需要重启,退出当前的连接shell即可)
# ulimit -n 查看参数是否生效


* hard nofile 65535
* soft nofile 65535


7.修改附件目录权限
chmod -R 777 /web/htdocs/MYOA/attach

安装本地锁,防止有人在机房直接访问机器进行恶意操作
# yum install -y vlock


8.修改系统回收session的时间和几率
vi /opt/lampp/etc/php.ini
session.gc_maxlifetime = 900(默认为36000秒10个小时)
session_gc_probaility=5 (默认为1,修改为5增加回收垃圾文件的概率)


9.与门户单点登录文件上传、考试模块文件上传、attendance包含考勤系统文件上传、插件turn文件夹上传、general/010user_status用户状态文件
考试模块MYOA/webroot/general/exam_manage


Warning: Cannot modify header information - headers already sent by (output started at D:\MYOA\webroot\sso\config.php:1) in D:\MYOA\webroot\router.php on line 263
修改php.ini文件output_buffering选项由off改为on


安装phpmyadmin,备用(修复mysql时有用)


10、二次开发文件上传
1.JS文件上传(webroot\inc\js\custom文件上传)
2.自动计划任务上传(webroot\widget)
3.PHP插件上传(F:\23620131125\webroot\general\workflow\plugin\turn)
***4.会议室附件页面关闭(信息安全)
D:\MYOA\webroot\general\meeting\apply\new.php


11、如果有多台web服务器负载均衡需要对附件进行同步
MYOA\attach


后续优化方向:
1、根据mysqltuner.pl优化mysql
2、升级mysql为5.5
3、可以考虑将默认的Myisam引擎更换为innodb


1.强制合并功能有问题,强制合并只能用在发起所有的并发步骤并且所有分发的步骤都走到了强制和并处
解决办法:
将/opt/lampp/htdocs/MYOA/webroot/general/workflow/list/turn目录下的table_str.php、turn_next.php、turn_next_free.php三个文件更新为之前版本即可


2.管理员制作流程插入表格的项是乱码(暂时无法解决,可以直接通过html代码编辑)


3.在线人数头像不能点亮(如果点组织只显示管理员在线,暂时无法解决,不影响正常使用可以忽略)


4.部门无法自动更新
组织机构管理:
分析:a.部门管理负责将新建的部门写入deparment表中b.用户管理负责显示部门和人员,信息来自deparment.php(通过分析php源码可以得知所有的部门信息列表都来自deparment.php文件)


解决办法:


方法1
1.在windows环境的web端添加、修改部门信息确认信息正确
2.将windows下生成的department.php覆盖linux环境中的文件


方法2
1.在部门管理里面添加需要添加的部门(如果不行修改数据库,先测试)
2.修改/opt/lampp/htdocs/MYOA/webroot/inc/department.php,添加类似内容


①备份
cd /opt/lampp/htdocs/MYOA/webroot/inc/
cp department.php department.php.bak




"1139" => array("DEPT_NAME" => "重点项目办", "DEPT_PARENT" => 644, "DEPT_NO" => "04", "DEPT_LEVEL" => 3, "DEPT_LONG_NAME" => "HW-LOB/运营商软件 DUG/重点项目办", 
"DEPT_LINE" => "││├"),
"1142" => array("DEPT_NAME" => "重点项目办交付部", "DEPT_PARENT" => 1139, "DEPT_NO" => "13", "DEPT_LEVEL" => 4, "DEPT_LONG_NAME" => "HW-LOB/运营商软件 DUG/重点项目办/
重点项目办交付部", "DEPT_LINE" => "│││└"),


5.OA系统发布的废弃通知删除以后还在门户里面显示
解决办法:
①删除OA里面的通知
②删除ics_notify里面的数据(相当于删除推送给门户视图的数据ics_notify_view)
③删除31.14数据库中的数据


网络结构
操作系统
程序本身


针对网络的安全:
1.将服务器部署在内网,并且只开放web80端口访问
2.提交运行的情况下部署防火墙设备


针对操作系统的安全:
1.最小系统安装法(只安装必须的软件,不安装桌面保证安全的同事也能提升系统性能)
2.最少软件、服务法(最少的服务等与最大的安全)


程序本身:
1.将软件本身的补丁打全
2.采用web和数据库分离的部署方式,数据库不允许外网直接访问


修改配置文件
1.编辑/opt/lampp/etc/httpd.conf
修改 Options Indexes FollowSymLinks ExecCGI Includes
为Options FollowSymLinks Includes


2.隐藏apache版本相关信息 (错误页面)
添加到httpd.conf文件结尾即可:


ServerSignature Off
ServerTokens Prod


3.关闭PHP敏感函数vi /opt/lampp/etc/php.ini
disable_functions = exec,shell_exec,system,passthru,proc_open,show_source,phpinfo


4.在htdocs下,新建一个 robots.txt 文件来屏蔽所有的搜索引擎
cd /web/htdocs
touch robots.txt
posted @ 2016-04-26 09:00  reblue520  阅读(284)  评论(0编辑  收藏  举报