Chinaunix首页 | 论坛 | 博客
  • 博客访问: 10805396
  • 博文数量: 2905
  • 博客积分: 20098
  • 博客等级: 上将
  • 技术积分: 36298
  • 用 户 组: 普通用户
  • 注册时间: 2009-03-23 05:00
文章存档

2012年(1)

2011年(3)

2009年(2901)

分类: LINUX

2009-03-23 11:27:48

apache2+php+oracle9的安装
 
本文章来自 青鸟网络技术论坛
1、前言:
 
对于unix(linux)来说,apachephp是个不错的选择。对于小型的网站,比较通用的是apache+php+mysql,优点不比说了。但是,对于大型的网站,需要对数据库检索和连接请求高的站点,mysql还是出现了他的局限性。很多门户网站,例如:sinatomsohuchina等,都是用了新闻发稿器的生成静态页面。但是这个新闻发稿器,很多都是通过apachephp来完成,大量的资料放在数据库中,用户访问的时候,在由程序生成静态页面。所以,apache+php+oracle是比较合理的选择。


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


2
、结构:

主机两台:

odb --
安装oracle server,作为数据存储。

webapp ---
安装oracle clientapache+phpphp通过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的安装:

这里关于oracle9redhat9上的安装,大家查看论坛响应的其他文章,这里就不过多写了。为了上下文,这里建立库为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调用oracle99.0.2 --10 )的时候需要安装一个patch,不然会出现问题。但是oracle8的版本没有问题。oracle的官方网站上有下载,地址如下:




# cp ociheaders.tar  /opt/oracle/product/9.2.0/rdbms/demo/
# cd cd /opt/oracle/product/9.2.0/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这个补丁的。对于oracle7php要用--with-oracle=的参数。

阅读(845) | 评论(0) | 转发(0) |
给主人留下些什么吧!~~