前几天,我在Solaris 10上整合apache与php,其间遇到一些问题,很有代表性,在这里把相关的过程及处理措施记录下来,希望对大家有所帮助。
与solaris 9不同的是,solaris 10已经默认安装GNU开发工具(GCC,make等)。但默认的环境变量没有把相关的路径设置进去—看路径是否被设置进去,只要执行不带选项和参数的命令gcc就知道了—用find搜索文件make和gcc,然后把路径写进文件/etc/profile,我的系统的/etc/profile路径设置如下所示:
export PATH=$PATH:/usr/ccs/bin:/usr/sfw/bin改完后执行source /etc/profile就可以了。鉴于solaris 10自带的tar不太方便,用GNU tar代替它,其过程如下:
gunzip -d tar-1.16.tar.gztar xvf tar-1.16.tarcd tar-1.16./configure -prefix=/usr/local/gnutar //指定目录,否则可能报错makemake install//把包安装在目录/usr/local/gnutar了mv /usr/sbin/tar /usr/sbin/tar.orig //把系统自带的vi移动到一边,以便万一发生意外能够恢复回来//ln –s /usr/local/gnutar/bin/tar /usr/sbin/tar接下来安装apache,其过程如下:
cd /roottar zxvf httpd-2.2.0.tar.gzcd httpd-2.2.0./configure –prefix=/usr/local/apache2 –enable-somakemake instal察看是否生成目录/usr/local/apache2便知apache是否被正确安装。
安装php,其过程如下:
cd /roottar zxvf php-5.2.0.tar.gzcd php-5.2.0./configure -prefix=/usr/local/php -with-apxs2=/usr/local/apache2/bin/apxs………这个过程不能正常运行下去,出现下面的报错信息:
Configuring extensionschecking whether to enable LIBXML support... yeschecking libxml2 install dir... nochecking for xml2-config path... /usr/bin/xml2-configconfigure: error: libxml2 version 2.6.11 or greater required.这表明系统自带的libxml2版本低,需要2.6.11以上的版本。有2种办法解决这个问题:升级libxml2和重新安装一个libxml2。在运行业务的solaris 环境,升级是一个十分冒险的办法,我们这里有很多程序员胡乱升级软件包把系统弄崩溃的先例,所以强烈建议象我一样保守,重新安装一个新的libxml2。只要我们在源码安装过程中指定了安装目录,安装了新的libxml2后不会对系统产生任何危害,当然占据那一点磁盘空间是微不足道的了。下面是安装一个新的 libxml的步骤:
cd /roottar zxvf libxml2-2.6.26.tar.gz./configure –prefix=/usr/local/libxmlmakemake install这时我们再回来安装php
cd /root/php-5.2.0./configure -prefix=/usr/local/php5 -with-apxs2=/usr/local/apache2/bin/apxs-with-libxml-dir=/usr/local/libxml //配置很顺利的完成了makemake install最后一个步骤是配置和测试,实际上只需要修改apache的配置文件httpd.conf。由于在php的配置过程中使用了选项—with-apxs,因此会在htppd.conf文件中插入“LoadModule php5_module modules/libphp5.so这一行,先检查一下看受否被自动写入;然后再手动插入行“AddType application/x-httpd-php .php .pHTML,注意:.php,.phtml前面各有一个空格,没有这个空格将不能正常解析php页面,这是一个很容易忽视的问题,请初学者留意。写一个最简单的测试文件index.php,包含“,把它保存在apache根文档所在的目录(这里是/usr/local/apache/htdocs/index.php)。执行/usr/local/apache/bin/apachectl start启动apache守护进程,从浏览器输入http://IP/index.php测试,如果出现类似下面的页面,表明一切正常。以GNU源码方式来安装软件,可使各种平台的操作方法基本一致,这对负责运营各种Linux/Unix的系统管理员来说,GNU源码是一种很好的选择。
测试成功后出现画面