All articles| All Pictures| All Softwares| All Video| Go home page| Write articles| Upload pictures

Reading number is top 10 articles
ASP.NET2.0实现网站的自动升级_[Asp.Net教程]
网页最简短的拖动对象代码实例演示_JavaScript技术_编程技术
如何解决php能连接mssql但读取不到表_[PHP教程]
Mssql批量修改权限_[SQL Server教程]
一个使用存储过程实现的用户登录功能(含代码)_[Asp.Net教程]
配置 SQL Server 2005 远程调试存储过程_[SQL Server教程]
SQL,Server,2005数据库产品线的扩展_[SQL,Server教程]
PHP强制对象类型之instanceof操作符_[PHP教程]
ASP.NET中设置默认提交按钮的代码_[Asp.Net教程]
c#.net连接access操作类_[Asp.Net教程]
Reading number is top 10 pictures
yy365网站上的美女2
餐桌上的鱼
Azusa Yamamoto1
NeedWallpaper7
这玉米,买还是不卖?
Group of female porn in 《westwards》, uninhibited woman threatened to not the bottom line
在加油站厕所门口看到的告示
Original author said, this is the Hengyang people
NeedWallpaper14
30 beautiful school beauty6
Download software ranking
Kung fu panda - the secret of the teacher
Desire a peach blossom
Boxer vs Yellow5
Unix video tutorial13
WebService在.NET中的实战应用教学视频 → 第1集
超级战舰
Tram sex maniac 2 (H) rar bag18
Proficient in JavaScript
Tram sex maniac 2 (H) rar bag15
WebService在.NET中的实战应用教学视频 → 第4集
delv published in(发表于) 2013/12/29 4:42:41 Edit(编辑)
为Linux和Windows安装PHP和Oracle_php资料_编程技术

为Linux和Windows安装PHP和Oracle_php资料_编程技术

为Linux和Windows安装PHP和Oracle_php资料_编程技术-你的首页-uuhomepage.com
Oracle 10g Instant Client(免费下载)是PHP 与远程 Oracle 数据库连接的最简单方式,它只需要安装三个库。
  PHP 访问 Oracle 的当前 API 所使用的 Instant Client 库称作 OCI8.(此 C 接口的名称最早是在 Oracle8 中引入的。)PHP Oracle 8 函数 可以直接调用 Oracle 8.1.7、9.x 或 10.x,或者也可以为了方便起见,使用可选的抽象类,如 PEAR MDB2 和 ADOdb。
  Instant Client 也可以使用老版本的 PHP“oracle”扩展,但它调用不赞成使用的 Oracle API。PHP 界或 Oracle 建议不要使用此扩展进行新的开发。
  要在 Apache 上将 Instant Client 与 PHP 4 或 连用,请遵循以下步骤。需要一个现有的 Oracle 数据库;Instant Client 不提供 Oracle 数据库。通常情况下,此数据库将位于其他计算机上。如果数据库位于本地,则 Oracle 组件一般早已可用,从而不需要 Instant Client。
  软件需求:   软件 附注
Oracle Instant Client 下载“Instant Client Package - Basic”。在 Linux 上,还应下载“Instant Client Package - SDK”。
Apache HTTPD Server PHP 界仍推荐 Apache 1.3
PHP — PHP 超文本处理器 4.3 版或更高版本
  在 Windows 上启用 PHP OCI8 扩展
  Instant Client 二进制文件是 PHP 的 Windows 预构建二进制文件的补充。
下载 PHP 二进制压缩文件(不是安装程序版本)和 Apache。按照 PHP 手册中的 Windows 系统上的安装安装它们。OTN 的开放源代码开发人员中心包含有用背景资料的链接,如“在 Windows 2000/XP 上安装 Oracle、PHP 和 Apache”,它介绍了如何安装传统、完整的 Oracle 10g 版本(Instant Client 不需要此版本)。
继续操作之前检查 PHP 是否正常运行。此阶段未启用 Oracle 支持。
从 OTN 的 Instant Client 页面下载用于 Windows 的 Instant Client Basic 程序包。此压缩文件的大小大约为 30MB。
创建一个子目录(例如,c:\instantclient10_1),然后从压缩文件中复制以下库:
oraociei10.dll
orannzsbb10.dll
oci.dll
这三个文件的总大小大约为 80MB。
要使用 PHP 老版本的“oracle”扩展(在 php.ini 中使用“extension=php_oracle.dll”启用),则复制 ociw32.dll 而非 oci.dll。
编辑此环境,将 c:\instantclient10_1 添加到 PATH 中(位于其他 Oracle 目录之前)。
例如,在 Windows 2000 上,依次单击“开始”->“设置”->“控制面板”->“系统”->“高级”->“环境变量”,编辑系统变量列表中的 PATH。
如果使用了 tnsnames.ora 文件定义 Oracle Net 服务名称,则将 tnsnames.ora 复制到 c:\instantclient10_1,并将用户环境变量 TNS_ADMIN 设置为 c:\instantclient10_1。也可以在用户环境变量 LOCAL 中定义默认的服务名称。
设置必要的 Oracle 全球化语言环境变量,如 NLS_LANG。如果没有设置,则使用默认的本地环境。有关更多详细信息,请参见 Oracle PHP 应用程序全球化概述。
无需设置不必要的 Oracle 变量,如 ORACLE_HOME 和 ORACLE_SID。
编辑 php.ini,并不要将 OCI8 扩展设为注释:
extension=php_oci8.dll
将 extension_dir 指令设置为完整的 PHP 扩展 DLL 路径。在 PHP 4 中,DLL 位于 PHP 软件的“extensions”子目录中。在 PHP 5 中,它们位于“ext”中。

重新启动 Apache。

  要检查是否配置了扩展,请在 web 服务器可以读取的地方创建一个简单的 PHP 脚本。 phpinfo();?>
  使用“http://”URL 将此脚本加载到浏览器中。浏览器页面应包含一个显示 “OCI8 Support enabled”的“oci8”部分。
在 Linux 上启用 PHP OCI8 扩展
 要在 Linux 上添加 Oracle 连接,需要重新编译 PHP。
  开放源代码开发人员中心包含有用背景资料的链接,如在 Linux 上安装 Oracle、PHP 和 Apache,它介绍了如何安装传统、完整的 Oracle 10g 版本(Instant Client 不需要此版本)。

下载并安装 Apache。例如,在您的主目录中安装它: cd apache_1.3.31./configure --enable-module=so
--prefix=$HOME/apache
--with-port=8888makemake install
编辑 $HOME/apache/conf/httpd.conf 并添加: AddType application/x-httpd-php .phpAddType application/x-httpd-php-source .phps

下载并解压缩 PHP。

从 OTN 上的 Instant Client 页面下载 Basic 和 SDK Instant Client 程序包。这两个 RPM 的总大小大约为 30MB。

以 root 用户的身份安装 RPM。rpm -Uvh oracle-instantclient-basic-10.1.0.3
-1.i386.rpmrpm -Uvh oracle-instantclient-devel
-10.1.0.3-1.i386.rpm
第一个 RPM 将 Oracle 库置于 /usr/lib/oracle/10.1.0.3/client/lib 中,第二个 RPM 在 /usr/include/oracle/10.1.0.3/client 中创建头 (header)。
备份此补丁,然后将它应用于 PHP 的 ext/oci8/config.m4。该补丁的行号是基于 PHP 4.3.9 的。如果已修复了 PHP 错误 31084(很有可能已在 PHP 4.3.11 和 5.0.4 中修复),则不需要此补丁。
如果使用的是 PHP 4.3.9 或 4.3.10,则可以将此补丁保存到一个文件中(如 php_oci8ic_buildpatch),然后使用以下命令安装它:patch -u config.m4 php_oci8ic_buildpatch
此补丁创建一个新的 PHP 配置参数:--with-oci8-instant-client[=DIR].在 Linux 上,默认情况下,它使用从 RPM 中安装的最新版本的 Instant Client。可以指定 Oracle 库所在的目录来使用其他版本。无论在哪种情况下,都将自动使用正确的 SDK 头。
新参数与现有的 --with-oci8 参数互斥。
例如:在非 Linux 平台上,将 Instant Client 程序包解压缩到您所选择的目录中。--with-oci8-instant-client 参数将需要明确指定此目录;例如,--with-oci8-instant-client=/home/instantclient10_1。应将 Instant Client SDK 解压缩到与基本程序包相同的目录中,以便薷暮蟮呐渲媒疟究梢哉业酵肺募淖幽柯肌?
在顶层 PHP 目录中重新构建“configure”脚本。 cd php-4.3.9rm -rf autom4te.cache config.cache./buildconf --force

使用新选项运行 configure。此示例使用安装在主目录中的 Apache。 ./configure \--with-oci8-instant-client \--prefix=$HOME/php
--with-apxs=$HOME/apache/bin/apxs
\--enable-sigchild --with-config-file-path=$HOME
/apache/conf

重建 PHP。makemake install

将 PHP 配置复制到 --with-config-file-path 指定的位置cp php.ini-recommended $HOME/apache/conf/php.ini
将 LD_LIBRARY_PATH 设置为 /usr/lib/oracle/10.1.0.3/client/lib 并重新启动 Apache。
如果使用了 tnsnames.ora 文件定义 Oracle Net 服务名称,则将 TNS_ADMIN 设置为包含此文件的目录。
启动 Apache 之前应设置所有 Oracle 环境变量。以下脚本可以帮助完成此操作: #!/bin/shAPACHEHOME=/home/apacheLD_LIBRARY_PATH
=/usr/lib/oracle/10.1.0.3/client/lib:
${LD_LIBRARY_PATH}TNS_ADMIN
=/homeexport LD_LIBRARY_PATH TNS_ADMINecho
Starting Apache $APACHEHOME/apachectl start

要确认是否配置了扩展,请在 web 服务器可以读取的地方创建一个简单的 PHP 脚本。 phpinfo();?>
  使用类似“http://localhost:8888//phpinfo.php”的 URL 将此脚本加载到浏览器中。浏览器页面应包含一个显示“OCI8 Support enabled”的“oci8”部分。   连接到 Oracle
  Oracle 连接信息被传递给 OCILogon() 来创建连接。与 Instant Client 关联的工具通常“远离”任何数据库服务器,因此必须将 Oracle Net 连接标识符与用户名和口令一起使用。对于已建立的 Oracle 数据库,连接信息有可能是众所周知的。对于新系统,此信息由 Oracle 安装程序在安装数据库时提供。此安装程序应配置了 Oracle Net 和创建了一个服务名称。
  在新数据库中,可能需要将演示模式(如 HR 用户)解除锁定并向其提供口令。也可通过在 SQL*Plus 中以 SYSTEM 用户身份连接并执行以下语句来完成此操作:ALTER USER 用户名 IDENTIFIED BY 新口令 ACCOUNT UNLOCK;
  将连接信息传递给 PHP 有多种方法。第一个示例使用 Oracle 10g的 Easy Connect 语法连接到 在 mymachine 上运行的 MYDB 数据库服务中的 HR 模式。不需要 tnsnames.ora 或其他 Oracle Network 文件:   $c = OCILogon('hr', 'hr_password', '//mymachine.mydomain/MYDB');
  有关 Easy Connect 的语法,请参见 Oracle 的使用 Easy Connect 命名方法文档。
  或者,如果 /home/tnsnames.ora 包含: MYDB =(DESCRIPTION=(ADDRESS = (PROTOCOL = TCP)(HOST = mymachine.mydomain)(PORT = 1521))(CONNECT_DATA=(SERVER = DEDICATED)(SERVICE_NAME = MYDB) ) )
且 TNS_ADMIN 环境变量设置为 /home(在启动 Apache 之前),则连接字符串可以为: $c = OCILogon('hr', 'hr_password', 'MYDB');
  如果环境变量 LOCAL(在 Windows 上)或 TWO_TASK (在 Linux 上)设置为 MYDB,则可以使用以下代码生成与 MYDB 连接: $c = OCILogon('hr', 'hr_password');  使用 Oracle
  当基本连接可以使用时,试着运行一个简单的脚本 testoci.php。根据您的数据库修改该连接的详细信息并在浏览器中加载它。此示例列出了用户 HR 拥有的所有表: $conn = OCILogon("hr", "hr_password", '//mymachine.mydomain:port/MYDB);$query = 'select table_name from
user_tables';$stid = OCIParse($conn, $query);OCIExecute($stid, OCI_DEFAULT);while ($succ = OCIFetchInto($stid, $row)) {foreach ($row as $item) {echo $item." "; }echo "\n"; }OCILogoff($conn); ?>  故障诊断
  Oracle PHP 故障诊断常见问题解答包含有关连接 Oracle 的有用信息。
  可以从 Instant Client 页面下载 Oracle 的 SQL*Plus 命令行工具来帮助解决环境问题和连接问题。另请参见 SQL*Plus Instant Client 版本说明。
 检查 SQL*Plus 使用的环境是否与 phpinfo.php 显示的环境相同。
  Windows 帮助
如果 phpinfo.php 脚本没有生成显示“OCI8 Support enabled”的“oci8”部分,则确认在 php.ini 中没有将“extension=php_oci8.dll”设为注释。
  如果 PATH 设置错误,或找不到 Oracle 库,则启动 Apache 将显示警告:“在指定的路径中找不到动态链接库 OCI.dll。”phpinfo() 页面的 Environment 部分将显示 PATH 的值以及 PHP 实际使用的 Oracle 变量。
  如果 php.ini 的 extension_dir 指令不正确,则在启动 Apache 将显示警告:“PHP 启动:无法加载动态库 php_oci8.dll。”
  Linux 帮助
  仔细检查是否正确修复了 config.m4。如果“configure”失败,则检查 config.log 文件。还原 config.m4,删除缓存文件,运行 ./buildconf --force and configure,验证问题是否与所做的更改相关。
  确保“configure”上的时间戳是当前的。删除所有缓存文件,并在必要时重建它。
  在启动 Apache 的 shell 中设置所有必要的 Oracle 环境变量。
  结论
  希望本文对您能有所帮助。您可以在 OTN Instant Client 或 PHP 论坛上发表问题和建议。




添加到del.icio.us 添加到新浪ViVi 添加到百度搜藏 添加到POCO网摘 添加到天天网摘365Key 添加到和讯网摘 添加到天极网摘 添加到黑米书签 添加到QQ书签 添加到雅虎收藏 添加到奇客发现 diigo it 添加到饭否 添加到飞豆订阅 添加到抓虾收藏 添加到鲜果订阅 digg it 貼到funP 添加到有道阅读 Live Favorites 添加到Newsvine 打印本页 用Email发送本页 在Facebook上分享


Disclaimer Privacy Policy About us Site Map

If you have any requirements, please contact webmaster。(如果有什么要求,请联系站长)
Copyright ©2011-
uuhomepage.com, Inc. All rights reserved.