发信人: yurt@GZ() 
整理人: terryh(2002-03-22 20:19:33), 站内信件
 | 
 
 
 标  题: Solaris7+php4.0.2+gd1.8.3+sybase12.0+apache1.3.14 安装手册 发信站: 网易虚拟社区 (Thu Nov 23 14:47:02 2000), 转信
  Solaris7+php4.0.2+gd1.8.3+sybase12.0+apache1.3.14 安装手册 
 作者:yurt(蒙古包)     Email:[email protected]       Nov 23,2000 
 有空请到network版捧场(通行证登陆http://www.163.com广州社区) 
 请勿用于商业目的,转发请保持完整。 
 
 这份手册是我在Solaris7中文版环境下安装配置PHP和SYBASE数据库的心得体会, 整个安装过程总共花费了11天(从11月12号到22号)时间,可谓费尽周折。安装 期间我拜访了国内外无数的网站、BBS、MAILLIST和NEWSGROUP,请教过PHP函数的 作者和SYBASE公司的工程师。在众多热心人的帮助下,我终于把它搞定了,呵呵 。既然是大家的成果,我就不敢一人独享,所以把它写出来,来帮助那些需要帮 助的人。如果我写的这篇文章帮您解决了令您头疼的问题,能不能给我发一张贺 卡,我一定会和您一样高兴的^Y^。
 我的E-Mail是 [email protected] , [email protected] 。
 
 =======================所需软件======================= 
 sybase 12.0 for solaris 光盘介质
 (下列软件下载地点http://www.sunfreeware.com/programlistsparc7.html )
 gzip-1.3-sol7-sparc-local.gz    (必须)
 gcc-2.8.1-sol7-sparc-local.gz    (必须)
 libstdc++-2.8.1.1-sol7-sparc-local.gz   (必须)
 make-3.78.1-sol7-sparc-local.gz    (可不安装)
 gd-1.8.3.tar.gz     (可选。如不安装GD库,不需下载和GD相关的软件包)
 php-4.0.2.tar.gz      (在http://www.php.net/downloads.php下载)
 apache_1.3.14.tar.gz      (在http://httpd.apache.org/dist/ 下载)
 zlib-1.1.3-sol7-sparc-local.gz    (安装GD库需要)
 jpeg-6b-sol7-sparc-local.gz    (和GD库相关)
 libpng-1.0.2-sol7-sparc-local.gz    (安装GD库需要)
 xpm-3.4k-sol7-sparc-local.gz    (和GD库相关)
 把所有文件放在/export/home目录下。 
 另外再建一个目录,用于存放编译好的二进制文件: 
 #mkdir /opt/soft 
 ------------------------------------------------- 
 ******************软件解压及预安装*********************** 
 由于solaris7的tar不认识-z选项,可先用WINZIP将gzip-1.3-sol7-sparc-local .gz解压成gzip-1.3-sol7-sparc-local再ftp到/export/home目录下进行安装。  
 #cd /export/home 
 #pkgadd -d gzip-1.3-sol7-sparc-local  
 注意pkgadd在安装时会用到/var/tmp存放临时文件,应保证该分区有足够空间; 如果空间不够,可按以下操作: 
 #mv /var/tmp /var/tmp_old 
 #ln -s /tmp /var  (将/var/tmp link到/tmp)
 解压并预安装部分软件: 
 #gzip -d gcc-2.8.1-sol7-sparc-local.gz 
 #gzip -d libstdc++-2.8.1.1-sol7-sparc-local.gz
 #gzip -d make-3.78.1-sol7-sparc-local.gz 
 #pkgadd -d gcc-2.8.1-sol7-sparc-local 
 #pkgadd -d libstdc++-2.8.1.1-sol7-sparc-local
 #pkgadd -d make-3.78.1-sol7-sparc-local 
 #pkgadd -d zlib-1.1.3-sol7-sparc-local
 #pkgadd -d jpeg-6b-sol7-sparc-local
 #pkgadd -d libpng-1.0.2-sol7-sparc-local
 #pkgadd -d xpm-3.4k-sol7-sparc-local
 #gzip -dc gd-1.8.3.tar.gz |tar xvf -    (将会建立目录gd-1.8.3)
 #gzip -dc php-4.0.2.tar.gz |tar xvf -     (将会建立目录php-4.0.2) 
 #gzip -dc apache_1.3.14.tar.gz |tar xvf -    (将会建立目录apache_1.3. 14) 
 然后设置好路径(注意前后顺序)
 #PATH=/usr/local/bin:/usr/bin:/usr/sbin:/usr/ucb:/usr/ccs/bin 
 #export PATH 
 至此,编译PHP所需的系统环境已准备妥当。 
 ------------------------------------------------- 
 ===============安装sybase 12.0并启动SQL SERVER================== 
 此处略去sybase12.0安装配置过程,sybase12.0安装在/opt/sybase12目录下。  
 在进行以下步骤前,应保证sybase已正常启动运行。
 ------------------------------------------------- 
 ********************* 安装GD库 *********************
 #cd /export/home/gd-1.8.3
 #vi  Makefile
 搜索X11R6,将全部的X11R6替换为X,存盘退出。
 #make
 #make install
 GD库安装完毕。
 如果编译过程出现错误,一定要先
 #make clean
 然后再重新进行编译(以下同)。
 ------------------------------------------------- 
 XXXXXXXXXXXXXXXXXXXXXX 安装PHP4.02 XXXXXXXXXXXXXXXXXXXXXXX 
 #cd /export/home/apache_1.3.14 
 #./configure --prefix=/opt/soft/apache   
 (指定apache编译后存放在/opt/soft/apache目录下) 
 #cd ../php-4.0.2 (进入php4.0.2源代码目录) 
 #./configure --prefix=/opt/soft/php4 --with-apache=../apache_1.3.14 -- with-mysql=no --with-sybase-ct=/opt/sybase12/OCS-12_0 -with-gd -with-z lib-dir -with-jpeg-dir -with-png-dir -with-xpm-dir  --enable-track-var s 
 #make  (编译) 
 #make install (安装) 
 php4.0.2安装完毕 
 如果编译出错,仔细查看出错信息。
 如果提示没有sybXXX.h之类的文件,可到
 http://www.sybase.com.cn/htm/cpjs/r_cpbdb_c.htm去下载Solaris平台相应版 本的ebf文件,
 然后展开到sybase相应目录下再进行编译,如果没有符合的版本,找略高版本的 代替。
 ------------------------------------------------- 
 ++++++++++++++++++ 安装Apache 1.3.14+++++++++++++++++++++ 
 #cd /export/home/apache_1.3.14 
 #./configure --prefix=/opt/soft/apache --activate-module=src/modules/p hp4/libphp4.a  
 #make 
 #make install 
 
 Apache 1.3.14完装完毕 
 
 #cd ../php-4.0.2  (进入php4.0.2源代码目录)  
 #cp php.ini-dist /usr/local/lib/php.ini (拷贝PHP配置文件到指定目录) 
 ------------------------------------------------- 
 ####################### 修改 httpd.conf ######################## 
 #cd  /opt/soft/apache/conf 
 #vi  httpd.conf 
 去掉"AddType application/x-httpd-php .php" 前的"#"号,此时php就可以用了 。 
 去掉"ServerName XXXXX"前的"#"号,此时Apache就可以顺利启动了。 
 查找index.html所在的行,在index.html后面增加"index.php"(不包含双引号, 且index.html和index.php之间用空格隔开),此时Apache就可以按先index.html 后index.php的顺序查找文件了。 
 ------------------------------------------------- 
 ********************* 修改PHP配置文件 *********************
 #vi /usr/local/lib/php.ini
 搜索default_charset,使其有效,并将其值改为 "gb2312"。
 搜索sybase.interfaces_file,使其有效,并将其值改为"/opt/sybase12/inter faces"。
 搜索sybct.min_server_severity,将其值改为"50"。
 搜索sybct.min_client_severity,将其值改为"50"。
 注意:修改完毕重起Apache服务器时,执行以下2个步骤:
 #/opt/soft/apache/bin/apachectl stop 
 等几秒钟后再执行
 #/opt/soft/apache/bin/apachectl start
 不要使用#kill -HUP <httpd.pid>或#/opt/soft/apache/bin/apachectl restar t重起服务器。
 另外,据报告Php4.0.3pl1有Apache服务器不读sybct.min_XXXXX_severity的bug ,所以本文编译的是PHP4.0.2的正式发布版。
 ------------------------------------------------- 
 ********************* 修改SYBASE12配置文件 *********************
 #vi /opt/sybase12/interfaces
 其内容看起来如下面的样子:
 SYBASE12
         master tli tcp /dev/tcp \x00021e84c0a800030000000000000000
         query tli tcp /dev/tcp \x00021e84c0a800030000000000000000
 
 \x00021e84c0a800030000000000000000的含义为:
 \x 表示十六进制
 0002 表示以太网(在Dec等机器上可能由于字节顺序不同而写为0200)
 1e84 表示SYBASE12监听的服务端口号(十进制为7812)
 c0a80003 表示SYBASE12的服务器IP地址(点分法表示为192.168.0.3)
 -------------------------------------------------
 接下来修改客户端默认字符集,使其和SYBASE12服务器的字符集一致:
 #vi /opt/sybase12/locales/locales.dat
 找到sun_svr4所在的段,找到default所在的行:
 locale = default, us_english, iso_1
 将其改为:
 locale = default, us_english, cp850
 如果你的服务器不是使用cp850字符集,请改为相应的字符集。本环境中SYBASE1 2和客户端均使用cp850字符集。
 服务端和客户端字符集不匹配会出现乱码(注意这里所说的客户端是指Apache服 务器,而不是浏览器)。
 然后在sybase12环境下使用
 #isql -SSYBASE12 -Usa -P -Jcp850和
 #isql -Usa -P测试字符集是否匹配。注意如果使用sybase client for Windows 进行汉字插/录入,注意当时客户端使用的字符集。
 我在SYBASE字符集上花费了一整天时间才搞定,主要是没有资料可供参考。PHP的 网站上说sybase_connect()有第四个参数可以设定Client的字符集,调用方法为 sybase_connect(ServerName,UserName,Password[,CharSet]),但是无论我怎么 试都提示"参数数目不正确",经过和该函数的作者联系得知:该函数只支持syba se-DB,不支持sybase-CT。
 ------------------------------------------------- 
 ********************* 启动Apache服务器 *********************
 如果要让Apache监听80端口,必须以root启动httpd服务。
 首先修改环境变量,使root具备sybase启动需要的环境:
 #cd
 #vi  .profile
 在export PATH后面加入以下一行
 .  /opt/sybase12/SYBASE.sh
 存盘退出。
 #exit
 以root重新登录,执行
 #/opt/soft/apache/bin/apachectl start  (启动Apache服务器) 
 然后在/opt/soft/apache/htdocs目录下建立一个文件index.php 
 内容为: 
 <? phpinfo(); ?> 
 存盘退出。
 #chown nobody index.php
 #chgrp nobody index.php
 打这个网址测试一下:http://ServerName    
 (ServerName即为httpd.conf中的ServerName)。 
 ------------------------------------------------- 
 ********************* 测试sybase数据库 *********************
 以webmaster的权限登录,编辑一个文件/opt/soft/apache/htdocs/test.php进行 测试,内容如下:
 <?
   $servername = "SYBASE12";
   $username = "sa";
   $password = "";
   $table = "chat";
   $dbName = "www"; 
   sybase_min_server_severity(50); 
   $dbHandle = sybase_connect($servername, $username, $password) or die ("连接数据库失败");
   sybase_select_db("$dbName") or die( "在服务器上找不到相应数据库。");  
   $query = sprintf("select * from %s",$table);
   $result = sybase_query($query);
   if(!$result)die("查询数据库失败!");
   while($field = sybase_fetch_array($result))
   {
     printf("Database:%s<br>\n","www");
     printf("Table:%s<br>\n","chat");
     printf("Name:%s<br>\n",$field[name]);
     printf("Date:%s<br>\n",$field[date]);
     printf("Msg:%s<br><br>\n\n",$field[msg]);
   }
   sybase_close($dbHandle);
 
   //测试非数据库环境下的中文显示。
   echo "蒙古包的缕缕炊烟,轻轻地飘向蓝天,茫茫的绿草地,是我生长的摇篮 。<br>\n";
 ?>
 数据库的结构如下:
 CREATE TABLE dbo.chat (
   name varchar(15) NULL,
   date datetime NULL,
   msg varchar(200) NULL
 )
 ------------------------------------------------- 
 ********************* 测试GD库 *********************
 以webmaster的权限登录,编辑一个文件/opt/soft/apache/htdocs/gd.php进行测 试,内容如下:
 <?
   Header("Content-type: image/png");
   $im = imagecreate(400,30);
   $black = ImageColorAllocate($im, 0,0,0);
   $white = ImageColorAllocate($im, 255,255,255);
   imageline($im, 1, 1, 350, 25, $black);
   imagearc($im, 200, 15, 20, 20, 35, 190, $white);
   imagestring($im, 5, 4, 10, "Graph TEST!!", $white);
   Imagepng($im);
   ImageDestroy($im);
 ?>
 1.6.2 版以前的 GD库有支持 GIF 格式的功能,但因为 GIF 格式使用的 LZW 演 算法牵涉到 Unisys 的专利权,因此在1.6.2版之后的 GD 库不再支持 GIF 的格 式。本文使用的是1.8.3版的GD库,因此对GIF格式不支持。
 
 安装配置SYBASE12.0不在本文讨论范围之内,请参考相关文章。 
 ======================== The End ======================= 
 
  --     ■    ■  ■    ■  ■■■■  ■■■■     (c)蒙古包
      ■  ■  ■    ■   ■    ■     ■    yurt.yeah.net
       ■■  ■    ■   ■■■■     ■       ICQ:5986507
       ■   ■    ■   ■   ■      ■         走近蒙古包
      ■     ■■■   ■     ■    ■          烦恼去无踪
  ※ 来源:.月光软件站 http://www.moon-soft.com.[FROM: 202.105.154.203]
  | 
 
 
 |