主题:Web服务器搭建;
一 基本环境部署方案简介
Apache和Php环境部署,已做了总结,请参考”Apach集成PHP”;
数据库选用Oracle11g2r;在本地需要安装服务端和客户端;
二 Oracle资源介绍
01 Oracle 服务端
资源列表:
11gR2_1of2.zip // 简称文件a
11gR2_2of2.zip // 简称文件b
安装方法:
解压文件a,b到同一个指定路径;如: D:/oracle/database 目录下;然后运行setup.exe即可。界面操作,网上有详细的操作;
注意事项:
1) 服务在注册表的运行路径;
OracleMTSRecoveryService 如果启动失败,则需要在注册表中查看其运行路径是否正确。
注册表路径:
HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/services/OracleMTSRecoveryService
ImagePath的键值:
E:\app\Administrator\product\11.2.0\dbhome_1\BIN\omtsreco.exe “OracleMTSRecoveryService”2) 检查关键服务是否存在
OracleDBConsoleorcl服务如果不存在或者没有启动,无法访问服务端的数据库;
解决方法:http://jingyan.baidu.com/article/a3761b2ba3eb571577f9aa47.html; 在cmd执行如下命令;
1)>>emca -repos drop
2)>>emca -repos create
3)>>emca -config dbcontrol db
4)>>set ORACLE_UNQNAME=ORCL
5)>>emctl start dbconsole
02 oracle客户端
//注:建议安装,目的是为了部署PHP+Apache+Oracle环境;
资源列表
win64_11gR2_client.zip // 可参考网上的客户端访问服务端的配置;
03 安装PL/SQL来访问oracle
资源列表:
plsqldev9.rar
三 PHP访问Oracle数据库
01 配置PHP环境
1) 设置php.ini对oci8的支持;
extension=C:\php5.5\ext\php_oci8_11g.dll ; Use with Oracle 11gR2 Instant Client
特别注意:此处写的是绝对路径,网上很多资料都只是写个文件名;差异在于:当php安装在根目录且文件名为php时,php脚本在应该能正确加载此dll;但是如果自定义文件名时,很有可能就会加载不到,使得脚本运行失败(此处,我的文件夹名为php5.5)
2) 拷贝php_oci8_11g.dll到windows的system32目录下;如果是64bit,还需要拷贝到C:\Windows\SysWOW64目录下;
四 环境测试成功实例
<?php /************************************* 主题:PHP访问Oracle数据库 *************************************/ echo 'Filename: oracle.php ';// 连接方法1:$conn = oci_connect('system','123456','(DEscriptION=(ADDRESS=(PROTOCOL =TCP)(HOST=172.27.5.16)(PORT = 1521))(CONNECT_DATA =(SID=orcl)))');// 连接方法2: //$conn = oci_connect('system','123456','172.27.5.16/orcl');// 连接方法3: //set adocon=Server.Createobject('adodb.connection') //adocon.open'Driver={microsoft odbc for oracle};server=oraclesever.world;uid=system;pwd=123456;'// 连接方法4: //set adocon=Server.Createobject('adodb.connection') //adocon.open'Provider=OraOLEDB.Oracle;data source=orcl;user id=system;password=123456;' $stmt = oci_parse($conn,'select * from customers'); oci_execute($stmt); $nrows = oci_fetch_all($stmt,$results); echo $nrows; echo '<table border=\'1\'>\n'; echo '<tr>\n'; foreach($results as $key=> $val) { echo '<th>$key</th>\n'; } echo '</tr>\n'; for($i = 0;$i <$nrows;$i++) { echo '<tr>\n'; foreach($results as $data) { echo '<td>$data[$i]</td>\n'; } echo '</tr>\n'; } echo '</table>\n'; oci_close($conn); echo ' end';?>
五 其他
01 Oracle服务启动列表
注:服务开启后,会对系统产生很大的负荷。手动类型的服务,在非必要情况,建议关闭;
联系客服