免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
123下一页
最近访问板块 发新帖
查看: 5627 | 回复: 20
打印 上一主题 下一主题

[Tru64 UNIX] sco 5.06 安装php+apache+informix集大成。 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2006-08-28 12:50 |只看该作者 |倒序浏览
sco 5.06 安装php+apache+informix集大成

首先声明,为何叫做集大成?因为是在前人的基础上完成的,我只是把他们的资料都集中起来完成这个安装过程。
对于那些不一定需要sco平台的,可以不看这文章,因为Linux上安装apache和php比这容易多了。
我是因为我的业务系统跟后台主机相连的中间件只有sco平台的,所以只好.........

我的目标:sco 5.06+informix 7.3.1+ClientSdk2.8.1+httpd-2.2.3+php5.1.6

另外,如果是为了学习,最好用vmware上安装虚拟机,安装完后,把安装文件备份一个,免得后面的安装过程失败导致系统无法启动,
这个时候你就知道这个备份的重要性了。

至于vmware上怎么安装sco,我不想多说些什么,因为用比较高版本的vmware,比如我用的是vmware workstatiion 4.5 7174build的,安装sco,就像vmware上安装windows系列那么简单,硬盘也不用设置成SCSI,直接设置成IDE,一路安装下去,绝对没有问题【论坛里经常碰到一些人跪求sco 的vmware安装文件,这下也不用再跪了,自己动手,丰衣足食】。
至于怎么安装sco,那就更不用我说了。


好,让我们开始我们的安装了。

(1)安装sco和informix,请参阅:
http://www.chinaunix.net/bbsjh/4/13316.html,这里面够详细的,而且还教你怎么用裸设备安装informix的数据空间,你是不是还在用文件型准备你的informix数据空间?那么你看了这个文章后,你就上了一个新的台阶了。
我要说的是:为了后面安装php考虑,请把安装esql包换成安装informix-ClientSdk。
下载地址ftp://ftp.boulder.ibm.com/software/data/informix/downloads/clientsdk-281-UC1-SCO.tar.Z
我用的informix 是online 7.31UD6,配这个clientsdk没有什么问题。

(2)为sco 5.06打补丁
安装补丁包rs506a和oss646C,从哪里下载和怎么安装就不用我说了。后面的安装gcc也要先打这两个补丁。
我要说的是:我在安装rs506a的时候,如果把最后面的那个USB的什么东东的,安装后,重新启动机器,结果就启动不进去了,在ctrl-d之前就死了;
还好我有系统的备份,不用重新安装sco。后来就不安装那个USB的东西了。

oSS648C,好像是oss646C的升级版本,不知道是不是更好。

(3)安装Gnu gcc
安装gcc至少到3.X版本,是一切安装成功的基础。
有些人想到直接去gnu网站拉个gcc source回来make,这个想法当然好,可是我从gcc3.0到 gcc4.1都试了,没有一个能够成功的,不知道大家有没有成功的。
我这里的方法可以说是“二级跳”,首先先安装sco 507带的gnu gcc,然后再在这个基础上安装,我安装的是gcc 3.4.3,而且要下载那些core的来安装,如果还是用那些source的,还是不成功。
当然这个方法也不是我原创。
原文参阅http://www.chinaitpower.com/2005September/2005-09-13/194981.html
里面提到的gwxlibs-1.3.2Ag和gnutools-5.0.7Kj可以从
ftp://ftp.sco.com/pub/openserver5/opensrc下载
先安装gwxlibs-1.3.2Ag再安装gnutools-5.0.7Kj,安装完后,其安装目录我记得是/usr/gnu,总之是一个叫做gnu的目录。
这个时候你系统的gnu make 是3.80,gcc是2.95.3版本;gnu make是够用了,可是gcc还是不够哟,
所以还得按照文章里面说的进行第二步安装。
我要说的是一定要用core的,如果还是用souces的,还是安装不成功哟。
另外我要重要说明的是:安装gcc 3.4.3的时候,在用make的时候,一定要带上路径/usr/gnu/bin/make,否则直接make的法,系统用的可是sco自带的make,包括后面的make install也是如此。
make的过程中,我记得会出现什么问题了,好像是一个PATH_MAX问题,可以这样解决:
在报错的那个文件里面如下定义
#ifndef PATH_MAX
#ifdef _POSIX_PATH_MAX
#define PATH_MAX _POSIX_PATH_MAX
#else
#define PATH_MAX 255
#endif
#endif

后面的一些安装也会碰到这个PATH_MAX,也是同样解决。



这个时候你还得做一步:
参阅文章:http://www.nixsky.com/data/2006/0627/article_225.html,
文章前面的7步不用再看了,主要是第8步一定要做哟。

安装完后,你的Gcc就变成3.4.3的了,够用了,你也已经成功一半了。

这个时候你还得注意设置环境变量PATH,要让环境能自动找到这个3.4.3的gcc,而不是gnutools带的gcc2.95.3。
可以用gcc -v查看是不是3.4.3。

(4)安装libxml2
参阅文件http://www.chinaunix.net/jh/7/692253.html
安装完后,增加环境变量PATH路径到libxml的lib所在目录。

(5)安装httpd-2.2.3
我要把apache装成DSO的模式,如果你要把她装成static模式,可以参阅INSTALL文件。
主要是./configure带的参数问题:
如果你简单的./configure 的法,后面的make就会出现一些问题,所以我的做法是enable了一些东西来禁止了一些东西【就说打开这个开关,其他的开关自动就关闭了】,因为我用不到这些功能。
我的configure如下:


  1. ./configure --prefix=/usr/local/apache \
  2. --enable-file-cache \
  3. --enable-echo \
  4. --disable-charset-lite \
  5. --enable-charset-lite \
  6. --enable-cache \
  7. --enable-disk-cache \
  8. --enable-example \
  9. --enable-case-filter \
  10. --enable-case-filter-in \
  11. --enable-ext-filter \
  12. --enable-dumpio \
  13. --enable-ext-filter \
  14. --enable-deflate \
  15. --enable-log-forensic \
  16. --enable-logio \
  17. --enable-mime-magic \
  18. --enable-headers \
  19. --enable-proxy \
  20. --enable-proxy-connect \
  21. --enable-proxy-ftp \
  22. --enable-proxy-http \
  23. --enable-optional-hook-export \
  24. --enable-optional-hook-import \
  25. --enable-optional-fn-import \
  26. --enable-http \
  27. --enable-cgi \
  28. --enable-cgid \
  29. --enable-speling \
  30. --enable-rewrite \
  31. --enable-so \
  32. --with-suexec-uidmin \
  33. --with-suexec-gidmin \
  34. --with-suexec-logfile \
  35. --with-suexec-safepath \
  36. --enable-static-htpasswd \
  37. --enable-static-htdigest \
  38. --enable-static-rotatelogs \
  39. --enable-static-ab \
  40. --enable-static-logresolve \
  41. --enable-static-htdbm \
  42. --enable-static-checkgid
复制代码


后面的那些--enable-static就是为了禁止掉一些功能,否则老是make不过去,就比如如果没有--enable-static-htpasswd,则make的时候就出现htpasswd无法编译过去的问题。
我的这个configure不能满足所有人的要求,大家可以自己配置,make的时候可能也会出现
一些新问题,大家可以到google查阅,一般都能解决问题。

然后是make,同样的也是要/usr/gnu/bin/make。

make的过程中可能也会出现一个问题,查阅http://www.chinaunix.net/jh/7/699715.html
vi srclib/apr/include/arch/unix/apr_private.h
找到包含HAVE_GETADDRINFO的一行,删除,存盘退出,开始编译。


然后/usr/gnu/bin/make install,这个时候就出现一个问题,man无法安装,还好这个 man无关紧要,
你可以修改Makefile里面的INSTALL_TARGETS这个变量,把最后一个install-man去掉,这样就不会安装man了,我也找不出为什么会这样,只能用这个土办法解决了。但是安装apache1.3.X的,就没有这个问题了。

然后设置conf/httpd.conf,你可以更改user 和group的设置,sco一般用nouser,nogroup;
还有就是端口的问题,如果你还想用80端口,那么你还得做一个“禁用fasttrack”的问题;
fasttrack就是sco5.06自己安装的http服务了,要想禁用掉它,可以
先执行/etc/scohttp disable,
然后删除/etc/rc2.d下的三个文件:

-rwxr--r--   1 root     sys         1255 Jul  8 19:54 S90atlas@
-rwxr-xr-x   1 bin      bin         1017 Jul  8 20:10 S90fasttrack@
-rwxr-xr-x   2 bin      bin         4486 Jul  8 19:54 S91manahttp

然后重新启动机器,这个时候fasttrack就没有起来了。
你就可以把apache设置成80端口了,启动apache
apachectl -k start,出现问题

./apachectl: bad option(s)
./apachectl: bad option(s)

可以通过修改apachectl里面的第一行:#!/bin/sh为#!/bin/ksh。
为什么要这样,我也不清楚。

好,现在的 apache可以启动了,执行apachectl -k start,然后访问一下,是不是得到一个页面说“it works”??

(6)安装PHP
我要安装的是PHP-5.1.6
一般不会出现什么问题,这要是这是环境变量和设置configure参数的问题。
首先重要的环境变量:
大家看看我的设置:

  1. INFORMIXDIR=/usr/informix
  2. LD_LIBRARY_PATH=/usr/informix/lib:/usr/informix/lib/esql:/usr/informix/lib/cli:/usr/local/lib:/usr/lib
  3. export INFORMIXDIR LD_LIBRARY_PATH

  4. SQLEXEC=$INFORMIXDIR/lib/sqlexec ; export SQLEXEC
  5. TERMCAP=$INFORMIXDIR/etc/termcap ; export TERMCAP
  6. INFORMIXTERM=terminfo ; export INFORMIXTERM
  7. INFORMIXSERVER=online;export INFORMIXSERVER
  8. PATH=$PATH:$INFORMIXDIR/bin:/usr/netbank/easynet/bin
  9. export PATH

复制代码


其中最重要的是LD_LIBRARY_PATH的设置,主要是设置一些informix库的路径,根据你们自己的配置修改。

第二、configure参数问题;
先看看我的设置:

  1. ./configure \
  2. --with-apxs2=/usr/local/apache/bin/apxs \
  3. --with-apxs2-filter=/usr/local/apache/bin/apxs \
  4. --with-apxs2handler=/usr/local/apache/bin/apxs \
  5. --with-apache2=/usr/local/apache \
  6. --without-mysql \
  7. --without-sqlite \
  8. --with-informix=/usr/informix \
  9. --with-zlib-dir=/usr/lib \
  10. --with-zlib \
  11. --with-gnu-ld \
  12. --enable-discard-path \
  13. --disable-force-cgi-redirect \
  14. --enable-shared \
  15. --disable-static \
  16. --disable-debug \
  17. --disable-rpath \
  18. --disable-hash \
  19. --enable-pic \
  20. --enable-inline-optimization \
  21. --enable-memory-limit \
  22. --enable-magic-quotes \
  23. --enable-debugger \
  24. --enable-track-vars \
  25. --enable-libgcc \
  26. --with-versioning \
  27. --with-mod_charset \
  28. --with-regex=php \
  29. --with-pear \
  30. --with-xml \
  31. --with-libxml-dir=/usr/local/lib \
  32. --with-xsl=/usr/local/lib \
  33. --enable-track-vars \
  34. --enable-trans-sid \
  35. --enable-safe-mode \
  36. --enable-ctype \
  37. --enable-ftp \
  38. --enable-posix \
  39. --enable-session \
  40. --enable-sysvsem \
  41. --enable-sysvshm \
  42. --enable-yp \
  43. --enable-pdo \
  44. --without-kerberos \
  45. --prefix=/usr/local/bin
复制代码


这样设置安装成功后,执行php -m得到的模块列表是:
[PHP Modules]
ctype
date
dom
ftp
iconv
informix
libxml
pcre
PDO
posix
Reflection
session
SimpleXML
SPL
standard
sysvsem
sysvshm
tokenizer
xml
xmlreader
xmlwriter
xsl
zlib

[Zend Modules]

感觉好像没有zend的支持,但是我在后面用zend api写的php扩展库都没有什么问题。
这里要说的重点是:--enable-libgcc 这个一定要加上。
make同样也是/usr/gnu/bin/make,好像也会有PATH_MAX的问题,一个样的解决。
另外,我记得好像我安装的似乎后也出现一个libsocket.so的问题,说是libsocket.so.1与libsocket.so.2里定义的一个变量_res,
一个是512,一个是496什么的,可以先查看/usr/lib/下面这两个库,它们都是些链接文件,把它们都连接到同
一个文件就可以了。



上面的安装过程只是我的环境下的过程,在你们的环境下可能还会出现一些问题,最好的办法就是google。
整个过程其实最重要的就是gcc的问题。其他的都是比较容易解决。

gnu gcc,httpd,php, libxml2都可以从各自的官方网下载。

这样就安装完成了,php也支持informix了;当然你还可以再装一个pdo_informix扩展库,用ibm提供的这个Pdo_informix驱动连接informix更简单,更方便,当然php 在configure的时候别忘记--enable-pdo。
pdo_informix可以从ibm官网上下载。

[ 本帖最后由 mill888 于 2006-8-28 12:57 编辑 ]

论坛徽章:
0
2 [报告]
发表于 2006-08-28 15:49 |只看该作者
好贴留名,
不过有一点要更正,oss648和oss646c是不同的,
oss646c是执行环境补丁,乃oss646b的升级,用于兼容GNU标准代码
oss648c是smp多cpu补丁

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
3 [报告]
发表于 2006-08-28 16:22 |只看该作者
这个帖子和我做成功的差不多了。

但有如下两个方面需要注意:

一、我的 php 的configure 中不能带 with-yp 否则,安装没有成功(即出现 apache start 起来没有错误提示,但实际上 apache 服务并没有起来)。

二、安装 gcc 3.4.3  的时候,需要增加的一个 define 定义是:

#define PATH_MAX_LEN 255    ( 需要说明的是,我定义的是 1024 )

其他的好象没有什么了。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
4 [报告]
发表于 2006-08-28 17:10 |只看该作者
再补充一点:

好象是编译 gcc 的时候,会出现 yacc 的版本过底,词法效验通不过的问题,解决的办法是在运行 configure ,编译配置之前,指明 YACC ;
即:
YACC=/usr/gnu/bin/yacc;export YACC

论坛徽章:
0
5 [报告]
发表于 2006-08-28 17:23 |只看该作者
原帖由 snow888 于 2006-8-28 17:10 发表
再补充一点:

好象是编译 gcc 的时候,会出现 yacc 的版本过底,词法效验通不过的问题,解决的办法是在运行 configure ,编译配置之前,指明 YACC ;
即:
YACC=/usr/gnu/bin/yacc;export YACC

大侠你还没说你是怎么搞定zend的??
我的装完后,phpinfo得到的页面是有提示一个zend 2大图标,是不是zend已经成功了,而且我想也应当是成功了,因为我后来用zend api开发的php扩展库里面调用zend api的一些函数,都没有什么问题,比如zend_prinf。
但是奇怪的是php -m里面关于zend的,除了有一行[Zend Modules]外,其他就没有关于zend了。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
6 [报告]
发表于 2006-08-28 19:10 |只看该作者
原帖由 mill888 于 2006-8-28 17:23 发表

大侠你还没说你是怎么搞定zend的??
我的装完后,phpinfo得到的页面是有提示一个zend 2大图标,是不是zend已经成功了,而且我想也应当是成功了,因为我后来用zend api开发的php扩展库里面调用zend api的一些函 ...


有一段时间了,记得不是很清晰了。

好像在编译 php 之前要先安装 fsupthreads 的几个包,这几个包都可以到 sco 的官方网站上下载。

另,在运行 configure 时通过 --help 参数察看,好像是里面有 zend 的开关。

还想求助大虾一点,能否公布你的 clientsdk-281-UC1-SCO.tar.Z 的序列号。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
7 [报告]
发表于 2006-08-28 19:16 |只看该作者
另:
能不能提供你的 apache、php 包等的下载地址。

我编译的版本比你的稍低。

谢谢先!

论坛徽章:
0
8 [报告]
发表于 2006-08-28 19:37 |只看该作者
原帖由 snow888 于 2006-8-28 19:16 发表
另:
能不能提供你的 apache、php 包等的下载地址。

我编译的版本比你的稍低。

谢谢先!


http://httpd.apache.org/
http://www.php.net/

真正的官方正版软件,

论坛徽章:
0
9 [报告]
发表于 2006-08-28 19:39 |只看该作者
原帖由 snow888 于 2006-8-28 19:10 发表


有一段时间了,记得不是很清晰了。

好像在编译 php 之前要先安装 fsupthreads 的几个包,这几个包都可以到 sco 的官方网站上下载。

另,在运行 configure 时通过 --help 参数察看,好像是里面有 zend 的 ...


clientsdk-281-UC1-SCO.tar.Z 不用系列号的啊。

论坛徽章:
1
2015年辞旧岁徽章
日期:2015-03-03 16:54:15
10 [报告]
发表于 2006-08-31 21:30 |只看该作者
再次请教楼主两个问题:

一、在我的印象中,gcc 编译安装后,原来的 gcc 2.9.5.3 必须予以删除,否则没有办法使用新的 gcc 3.4.3 ,而删除 gcc 2.9.5.3 后,gmake 等工具也就一并删除了,这个问题楼主是如何处理的。

二、我原来编译的是  apache 2.0.50 版本,没有遇到 htpasswd 编译时出现的 __h_errno ,但在新的 apache 2.2.3 的版本编译的时候,这个问题出现了,而且按照 sunlan 老大的方法也避免不了,不知道楼主是如何解决这个问题的。

三、我查了 configure --help 的提示,楼主配置的参数 -enable-static 是把紧随其后的相应模块编译成静态方式,而不是动态。

我的 gcc 编译器是 3.2.1 的版本,gmake 3.7.8.1 ,gawk 3.0.3,bison 1.25。
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP