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时有用) 十、二次开发文件上传 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 十一、若是有多台web服务器负载均衡须要对附件进行同步 MYOA\attach 后续优化方向: 一、根据mysqltuner.pl优化mysql 二、升级mysql为5.5 三、能够考虑将默认的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