在同一台服务器上安装多套通达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的值。