分享
 
 
 

solaris7+php4.0.2+gd1.8.3+sybase12.0+apache1.3 安装手册

王朝php·作者佚名  2006-11-24
窄屏简体版  字體: |||超大  

作者:yurt(蒙古包)

这份手册是我在Solaris7中文版环境下安装配置PHP和SYBASE数据库的心得体会, 整个安装过程总共花费了11天(从11月12号到22号)时间,可谓费尽周折。安装 期间我拜访了国内外无数的网站、BBS、MAILLIST和NEWSGROUP,请教过PHP函数 的作者和SYBASE公司的工程师。在众多热心人的帮助下,我终于把它搞定了,呵 呵。既然是大家的成果,我就不敢一人独享,所以把它写出来,来帮助那些需要 帮助的人。如果我写的这篇文章帮您解决了令您头疼的问题,能不能给我发一张 贺卡,我一定会和您一样高兴的^Y^。

我的E-Mail是 yurt@163.com , yurt@21cn.com 。

=======================所需软件=======================

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进行测试,

内容如下:

$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

","www");

printf("Table:%s

","chat");

printf("Name:%s

",$field[name]);

printf("Date:%s

",$field[date]);

printf("Msg:%s

",$field[msg]);

}

sybase_close($dbHandle);

//测试非数据库环境下的中文显示。

echo "蒙古包的缕缕炊烟,轻轻地飘向蓝天,茫茫的绿草地,是我生长的摇篮。

";

?>

数据库的结构如下:

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 =======================

 
 
 
免责声明:本文为网络用户发布,其观点仅代表作者个人观点,与本站无关,本站仅提供信息存储服务。文中陈述内容未经本站证实,其真实性、完整性、及时性本站不作任何保证或承诺,请读者仅作参考,并请自行核实相关内容。
2023年上半年GDP全球前十五强
 百态   2023-10-24
美众议院议长启动对拜登的弹劾调查
 百态   2023-09-13
上海、济南、武汉等多地出现不明坠落物
 探索   2023-09-06
印度或要将国名改为“巴拉特”
 百态   2023-09-06
男子为女友送行,买票不登机被捕
 百态   2023-08-20
手机地震预警功能怎么开?
 干货   2023-08-06
女子4年卖2套房花700多万做美容:不但没变美脸,面部还出现变形
 百态   2023-08-04
住户一楼被水淹 还冲来8头猪
 百态   2023-07-31
女子体内爬出大量瓜子状活虫
 百态   2023-07-25
地球连续35年收到神秘规律性信号,网友:不要回答!
 探索   2023-07-21
全球镓价格本周大涨27%
 探索   2023-07-09
钱都流向了那些不缺钱的人,苦都留给了能吃苦的人
 探索   2023-07-02
倩女手游刀客魅者强控制(强混乱强眩晕强睡眠)和对应控制抗性的关系
 百态   2020-08-20
美国5月9日最新疫情:美国确诊人数突破131万
 百态   2020-05-09
荷兰政府宣布将集体辞职
 干货   2020-04-30
倩女幽魂手游师徒任务情义春秋猜成语答案逍遥观:鹏程万里
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案神机营:射石饮羽
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案昆仑山:拔刀相助
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案天工阁:鬼斧神工
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案丝路古道:单枪匹马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:与虎谋皮
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:李代桃僵
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案镇郊荒野:指鹿为马
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:小鸟依人
 干货   2019-11-12
倩女幽魂手游师徒任务情义春秋猜成语答案金陵:千金买邻
 干货   2019-11-12
 
推荐阅读
 
 
 
>>返回首頁<<
 
靜靜地坐在廢墟上,四周的荒凉一望無際,忽然覺得,淒涼也很美
© 2005- 王朝網路 版權所有