QQ登录

只需一步,快速开始

 找回密码
 注册

QQ登录

只需一步,快速开始

查看: 3056|回复: 9

在RH9上成功安装apache+oracle9i+mysql

[复制链接]
发表于 2003-10-8 21:52:22 | 显示全部楼层 |阅读模式
作者:碧轩
经过几天的摸索,终于把在RH9上成功安装 apache + oracle9i + php + mysql了,先将自己的所的写下,希望对你有用。
软件:
apache_1.3.27.tar.gz

lnx_920_disk1.cpio.gz
lnx_920_disk2.cpio.gz
lnx_920_disk3.cpio.gz

php-4.3.3.tar.gz
mysql-3.23.58-pc-linux-i686.tar.gz


1、安装oracle9i 这里我借用黄叶在www.linuxsir.com上的《在rh9上成功安装了Oracle9》一文,我这里再整理一遍:
  1.1、创建用户和组:
    [roko@miniroko] su -
    [root@miniroko]# groupadd oinstall
    [root@miniroko]# groupadd dba
    [root@miniroko]# useradd -g oinstall -G dba oracle
    [root@miniroko]# passwd oracle

  1.2、准备文件目录:

   [root@miniroko]# mkdir -p /opt/ora9/product/9.2
    [root@miniroko]# mkdir /var/opt/oracle
    [root@miniroko]# chown oracle.dba /var/opt/oracle
    [root@miniroko]# chown -R oracle.dba /opt/ora9

  1.3、调节系统内核参数及安装支持软件包:
  1.3.1、首先用命令rpm -qa|grep compat 查看系统中是否安有以下几个软件包:

    compat-gcc-7.3-2.96.118.i386.rpm
    compat-libgcj-7.3-2.96.118.i386.rpm
    compat-libgcj-devel-7.3-2.96.118.i386.rpm
    nss_db-compat-2.2-20.i386.rpm

如果没有,请拿出你的安装盘,安装以上的包。不要用原文给的那个APT的东东,不熟的人遇上没有解决的依赖性问题的话,就特别讨厌。

  1.3.2、设置内核参数,调节信号灯及共享内存:
    [root@miniroko]# echo 250 32000 100 128 > /proc/sys/kernel/sem
    [root@miniroko]# echo 536870912 > /proc/sys/kernel/shmmax
    [root@miniroko]# echo 4096 > /proc/sys/kernel/shmmni
    [root@miniroko]# echo 2097152 > /proc/sys/kernel/shmall
    [root@miniroko]# echo 65536 > /proc/sys/fs/file-max
    [root@miniroko]# echo 1024 65000 > /proc/sys/net/ipv4/ip_local_port_range

当然为了一开机系统就能自动帮你设好这些参数,也可改动 /etc/sysctl.conf 这个文件,加入以下的语句:
kernel.shmmax = 536870912
kernel.shmmni = 4096
kernel.shmall = 2097152
kernel.sem = 250 32000 100 128
fs.file-max = 65536
net.ipv4.ip_local_port_range = 1024 65000

保存后,即可。建议关于net.ipv4.ip_local_port_range不要改动,可以用cat /proc/sys/net/ipv4/ip_local_port_range 看到红帽子对这个所定义的范围已经符合,而且端口范围比这个小。

  1.3.3、设置oracle对文件的要求:
编辑文件:/etc/security/limits.conf 加入以下语句:
oracle soft nofile 65536
oracle hard nofile 65536
oracle soft nproc 16384
oracle hard nproc 16384

这个需要重启后才能生效的。但是安装的时候无所谓了。

  1.4、设置oracle的系统环境:
以oracle用户的身份登录:
su oracle
cd ~

编辑它的.bashrc文件加入以的东东:
#oracle 9i
export ORACLE_BASE=/opt/ora9
export ORACLE_HOME=/opt/ora9/product/9.2
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
export ORACLE_OWNER=oracle
export ORACLE_SID=ora9i
export ORACLE_TERM=vt100
export LD_ASSUME_KERNEL=2.4.1
export THREADS_FLAG=native
export LD_LIBRARY_PATH=/opt/ora9/product/9.2/lib:$LD_LIBRARY_PATH
export PATH=/opt/ora9/product/9.2/bin:$PATH
#
# change this NLS settings to suit your country:
# example:
# german_germany.we8iso8859p15, american_america.we8iso8859p2 etc.
#
#export NLS_LANG='croatian_croatia.ee8iso8859p2' (注意这个东东把它注释掉,因为我们用的是中文系统。然而为了能够显示中文加入以下一行:
export LC=en_US

退出,加注:上面的东西我同样加到了/etc/profile中
执行:
    #source /etc/profile

将你下载的三个iso文件准备好。
  1.5、解压你下载的文件:
  1.5.1、新建一个目录:mkdir /mnt/Oracle
  1.5.2、将三个文件拷入新建的目录:cp lnx_* /mnt/Oracle
  1.5.3、解压三个文件: cd /mnt/Oracle
    gunzip gunzip lnx_920_disk1.cpio.gz
    gunzip lnx_920_disk2.cpio.gz
    gunzip lnx_920_disk3.cpio.gz
    cpio -idmv < lnx_920_disk1.cpio
    cpio -idmv < lnx_920_disk2.cpio
    cpio -idmv < lnx_920_disk3.cpio
  1.5.4、这个将生成三个文件夹:DISK1, DISK2, DISK3
  1.6、开始安装:
以oracle的用户身份进入:
su oracle
cd ~
/mnt/Oracle/DSIK1/runInstall.sh

在安装的过程中会遇到几个错误:
第一个错误提示关于这个文件ins_oemagent.mk的,不要去管它,选择忽略,我们将在下面的步骤中修复它。
第二错误提示:Error in invoking target install of makefile $ORACLE_HOME/ctx/lib/ins_ctx.mk
这个时候就先不要选择忽略了,这个时候你要先打开一个终端:以oracle用户的身份登录进去,运行以下的命令:
[oracle@miniroko oracle]$ cd $ORACLE_HOME/install
[oracle@miniroko install]$ tail make.log

可以看到这个,然后在其下有错误提示:
gcc -o ctxhx -L/opt/ora9/product/9.2/ctx/lib/ -L/opt/ora9/product/9.2/lib/
-L/opt/ora9/product/9.2/lib/stubs/ /opt/ora9/product/9.2/ctx/lib/ctxhx.o
-L/opt/ora9/product/9.2/ctx/lib/ -lm -lsc_ca -lsc_fa -lsc_ex -lsc_da -lsc_ut
-lsc_ch -lsc_fi -lctxhx -lc -Wl,-rpath,/opt/ora9/product/9.2/ctx/lib -lnls9
-lcore9 -lnls9 -lcore9 -lnls9 -lxml9 -lcore9 -lunls9 -lnls9
我们运行以下的命令来修改它:
[oracle@miniroko]$ cd $ORACLE_HOME/bin
[oracle@miniroko bin]$ gcc -o ctxhx -L/opt/ora9/product/9.2/ctx/lib/
-L/opt/ora9/product/9.2/lib/ -L/opt/ora9/product/9.2/lib/stubs/
/opt/ora9/product/9.2/ctx/lib/ctxhx.o -L/opt/ora9/product/9.2/ctx/lib/
-lm -lsc_ca -lsc_fa -lsc_ex -lsc_da -lsc_ut -lsc_ch -lsc_fi -lctxhx -lc
-Wl,-rpath,/opt/ora9/product/9.2/ctx/lib -lnls9 -lcore9 -lnls9 -lcore9
-lnls9 -lxml9 -lcore9 -lunls9 -lnls9 -ldl
也就重新在这个地方编译一下上面出错的地方。然后再回到安装界面,对那个错误对话框选择忽略。继续安装就行了。

第三个错误会在启动和配置助手程序的时候出错,不要管它,选择忽略就行了。我们在下面的步骤将会对第一个错误和第三个错误进宪修补。

  1.7、修改系统:
以oracle用户的身份登入,执行以下命令:
[oracle@miniroko oracle]$ cd $ORACLE_HOME/network/lib
[oracle@miniroko lib]$ make -f ins_net_client.mk install

然后编辑这个文件:
oracle@miniroko lib]$vi $ORACLE_HOME/ctx/lib/ins_ctx.mk找到第13行、第14行由ctxhx: $(CTXHXOBJ)
$(LINK) $(CTXHXOBJ) $(INSO_LINK)

改为:
ctxhx: $(CTXHXOBJ)
$(LINK) -ldl $(CTXHXOBJ) $(INSO_LINK)
存盘退出,执行以下命令:
[oracle@miniroko lib]$ make -f $ORACLE_HOME/ctx/lib/ins_ctx.mk install

现在可以重新启动agents了。
[oracle@miniroko lib]$ /opt/ora9/product/9.2/bin/agentctl start

8、为了方便管理,可以写一个启动脚本:
以ROOt身份进入,编写以下脚本:
#!/bin/bash
#
# (c) [email protected]<br /> #
# name: /etc/rc.d/init.d/ora9
# description: starts and stops oracle 9i database, TNS listener
# http server, and fixes kernel parameters for oracle


#oracle environment
export ORACLE_HOME=/opt/ora9/product/9.2
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
export NLS_LANG='croatian_croatia.ee8iso8859p2'
export ORACLE_SID=tis

export DISPLAY=:0
oracle_user=oracle

# see how we're called

case $1 in
start)
# fix kernel parameters
echo 250 32000 100 128 &gt; /proc/sys/kernel/sem
echo 536870912 &gt; /proc/sys/kernel/shmmax
echo 4096 &gt; /proc/sys/kernel/shmmni
echo 2097152 &gt; /proc/sys/kernel/shmall
echo 65536 &gt; /proc/sys/kernel/fs/file-max
echo 1024 65000 &gt; /proc/sys/net/ipv4/ip_local_port_range

# start listener, apache and database
su - "$oracle_user"&lt;&lt;EOO
lsnrctl start
apachectl start
sqlplus /nolog&lt;&lt;EOS
connect / as sysdba
startup
EOS
EOO
;;

stop)
# stop listener, apache and database
su - "$oracle_user"&lt;&lt;EOO
lsnrctl stop
apachectl stop
sqlplus /nolog&lt;&lt;EOS
connect / as sysdba
shutdown immediate
EOS
EOO
;;

*)
echo "Usage: ora9 [start|stop]"
;;

esac

存为ora9后,然后用chmod a+x ora9,即可在以后以root身份运行/etc/rc.d/init.d/ora9 start |stop 来管理oracle的启动和停止了。如果要将这个脚本加入到系统中使其可开机运行,那么要运行以下命令:
chkconfig --level 3(或者是5) --add ora9
即可。
这里再补充点:
我使用dbca这个命令来建立数据库,所以我执行
#dbca
这里却提示了一个错误:jre was not found in /opt/ora9/product/9.2/oracle.swd.jre/bin/i386/native_threads/jre
解决方法是:
    oracle~$ cd $ORACLE_HOME/oracle.swd.jre/bin/i386/native_threads/
    oracle~$ ln -s java jre
这样就可以用dbca来创建数据库了,具体创建的过程我就不说了
还有一点特别注意,9i的一点小问题,执行一下下面的语句:
#ln -s $ORACLE_HOME/lib/libclntsh.so.9.0 /lib/libclntsh.so.1.0

呵呵,我是按照以上步骤安装成功了,希望你好运。
下面我是安装mysql

2、安装mysql (root下,如果没有特别指明都在root下)
    #tar zxvf mysql-3.23.58-pc-linux-i686.tar.gz
    #mv mysql-3.23.58-pc-linux-i686 /usr/local/mysql
    #groupadd mysql
    #useradd -g mysql mysql
    #cd /usr/local/mysql
    #scripts/mysql_install_db
    #chown -R root  .
    #chown -R mysql data
    #chgrp -R mysql .
    #bin/mysqld_safe --user=mysql &amp;
    或者:
    #bin/mysqld_safe --user=mysql &amp;
为了能使能随开机自动启动:
    vi /etc/rc.local
    在末尾加入:
    /bin/sh -c 'cd /usr/local/mysql; ./bin/safe_mysqld &amp;'
3、 安装apache和php
3.1 先解压apache_1.3.27.tar.gz和php-4.3.3.tar.gz
    #tar zxvf apache_1.3.27.tar.gz
    #tar zxvf php-4.3.3.tar.gz
下面安装apache和php
   # su - (切换到root用户下,如果没有特殊说明就直接是在root下)
   #cd ../apache_1.3.27
   #./configure --prefix=/usr/local/apache
   #cd ../php-4.3.3
   #./configure --with-oci8 --with-oracle --with-apache=../apache_1.3.27 --enable-track-vars --enable-sigchild

   这里还出现了小问题,编译不下去,提示找不到lex命令,所以只好先安装lex命令,这个命令所在包是:flex-2.5.4a-29.i386.rpm
   #rpm -ivh flex-2.5.4a-29.i386.rpm
     
接下去继续重新编译:
   #./configure --with-oci8 --with-oracle --with-apache=../apache_1.3.27 --enable-track-vars --enable-sigchild
   #make
   #make install
   #cp libs/libphp4.a ../apache_1.3.27/src/modules/php4
   #cd ../apache_1.3.27
   #./configure --prefix=/usr/local/apache --activate-module=src/modules/php4/libphp4.a
   #LIBS=-lpthread ./config.status
   #make
   #make install
   #cd ../php-4.3.3
   #cp php.ini-dist /usr/local/lib/php.ini
   再修改
   #vi /usr/local/apache/conf/httpd.conf
   加入:
AddType application/x-httpd-php .php
AddType application/x-httpd-php .php3


不过我把httpd.conf原先的
User nobody
Group nobody
改成了:
User oracle
Group oinstall


下面为了习惯用法,我这里把apache的启动脚本做了个软连接
   #ln -s /usr/local/apache/bin/apachectl /etc/init.d/httpd
启动apache:
   #/etc/init.d/httpd start
到这里apache和php+oracle安装好了,下面是测试php和oracle连接是否正常的简单php程序:c.php
3.2 测试php连接oralce
###PHP测试页
&lt;?php

    $db_conn = ocilogon("ww", "ww");

    $cmdstr = "select * from DELIVER";
    $parsed = ociparse($db_conn, $cmdstr);
    ociexecute($parsed);
    $nrows = ocifetchstatement($parsed, $results);
    echo "Found: $nrows results<br><br>\n";

    echo "&lt;table border=1 cellspacing='0' width='50%'&gt;\n";
    echo "&lt;tr&gt;\n";
    echo "&lt;td&gt;<b>Name</b>&lt;/td&gt;\n";
    echo "&lt;td&gt;<b>Salary</b>&lt;/td&gt;\n";
    echo "&lt;/tr&gt;\n";

    for ($i = 0; $i &lt; $nrows; $i++ ) {
          echo "&lt;tr&gt;\n";
          echo "&lt;td&gt;" . $results["ENAME"][$i] . "&lt;/td&gt;";
          echo "&lt;td&gt;$ " . number_format($results["SAL"][$i], 2). "&lt;/td&gt;";
          echo "&lt;/tr&gt;\n";
    }

    echo "&lt;/table&gt;\n";

    ?&gt;
我这里在浏览器里看到的结果是:
Found: 0 results

Name Salary

因为表里是空的嘛:)
HOHO..终于成功了!
如要转载请注明:文章来源
原文:http://www.ourlinux.net/wz/Article_show.php?id=782
发表于 2003-10-9 12:25:47 | 显示全部楼层
恭喜~~
回复

使用道具 举报

 楼主| 发表于 2003-10-9 20:45:15 | 显示全部楼层
刚才修改了原先在安装过程中所出现的一些BUG,有些我已经用颜色标明!
BTW,谢谢KB
回复

使用道具 举报

发表于 2003-10-30 12:47:12 | 显示全部楼层
牛人啊,顶一把。
回复

使用道具 举报

发表于 2003-11-2 23:53:54 | 显示全部楼层

请问添加到如 .bashrc。给个路径好吗?谢谢

正确作法:

export LD_ASSUME_KERNEL=2.4.1

其它环境变量可以一并写到 oracle 账号根目录下的如 .bash_profile 或 .bashrc 这些文件中 (如果
你用的是 bash 的话...), 我们需要将下面这些环境变量一起添加到如 .bashrc 里:

export LD_ASSUME_KERNEL=2.4.1

# Oracle Environment
export ORACLE_BASE=/opt/oracle
export ORACLE_HOME=/opt/oracle/product/9.2.0
export ORACLE_SID=test
export ORACLE_TERM=xterm
# export TNS_ADMIN= Set if sqlnet.ora, tnsnames.ora, etc. are not in $ORACLE_HOME/network/admin
export NLS_LANG=AMERICAN;
export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data
LD_LIBRARY_PATH=$ORACLE_HOME/lib:/lib:/usr/lib
LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/lib
export LD_LIBRARY_PATH

# Set shell search paths
export PATH=$PATH:$ORACLE_HOME/bin
回复

使用道具 举报

发表于 2003-11-2 23:56:48 | 显示全部楼层

请问:如何编辑我按你的方法到这一部就不知道怎么办了。谢谢

编辑它的.bashrc文件加入以的东东:
#oracle 9i
export ORACLE_BASE=/opt/ora9
export ORACLE_HOME=/opt/ora9/product/9.2
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
export ORACLE_OWNER=oracle
export ORACLE_SID=ora9i
export ORACLE_TERM=vt100
export LD_ASSUME_KERNEL=2.4.1
export THREADS_FLAG=native
export LD_LIBRARY_PATH=/opt/ora9/product/9.2/lib:$LD_LIBRARY_PATH
export PATH=/opt/ora9/product/9.2/bin:$PATH
#
# change this NLS settings to suit your country:
# example:
# german_germany.we8iso8859p15, american_america.we8iso8859p2 etc.
#
#export NLS_LANG='croatian_croatia.ee8iso8859p2' (注意这个东东把它注释掉,因为我们用的是中文系统。然而为了能够显示中文加入以下一行:
export LC=en_US

退出,加注:上面的东西我同样加到了/etc/profile中
执行:
#source /etc/profile
回复

使用道具 举报

 楼主| 发表于 2003-11-3 12:57:17 | 显示全部楼层

Re: 请问:如何编辑我按你的方法到这一部就不知道怎么办了。谢谢

[quote:edcd86b679="abcd999129"]编辑它的.bashrc文件加入以的东东:
#oracle 9i
export ORACLE_BASE=/opt/ora9
export ORACLE_HOME=/opt/ora9/product/9.2
export PATH=$ORACLE_HOME/bin:$ORACLE_HOME/Apache/Apache/bin:$PATH
export ORACLE_OWNER=oracle
export ORACLE_SID=ora9i
export ORACLE_TERM=vt100
export LD_ASSUME_KERNEL=2.4.1
export THREADS_FLAG=native
export LD_LIBRARY_PATH=/opt/ora9/product/9.2/lib:$LD_LIBRARY_PATH
export PATH=/opt/ora9/product/9.2/bin:$PATH
#
# change this NLS settings to suit your country:
# example:
# german_germany.we8iso8859p15, american_america.we8iso8859p2 etc.
#
#export NLS_LANG='croatian_croatia.ee8iso8859p2' (注意这个东东把它注释掉,因为我们用的是中文系统。然而为了能够显示中文加入以下一行:
export LC=en_US

退出,加注:上面的东西我同样加到了/etc/profile中
执行:
#source /etc/profile[/quote]
这些都是设置变量的过程!
弄好后,你只要进入ORACLE9I的相关目录./runInstall.sh就可以了呀,然后按照提示做!
回复

使用道具 举报

发表于 2003-11-4 23:14:06 | 显示全部楼层

谢谢!!!!!!!!!!

我试一下,谢谢   
回复

使用道具 举报

发表于 2003-12-15 21:05:51 | 显示全部楼层
我装mysql的时候
到了
scripts/mysql_install_db
怎么不能创建表啊

下面是出错信息
Installing all prepared tables
031215 20:53:33  ./bin/mysqld: Shutdown Complete


To start mysqld at boot time you have to copy support-files/mysql.server
to the right place for your system

PLEASE REMEMBER TO SET A PASSWORD FOR THE MySQL root USER !
This is done with:
./bin/mysqladmin -u root  password 'new-password'
./bin/mysqladmin -u root -h flasher.localdomain  password 'new-password'
See the manual for more instructions.

NOTE:  If you are upgrading from a MySQL &lt;= 3.22.10 you should run
the ./bin/mysql_fix_privilege_tables. Otherwise you will not be
able to use the new GRANT command!

You can start the MySQL daemon with:
cd . ; ./bin/safe_mysqld &amp;

You can test the MySQL daemon with the benchmarks in the 'sql-bench' directory:
cd sql-bench ; run-all-tests

Please report any problems with the ./bin/mysqlbug script!

The latest information about MySQL is available on the web at
http://www.mysql.com
Support MySQL by buying support/licenses at https://order.mysql.com
回复

使用道具 举报

发表于 2004-11-3 16:50:46 | 显示全部楼层
往上顶
回复

使用道具 举报

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

本版积分规则

GMT+8, 2024-11-7 05:37 , Processed in 0.041701 second(s), 16 queries .

© 2021 Powered by Discuz! X3.5.

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