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

时间:2021-08-03 09:03:31

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

通达OA2008优化前端web为lnmp环境及后续优化的更多相关文章

  1. lnmp环境搭建后续-php安装

    安装PHP7: 下载# wget http://PHP.net/get/php-7.0.2.tar.gz/from/a/mirror 建议安装之前先看看安装帮助文件INSTALL 解压安装 # tar ...

  2. 记一次“愉快”的lnmp环境的搭建

    愉快的lnmp环境搭建 后续更新 几个笔记记录 yum remove php-mysql yum -y install cmake autoconf wget gcc-c++ gcc zlib pcr ...

  3. 通达OA2008从windows环境移植到linux部署手册

    通达OA2008从windows环境移植到linux中(centos5.5及以上版本) OA系统拓扑图: 环境搭建(安装lamp环境) 1.安装xampp集成lamp包xampp-linux-1.6. ...

  4. LNMP环境并发优化

    LNMP环境并发优化 服务器 8核32Gx3 如图是一条http请求的生命周期,共经过nginx,php-fpm,PHP三个模块 所以我们可以从nginx,php-fpm,PHP三个维度去优化 一.p ...

  5. 在Raspberry配置优化安装LNMP环境总结

    在Raspberry配置优化安装LNMP环境总结 apt-get update apt-get install nginx apt-get install php5-fpm php5-cli php5 ...

  6. CentOS 7上源码编译安装和配置LNMP Web+phpMyAdmin服务器环境

    CentOS 7上源码编译安装和配置LNMP Web+phpMyAdmin服务器环境 什么是LNMP? LNMP(别名LEMP)是指由Linux, Nginx, MySQL/MariaDB, PHP/ ...

  7. LNMP环境搭建:Nginx安装、测试与域名配置

    Nginx作为一款优秀的Web Server软件同时也是一款优秀的负载均衡或前端反向代理.缓存服务软件 2.编译安装Nginx (1)安装Nginx依赖函数库pcre pcre为“perl兼容正则表达 ...

  8. 阿里云ECS安装lnmp环境-转载自:http://ninghao.net/blog/1368

    远程控制你的服务器 远程控制 Linux 类型的系统的服务器,比如 CentOS 系统的服务器,一般不像 Windows 服务器那样,使用图形界面的远程控制.我们需要使用命令行工具,远程连接到服务器, ...

  9. 阿里云(ECS)Centos服务器LNMP环境搭建

    阿里云( ECS ) Centos7 服务器 LNMP 环境搭建 前言 第一次接触阿里云是大四的时候,当时在校外公司做兼职,关于智能家居项目的,话说当时俺就只有一个月左右的 php 后台开发经验(还是 ...

随机推荐

  1. zhuang 自定义Xcode代码模板:Code Snippet

    Xcode强大的代码提示功能是有目共睹的,用过都知道,可是你是否想过添加一些自定义的代码提示模板?你是否想让if默认的左括号挪到下一行?还有for.while.switch等等……如果你有这方面的需求 ...

  2. Add Two Numbers ---- LeetCode 002

    You are given two linked lists representing two non-negative numbers. The digits are stored in rever ...

  3. SQL中删除某数据库所有trigger及sp

    SQL中删除某数据库所有trigger及sp   编写人:CC阿爸 2014-6-14 在日常SQL数据库的操作中,如何快速的删除所有trigger及sp呢 以下有三种方式可快速处理. --第一种 - ...

  4. mysql存储过程出现OUT or INOUT argument 10 for routine

    OUT or INOUT argument 10 for routine * is not a variable or NEW pseudo-variable 我查网上很多出现在call的时候没有添加 ...

  5. 一张图看懂AI、机器学习和深度学习的区别

    AI(人工智能)是未来,是科幻小说,是我们日常生活的一部分.所有论断都是正确的,只是要看你所谈到的AI到底是什么. 例如,当谷歌DeepMind开发的AlphaGo程序打败韩国职业围棋高手Lee Se ...

  6. 20169211《Linux内核原理与分析》课程总结

    第一周作业:linux入门学习:熟悉操作linux的基础命令 第二周作业:实验反汇编一个简答的C程序,学习汇编代码的工作过程 第三周作业:学习linux内核的启动过程 第四周作业:学习linux内核进 ...

  7. php写杨辉三角算法

    <?phpfunction YangHui($iLine) {      for ($i = 0;$i <= $iLine;$i++)//行      {         for ($j ...

  8. 不可将布尔变量直接与 TRUE、FALSE 或者 1、0 进行比较

    不可将布尔变量直接与 TRUE.FALSE 或者 1.0 进行比较. 根据布尔类型的语义,零值为“假”(记为 FALSE),任何非零值都是“真”(记为 TRUE). TRUE 的值究竟是什么并没有统一 ...

  9. 常用HTML标签的全称及描述

    常用HTML标签的英文全称及简单描述   HTML标签 英文全称 中文释义 a Anchor 锚 abbr Abbreviation 缩写词 acronym Acronym 取首字母的缩写词 addr ...

  10. py编码终极版

    说起python编码,真是句句心酸.算起来,反复折腾两个来月了.万幸的是,终于梳理清楚了.作为一个共产主义者,一定要分享给大家.如果你还在因为编码而头痛,那么赶紧跟着我咱们一起来揭开py编码的真相吧! ...