在同一台服务器上安装多套通达OA
以通达2008版本为例的安装步骤:
1:首先安装一个通达2008,按默认提示安装到D:\MYOA即可,记住以下信息;
OA1
端口:81
程序文件夹:D:\MYOA\webroot
数据库名:TD_OA
数据库用户名:root
数据库密码:myoa888
2:现在把D:\MYOA\webroot进行复制一个副本到D:\MYOA\webroot2
3:然后把数据库TD_OA复制一份副本命名为TD_OA2
4:把conf\httpd.conf修改一下
1)DocumentRoot "d:/MYOA/webroot/"
改成#DocumentRoot "d:/MYOA/webroot/"
2)
#Server and port Configuration
ServerName 127.0.0.1
Listen 82
改成
#Server and port Configuration
ServerName 127.0.0.1
Listen 82
Listen 8080
NameVirtualHost 127.0.0.1
<VirtualHost *:82>
ServerAdmin test1@test.com
DocumentRoot "d:/MYOA/webroot/"
ServerName OA1
php_admin_value open_basedir "d:/MYOA/webroot/;d:/MYOA/tmp;d:/MYOA/data/TD_OA/"
</VirtualHost>
<VirtualHost *:8080>
ServerAdmin test2@test.com
DocumentRoot "d:/MYOA/webroot2/"
ServerName OA2
php_admin_value open_basedir "d:/MYOA/webroot2/;d:/MYOA/tmp;d:/MYOA/data/TD_OA2/"
</VirtualHost>
5:把BIN/php.ini文件修改一下
include_path = ".;d:\MYOA\webroot"
改成:include_path = ".;d:\MYOA\webroot;d:\MYOA\webroot2"
6:把安装文件目录下的attach文件夹拷贝至 webroot和webroot2;并分别在webroot和
webroot2文件夹内建立文件夹 bak
7:分别修改webroot和webroot2目录下inc文件夹里面的oa_config.php(附件路径和数据库)
//-- MYOA附件路径配置(Windows) --
$ATTACH_PATH=$ROOT_PATH."attachment/";
$ATTACH_PATH2=realpath($ROOT_PATH)."/attach/";
//-- 数据库热备份路径 --
$BACKUP_PATH=realpath($ROOT_PATH)."/bak/";
//-- MYOA数据库配置 --
$MYSQL_SERVER="localhost:3306";
$MYSQL_USER="root";
$MYSQL_DB="TD_OA2";
$MYSQL_PASS="myoa888";
?>
到此为止,2套通达2008已经可以在同一台服务器上运行!同理,多套通达的安装方法亦如此
php_admin_value open_basedir 引起的上传文件失败解决方法
为了安全,我们通常会在虚拟主机设置中,加入这一行
php_admin_value open_basedir "/usr/local/apache/htdocs/www"
但这会导致move_uploaded_file不能读取临时目录中的上传文件,导致上传文件失失败。
一般会提示以下错误:
Warning: move_uploaded_file() [function.move-uploaded-file]: open_basedir restriction in effect. File(/tmp/phpqwg5rO) is not within the allowed path(s): (/usr/local/apache/htdocs/www) in /usr/local/apache/htdocs/www/includes/lib_common.php on line 3130
解决方法:
将上传文件的临时目录加入到php_admin_value open_basedir后面,最后看起来是这样的:
<VirtualHost *:80>
php_admin_value open_basedir "/usr/local/apache/htdocs/www:/tmp"
</VirtualHost>
注意:两个目录之间是冒号隔开。
把PHP脚本操作限制在web目录可以避免程序员使用copy函数把系统文件拷贝到web目录。move_uploaded_file不受open_basedir的限制,所以不必修改php.ini里upload_tmp_dir的值。