QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 658|回复: 1

apache2+php+oracle9 的安装(转)

[复制链接]
发表于 2005-1-6 13:10:48 | 显示全部楼层 |阅读模式
1、前言:
对于 unix(linux) 来说,apache+php 是个不错的选择。对于小型的网站,比较通用的是 apache+php+mysql,优点不比说了。但是,对于大型的网站,需要对数据库检索和连接请求高的站点,mysql 还是出现了他的局限性。很多门户网站,例如:sina、tom、sohu、china 等,都是用了新闻发稿器的生成静态页面。但是这个新闻发稿器,很多都是通过 apache+php 来完成,大量的资料放在数据库中,用户访问的时候,在由程序生成静态页面。所以,apache+php+oracle 是比较合理的选择。

由于平时都是用的 sun 的 sparc 机器,这个环境是临时搭建,用的是 redhat9,如果有喜欢用 redhat ad 的朋友,需要自己先测试一下。

2、结构:
主机两台:
odb --安装oracle server,作为数据存储。
webapp ---安装 oracle client 和 apache+php,php 通过 oracle client 来访问 oracle。
odb ip:192.168.1.2
webapp ip: 192.168.1.3 211.11.11.11
优点:安全,odb 可以用内网 ip,还能实现降低 webapp 的负载。

3、主机系统相关软件:
redhat9
oacle9 for liunx
httpd2.0.50
php-4.32

4、安装软件:
4.1、odb 的安装:
这里关于oracle9 的 redhat9 上的安装,大家查看论坛响应的其他文章,这里就不过多写了。为了上下文,这里建立库为 odb。

4.2、apache2 的安装:

# tar zxvf httpd-2.0.49.tar.gz
# cd httpd-2.0.49
# ./configure --prefix=/opt/apache --enable-so --with-mpm=worker
# make
# make install

4.3、webapp 主机上的 oracle client 安装:

4.3.1 安装好 RedHat9.0 操作系统,确保安装了以下的 RPM 开发包
gcc
cpp
glibc-devel
compat-libstdc++
glibc-kernheaders
binutils
可以使用命令来查看是否已安装了这些包
rpm –q gcc cpp compat-libstdc++ glibc-devel glibc-kernheaders binutils

4.3.2、从 Oracle 官方网站下载 Oracle9i 安装文件并使用如下命令解包

# zcat lnx_920_disk1.cpio.gz | cpio –idmv
# zcat lnx_920_disk2.cpio.gz | cpio –idmv
# zcat lnx_920_disk3.cpio.gz | cpio –idmv
然后会有 Disk1 Disk2 Disk3 三个子目录。

4.3.3、设置内核参数
# echo 4294967295 > /proc/sys/kernel/shmmax,建议放到/etc/rc.local 文件里。
或编辑/etc/sysctl.conf
kernel.shmmax=4294967295
我有 512MB 内存,所以设置这个数值。可根据实际情况设置。

4.3.4、创建 Oracle 用户帐号和安装目录
在shell下,作为root
# groupadd dba
# groupadd oinstall
# useradd –g oinstall –G dba oracle
# passwd oracle

# mkdir /opt/oracle
# mkdir /opt/oracle/product
# mkdir /opt/oracle/product/9.2.0
# chown –R oracle.oinstall /opt/oracle
# mkdir /var/oracle
# chown oracle.dba /var/oracle
# chmod 755 /var/oracle

4.3.5、设置环境变量

# vi /home/oracle/.bash_profile 文件,添加下列行
----------
export LD_ASSUME_KERNEL=2.4.1
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/9.2.0
NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16GBK";export NLS_LANG
ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data; export ORA_NLS33
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib;export LD_LIBRARY_PATH
PATH=$PATH:$ORACLE_HOME/bin;export PATH

--------------

4.3.6、安装
可以重新启动机器,让设置的参数生效,让后用 oracle 用户登陆,安装 oracle。

# ~Disk1
# ./runInstaller

安装的时候,选择安装 client。
有提示你用 root 用户执行几个脚本,按照提示做就可以了。

4.4、 php 安装
在安装php的时候,php 调用 oracle9(9.0.2 --10 ) 的时候需要安装一个 patch,不然会出现问题。但是 oracle8 的版本没有问题。oracle 的官方网站上有下载,地址如下:

http://otn.oracle.com/products/ias/ohs/htdocs/ociheaders.tar

# cp ociheaders.tar /opt/oracle/product/9.2.0/network/rdbms/demo/
# cd cd /opt/oracle/product/9.2.0/network/rdbms/demo
# tar xvf ociheaders.tar

# tar zxvf php-4.3.2.tar.gz
# cd php-4.3.2
# ./configure --prefix=/opt/php --with-zlib
--with-apxs2=/opt/apache/bin/apxs --disable-xml --without-mysql
--with-oci8=/opt/oracle/product/9.2.0
--with-config-file-path=/opt/php/etc/php.ini
--disable-rpath --without-pear
# make
# make install
# mkdir /usr/local/php/etc
# cp /home/peng/php-4.3.2/etc/php.ini-disk /usr/local/php/etc/php.ini/php.ini
# vi /usr/local/php/etc/php.ini/php.ini

5 配置软件:

5.1、启动 odb 主机上的 oracle:
以 oracle 用户登陆:

启动数据库
$ Sqlplus “ / as sysdba”
SQL>startup

启动监听程序
$ lsnrctl

5.2、配置 apache2:

# vi /opt/apache/conf/httpd.conf

添加:AddType application/x-httpd-php .php
更改下列选项如下:
Listen 211.11.11.11:80 --你的发布主机 ip
User nobody
Group nobody
DirectoryIndex index.html index.php
AddDefaultCharset Off

5.3 配置 php:

# vi /usr/local/php/etc/php.ini/php.ini
更改:
register_global =Off 为 register_global =On

5.4 配置 oracle client:
# vi /opt/oracle/product/9.2.0/network/admin/tnsnames.ora

-------------
odb =
(DESCRIPTION =
(ADDRESS_LIST =
(ADDRESS = (PROTOCOL = TCP)(HOST = 192.168.1.2)(PORT = 1521))
)
(CONNECT_DATA =
(SERVICE_NAME = odb)
)
)

--------------

到这里,系统已经全部安装成功,需要根据自己情况,配置 apache 的具体主机设置。


总结:
apche+php+oracle 一般的应用情况都是针对数据库访问量比较大,或者经常用到数据库检索的应用。很多都是为应用服务器而搭建的环境。

这里注意一点就是,这个环境的搭建,同样适合 oracle10 的版本。如果用oracle817 以下的版本,是不需要安装 ociheaders 这个补丁的。对于 oracle7,php 要用--with-oracle=的参数。
 楼主| 发表于 2005-1-6 13:12:25 | 显示全部楼层
觉得这个帖子还是不错的,希望大家能多发表发表自己的意见
回复

使用道具 举报

您需要登录后才可以回帖 登录 | 注册

本版积分规则

GMT+8, 2024-9-19 19:21 , Processed in 0.068779 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

快速回复 返回顶部 返回列表