精华区 [关闭][返回]

当前位置:网易精华区>>讨论区精华>>网络专区>>● 网站建设>>开山立户 — 自行搭建网站>>solaris7+php4.0.2+gd1.8.3+sybase12.0+apa

主题:solaris7+php4.0.2+gd1.8.3+sybase12.0+apa
发信人: jindong008(『孤军VS奋战』)
整理人: morefeetin(2001-05-10 08:18:33), 站内信件
请勿用于商业目的,转发请保持完整。 
----------------------------------------------------------------- 
这份手册是我在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-zlib-dir -with-jpeg-dir -with-png-dir -with-xpm-dir \ 
--enable-track-vars 
#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/php4/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/interfaces"。 
搜索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 或#/opt/soft/apache/bin/apachectl restart重起 
服务器。另外,据报告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字符集,请改为相应的字符集。本环境中SYBASE12和 
客户端均使用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]),但是无论我 
怎么试都提示"参数数目不正确",经过和该函数的作者联系得知: 
该函数只支持sybase-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 
内容为: 

存盘退出。 
#chown nobody index.php 
#chgrp nobody index.php 
打这个网址测试一下:http://ServerName 
(ServerName即为httpd.conf中的ServerName)。 
------------------------------------------------- 
********************* 测试sybase数据库 ********************* 
以webmaster的权限登录,编辑一个文件/opt/soft/apache/htdocs/test.php进行测试, 
内容如下: 

数据库的结构如下: 
CREATE TABLE dbo.chat ( 
name varchar(15) NULL, 
date datetime NULL, 
msg varchar(200) NULL 

------------------------------------------------- 
********************* 测试GD库 ********************* 
以webmaster的权限登录,编辑一个文件/opt/soft/apache/htdocs/gd.php进行测试, 
内容如下: 

1.6.2 版以前的 GD库有支持 GIF 格式的功能,但因为 GIF 格式使用的 LZW 演算法牵 
涉到 Unisys 的专利权,因此在1.6.2版之后的 GD 库不再支持 GIF 的格式。本文使用 
的是1.8.3版的GD库,因此对GIF格式不支持。 

安装配置SYBASE12.0不在本文讨论范围之内,请参考相关文章。 
======================== The End ======================= 





 

[关闭][返回]