Sun Solaris 上的 Sun、iPlanet 和 Netscape 服务器

本节包含了在 Sun Solaris 平台的 Sun Java System web Server、Sun ONE web Server、iPlanet 和 Netscape 下安装 PHP 的说明和提示。 

从 PHP 4.3.3 起,可以使用基于 NSAPI模块 PHP 脚本来生成自定义目录列表和错误页面。更多与 Apache 兼容的功能也可以使用。要了解如何在当前的 web 服务器中支持此功能,请阅读关于子请求(subrequests)的注释。 

可以在下面的链接中了解更多关于在 Netscape Enterprise Server(NES)中设置 PHP 的信息:» http://benoit.noss.free.fr/php/install-php4.html。 

要在 Sun JSWS/Sun ONE WS/iPlanet/Netscape web 服务器中编译 PHP,请为 --with-nsapi=[DIR] 输入合适的安装目录。默认的目录通常是 /opt/netscape/suitespot/。还可以阅读 /php-xxx-version/sapi/nsapi/nsapi-readme.txt。 

1.从 » http://www.sunfreeware.com/ 或其它下载站点安装下面的软件包: 

◾ autoconf-2.13 

◾ automake-1.4 

◾ bison-1_25-sol26-sparc-local 

◾ flex-2_5_4a-sol26-sparc-local 

◾ gcc-2_95_2-sol26-sparc-local 

◾ gzip-1.2.4-sol26-sparc-local 

◾ m4-1_4-sol26-sparc-local 

◾ make-3_76_1-sol26-sparc-local 

◾ mysql-3.23.24-beta(如果想要 mysql 支持)

◾ perl-5_005_03-sol26-sparc-local 

◾ tar-1.13(GNU tar) 

2. 请确认 PATH 变量包含适当的目录 PATH=.:/usr/local/bin:/usr/sbin:/usr/bin:/usr/ccs/bin,并使用 export PATH命令将其导出为环境变量。  

3. gunzip php-x.x.x.tar.gz(如果使用 .gz 版本,否则跳到 4)  

4. tar xvf php-x.x.x.tar  

5. 进入 PHP 解压缩后的目录: cd ../php-x.x.x  

6.在下面的步骤中,请确认 Netscape 服务器安装在 /opt/netscape/suitespot/ 目录中。否则,将下面命令中的该路径修改为正确的路径并运行: 

./configure --with-mysql=/usr/local/mysql \

--with-nsapi=/opt/netscape/suitespot/ \

--enable-libgcc

7. 运行 make,然后运行 make install。  

在执行了基础的安装并阅读相应的 Readme 文件后,还需要执行一些额外的配置步骤。 

Sun/iPlanet/Netscape 的配置说明

首先需要为 LD_LIBRARY_PATH 环境变量添加一些路径,以便服务器找到所需的共享库。可以使用 web 服务器的启动脚本很好的完成这一工作。启动脚本通常位于:/path/to/server/https-servername/start。或许需要编辑其配置文件,它位于:/path/to/server/https-servername/config/。 

1.添加下面一行到 mime.types(可以在管理服务器中添加): 

type=magnus-internal/x-httpd-php exts=php

2. 编辑 magnus.conf(若服务器 >= 6)或 obj.conf(若服务器 < 6)并添加下述内容。shlib 的值根据系统的配置会有所不同。它可能类似于 /opt/netscape/suitespot/bin/libphp4.so。应该在 mime types init后添加如下两行内容: 

Init fn="load-modules" funcs="php4_init,php4_execute,php4_auth_trans" shlib="/opt/netscape/suitespot/bin/libphp4.so"

Init fn="php4_init" LateInit="yes" errorString="Failed to initialize PHP!" [php_ini="/path/to/php.ini"]

(PHP >= 4.3.3)php_ini 参数是可选的。但是若使用它,便可以将 php.ini 放到 web 服务器的配置目录中去。 

3.在 obj.conf 中配置默认对象(对于虚拟服务器的类 [版本 6.0+] 是在 vserver.obj.conf中): 

<Object name="default">

.

.

.

.#注意 下面一行添加在所有“ObjectType”之后,所有“AddLog”之前

Service fn="php4_execute" type="magnus-internal/x-httpd-php" [inikey=value inikey=value ...]

.

.

</Object>

(PHP >= 4.3.3)作为附加的参数,可以在 php.ini 中添加一些特别的配置选项。例如可以设置 docroot="/path/to/docroot" 指向 php4_execute 被调用的上下文(context)。对于布尔 ini 键值,请使用 0/1 作为其值,而不是 "On"、"Off" 等(它们是无效的),例如,使用 zlib.output_compression=1,而不应使用 zlib.output_compression="On"。 

4.本步骤仅在需要配置一个由 PHP 脚本组成的目录时由必要执行(类似于一个 cgi-bin目录): 

<Object name="x-httpd-php">

ObjectType fn="force-type" type="magnus-internal/x-httpd-php"

Service fn=php4_execute [inikey=value inikey=value ...]

</Object>

之后,可以在管理服务器中配置一个目录,分配给它 x-httpd-php 风格(style)。这样在该目录中的所有文件都会被当作 PHP 来执行。这样就能很方便的将 PHP 文件更名为 .html以隐藏 PHP。 

5.认证的设置:PHP 认证不能与其它任何类型的认证一起工作。所有认证被传递到 PHP 脚本。要为整个服务器配置 PHP 认证,在默认对象中添加下面一行: 

<Object name="default">

AuthTrans fn=php4_auth_trans

.

.

.

</Object>

6. 要在单一目录使用 PHP 认证,添加如下内容: 

<Object ppath="d:\path\to\authenticated\dir\*">

AuthTrans fn=php4_auth_trans

</Object>

Note: 

PHP 使用的堆栈大小取决于 web 服务器的配置。如果运行很大的 PHP 脚本时程序崩溃,推荐在 Admin Server(在“MAGNUS EDITOR”一节)中增大此项。 

CGI 环境和对 php.ini 推荐的修改

当编写 PHP 脚本时,应特别注意 Sun JSWS/Sun ONE WS/iPlanet/Netscape 是一个多线程 web 服务器。因此,所有请求都运行在相同的进程空间(Web 服务器自己的空间),该空间仅有一套环境变量。如果想获得 CGI 变量,例如 PATH_INFO、HTTP_HOST 等,使用原有的 PHP 3.x 的方式( getenv()),或使用类似的方式(注册全局变量到环境变量,$_ENV),都是不可行的。只能获得运行中的 web 服务器的环境变量,而不能获得任何有效的 CGI 变量! 

Note: 

为什么在环境中存在(无效的)CGI 变量? 

答:这是因为从管理服务器中启动 web 服务器进程时,运行了 web 服务器的启动脚本,它事实上是一个 CGI 脚本(管理服务器中的一个 CGI 脚本!)。这便是为什么启动的 web 服务器包含一些 CGI 变量。可以尝试不从管理服务器启动 web 服务器,用 root 用户登录使用命令行手动启动它,会发现这些 CGI 形式的变量不复存在。 

要在 PHP 4.x 中正确获得 CGI 变量,仅需修改脚本使用超级全局变量 $_SERVER。如果老脚本中使用了 $HTTP_HOST 等变量,应该在 php.ini 中打开 register_globals,并且要修改变量顺序(注意:从中删除 "E",因为不需要这里的环境变量): 

variables_order = "GPCS"

register_globals = On

错误页面及自造目录列表的特别使用 (PHP >= 4.3.3)

可以使用 PHP 为 "404 Not Found" 或类似的错误代码生成错误页面。将下面几行添加到 obj.conf 中以覆盖默认的错误页面: 

Error fn="php4_execute" code=XXX script="/path/to/script.php" [inikey=value inikey=value...]

XXX 是 HTTP 错误代码。请删除任何可能干扰 Error 设置的指令。如果想为所有可能存在的错误提供一个页面,则将 code 参数删除。脚本可以通过 $_SERVER['ERROR_TYPE'] 获得 HTTP 状态代码。 

另一种可能是生成自造目录列表。只要创建一个 PHP 脚本,来显示目录列表 并在 obj.conf 中为 type="magnus-internal/directory" 将相应的默认 Service 行替换为: 

Service fn="php4_execute" type="magnus-internal/directory" script="/path/to/script.php" [inikey=value inikey=value...]

错误和目录列表页面中,原始的 URI 和翻译的 URI 均被分别储存在 $_SERVER['PATH_INFO'] 和 $_SERVER['PATH_TRANSLATED'] 变量中。 

关于 nsapi_virtual()和子请求的注意事项(PHP >= 4.3.3)

NSAPI 模块现在支持 nsapi_virtual() 函数(别名: virtual()),用来在 web 服务器上创建子请求(subrequests)和在 web 页面插入请求的结果。此函数使用了一些 NSAPI 中还没有文档说明的函数。在 Unix 下,该模块自动查找需要的函数,若它们存在则使用它们。若不存在,函数 nsapi_virtual() 被禁用。 

Note: 

但是要注意,对 nsapi_virtual() 的支持是试验性质的! 

点赞(0) 打赏

评论列表 共有 0 条评论

暂无评论

热门产品

php编程基础教程.pptx|php编程培训,php,编程,基础,教程,pptx
php编程基础教程.pptx

历史上的今天:04月20日

ThinkPHP5快速入门基础

ThinkPHP5快速入门基础一、基础快速入门 ( 一 ) :基础本章介绍了 ThinkPHP5 .0 的安装及基本使用 ,并给出了一个最简单的示例带你了解如何开始开发 ,主要包 含 :简介官网下载 omposer安装和更新CGit下载和更新目录结构运行环境入口文件调试模式控制器视图读取数据总结在学习 ThinkPHP5.0 之前 ,如果你还不理解面向对象和命名空间的概念 ,建议首先去PHP手册恶

ThinkPHP5快速入门

ThinkPHP5快速入门目 录零、序言一、基础二、URL和路由三、请求和响应四、数据库五、查询语言六、模型和关联 (1)模型定义 (2)基础操作 (3)读取器和修改器 (4)类型转换和自动完成 (5)查询范围 (6)输入和验证 (7)关联 (8)模型输出七、视图和模板八、调试和日志九、API开发十、命令行工具十一、扩展十二、杂项SessionCookie验证

热门专题

自考本科|自考本科有用吗,自考文凭,自考本科文凭,自考文凭有用吗,自考本科文凭有用吗,自考文凭承认吗
自考本科
一年制中专|中专学历,中专是什么学历,中专是什么,中专有什么专业,中专升大专,一年制中专
一年制中专
外贸网站建设|外贸网站建设,英文网站制作,英文网站设计,美国主机空间,外贸建站平台,多语言网站制作
外贸网站建设
金诺幼儿园(春城路金诺幼儿园)|昆明官渡区幼儿园,幼儿园报名,官渡区幼儿园,春城路幼儿园,幼儿园招生,学前班,昆明幼儿园,金诺幼儿园,环城南路幼儿园,石井路幼儿园
金诺幼儿园(春城路金诺幼儿园)
安徽中源管业|安徽中源管业,安徽中源管业mpp电力管,安徽中源管业cpvc电力管,安徽中源管业pe穿线管,安徽中源管业电力管,安徽中源管业排水管,安徽中源管业通信管,安徽中源管业管材
安徽中源管业
安徽中源管业有限公司|安徽中源管业有限公司,安徽中源管业有限公司介绍,安徽中源管业有限公司电话,安徽中源管业有限公司地址,安徽中源管业有限公司厂家,安徽中源管业有限公司电力管,安徽中源管业有限公司管材
安徽中源管业有限公司
弥勒综合高中|弥勒综合高中
弥勒综合高中
开放大学|开放大学报名,开放大学报考,开放大学,什么是开放大学,开放大学学历,开放大学学费,开放大学报名条件,开放大学报名时间,开放大学学历,开放大学专业
开放大学

微信小程序

微信扫一扫体验

立即
投稿

微信公众账号

微信扫一扫加关注

发表
评论
返回
顶部