apache2+php+oracle9的安装[原创]
发表于:2007-05-26来源:作者:点击数:
标签:
1、前言: 对于unix( linux )来说,apache+php是个不错的选择。对于小型的网站,比较通用的是apache+php+ mysql ,优点不比说了。但是,对于大型的网站,需要对数据库检索和连接请求高的站点,mysql还是出现了他的局限性。很多门户网站,例如:sina、tom、s
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/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这个补丁的。对于oracle7,php要用--with-oracle=的参数。
声明:
写文章的时候,难免参考很多网友资料,如有雷同,不一定纯属巧合。
本着自由、共享的精神,网友可以任意转贴,转贴时请注明作者、出处。
零二年的夏天 回复于:2004-08-18 21:51:05
|
感谢!
很详细。
学习中。
|
llzqq 回复于:2004-08-19 07:39:24
|
不错,有机会一定做一下。
|
tianci3982730 回复于:2004-08-19 09:14:45
|
羡慕中。。。。
|
vipcui 回复于:2004-08-19 16:45:27
|
不错,支持,原创。
|
peng 回复于:2004-08-20 09:39:04
|
[quote:663a7c8427="vipcui"]不错,支持,原创。[/quote:663a7c8427]
不能和小崔比了,oracle你应该比我熟。。 :oops:
|
vipcui 回复于:2004-08-20 09:53:09
|
[quote:acbb0d0605="peng"]
不能和小崔比了,oracle你应该比我熟。。 :oops:[/quote:acbb0d0605]
哥哥不要给我脸上贴金了,现在我word、ppt用的最熟,文字功底见长,错别字也少多了。 :mrgreen:
|
winmxj 回复于:2004-08-27 19:26:03
|
好,下一周上班,一定在单位把这个服务器给架起来看一下啊.
我也挺想用这门技术的啊.
|
ggb98 回复于:2004-08-28 11:11:36
|
peng 问个问题好吗?http://bbs.chinaunix.net/forum/13/20040828/396072.html
|
jeffreyli 回复于:2004-08-28 14:34:27
|
不错,,,,,
俺试一试,,,,
版主能不能帮我看一下我在安装oralce时出现错误,,,,
不知是何因,,,
[oracle@redhat Disk1]$ Initializing Java Virtual Machine from /tmp/OraInstall2004-08-25_08-26
-42PM/jre/bin/java. Please wait...
Xlib: connection to ":0.0" refused by server
Xlib: No protocol specified
Exception in thread "main" java.lang.InternalError: Can't connect to X11 window server using
':0.0' as the value of the DISPLAY variable.
at sun.awt.X11GraphicsEnvironment.initDisplay(Native Method)
at sun.awt.X11GraphicsEnvironment.<clinit>(X11GraphicsEnvironment.java:59)
at java.lang.Class.forName0(Native Method)
at java.lang.Class.forName(Class.java:120)
at java.awt.GraphicsEnvironment.getLocalGraphicsEnvironment(GraphicsEnvironment.java:
5
at java.awt.Window.<init>(Window.java:188)
at java.awt.Frame.<init>(Frame.java:315)
at java.awt.Frame.<init>(Frame.java:262)
at oracle.sysman.oii.oiic.OiicInstaller.main(OiicInstaller.java:593)
[oracle@redhat Disk1]$
看信息好像是联接远端服务器出错,,,,,但我是在本地安装..
我把display改成本地ip也不行。
|
jackylau 回复于:2004-08-30 17:11:44
|
. /usr/i386-glibc21-linux/bin/i386-glibc21-linux-env.sh
export LD_ASSUME_KERNEL=2.2.5
export LDEMULATION=elf_i386_glibc21
export GCC_EXEC_PREFIX=/usr/i386-glibc21-linux/lib/gcc-lib/
export ORACLE_BASE=/home/oracle
export ORACLE_HOME=$ORACLE_BASE/product/9.2.0
export PATH=$PATH:$ORACLE_HOME/bin
export LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
export ORACLE_SID=jackylau
export ORACLE_TERM=vt100
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
umask 022
用这个试试
|
十四 回复于:2004-08-31 19:56:16
|
顶 收藏写的不错
|
peng 回复于:2004-08-31 22:53:12
|
[quote:621d5045a7="jeffreyli"]edhat Disk1]$
看信息好像是联接远端服务器出错,,,,,但我是在本地安装..
我把display改成本地ip也不行。[/quote:621d5045a7]
vi /$oracle/.profile
DISKPLAY=127.0.0.1:0.0 ; export DISKPLAY
然后重新登陆oracle看看。
这个的意思就是指定图形输出的地址。
|
gig2600 回复于:2004-09-02 20:36:51
|
http://otn.oracle.com/products/ias/ohs/htdocs/ociheaders.tar
这个补丁包是做是么用的,如果不打的话会有是么错误呢?
我的环境是php4.3.2+apache2.0.50+oracle9.2.0.4.
|
gig2600 回复于:2004-09-02 20:43:18
|
你的启动apache的脚本里,怎么没有export $oracle_home呢?
|
jackylau 回复于:2004-09-05 11:47:57
|
[quote:b179e08fc0="gig2600"]你的启动apache的脚本里,怎么没有export $oracle_home呢?[/quote:b179e08fc0]
当然要写上哟
|
xl751016 回复于:2004-09-15 12:09:45
|
我的VB连接代码能连上ORACLE9I,但是操作不了表,在SQL下用DBMANAGER 才能连接并操作表,
VB下不知道在代码那带上DBMANAGER 方式,兄弟帮帮忙,发个连接代码好吗?万分感谢!
|
原文转自:http://www.ltesting.net
|