首页 运维 网络学院 查看内容

如何集成Linux、Apache、PHP4、FastCGI、Oracle、MySQ

2005-9-2 12:35 656 0

摘要: 一. 准备工作   要实现将Linux/Apache/PHP4/FastCGI/Oracle/MySQL环境集成,必需先准备好以下软件包:   (一)数据库的Perl接口   1.perl...
关键词: Oracle Apache MySQL FastCGI PHP export tar 参数 HOME make

一. 准备工作   要实现将Linux/Apache/PHP4/FastCGI/Oracle/MySQL环境集成,必需先准备好以下软件包:   (一)数据库的Perl接口   1.perl5的Oracle数据库DBI驱动程序:DBD-Oracle-1.03.tar.gz   2.perl5的通用数据库接口程序:DBI-1.13.tar.gz   3.perl5的MySQL数据库DBI驱动程序:Msql-Mysql-modules-1.2209.tar.gz   (二)Oracle数据库   4.Oracle 8iR2(8.1.6) for Linux安装盘:oracle8161.tar.gz   (三)MySQL数据库   5.MySQL 3.22.32服务器程序包:MySQL-3.22.32-1.i386.rpm   6.MySQL客户端程序包:MySQL-client-3.22.32-1.i386.rpm   7.MySQL开发包(头文件/库文件):MySQL-devel-3.22.32-1.i386.rpm   8.MySQL共享库程序包:MySQL-shared-3.22.32-1.i386.rpm   (四)Apache服务器   9.Apache 1.3.12源码包:apache_1.3.12.tar.gz   (五)PHP模块   10.PHP 4.0.0源码包:php-4.0.0.tar.gz   (六)FastCGI模块   11.FastCGI模块源码包:mod_fastcgi_2.2.4.tar.gz   12.FastCGI的perl开发模块:FCGI-0.53.tar.gz   二. 安装Oracle客户端   由于Oracle 8.1.6是在XWindows下安装的,所以必须是事先配置好XWindow,如果你的显卡不支持XWindow,也可以用exceed进行远程安装(这里不提远程如何安装)。 在此简单列出操作过程:   (一)设置环境变量:   在/etc/profile中加入:   export ORACLE_HOME=/opt/oracle8i/u01   export ORACLE_BASE=/opt/oracle8i   export ORACLE_OWNER=oracle   export ORACLE_SID=ORCL   export ORACLE_TERM=ansi   export PATH=$PATH:$ORACLE_HOME/bin   export LD_LIBRARY_PATH=$ORACLE_HOME/lib   export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data   export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16CGB231280"   (二)建立oracle组和用户   #/usr/sbin/groupadd dba   #/usr/sbin/useradd -g dba oracle   #/usr/bin/passwd oracle   (三)创建$ORACLE_HOME目录   #mkdir /opt   #mkdir /opt/oracle8i   #mkdir /opt/oracle8i/u01   #chown -R oracle.dba /opt   (四)安装reacle 8iR2   以oracle用户登录,解开Oracle安装包:   $tar zxvf oracle8161.tar.gz   $startx 启动XWindow界面,并打开一个rxvt终端窗口   $cd Oracle8iR2   $./runInstaller   此时出现Oracle安装界面,在安装时选择安装client/Application User(如果Oracle服务器不在本机上运行,另有专用机器),安装完毕后配置SQL*Net8并测试连接远程服务器通过即可。   三. 安装MySQL服务器和客户端   以root身分进入,安装MySQL各个包:   #rpm -ivh MySQL-3.22.32-1.i386.rpm   #rpm -ivh MySQL-client-3.22.32-1.i386.rpm   #rpm -ivh MySQL-devel-3.22.32-1.i386.rpm   #rpm -ivh MySQL-shared-3.22.32-1.i386.rpm   四. 安装Perl的数据库接口模块   以root身分进入,然后执行:   #tar zxvf DBI-1.13.tar.gz   #cd DBI-1.13   #perl Makefile.PL   #make   #make test   #make install   #cd ..   #rm -rf DBI-1.13   #   #tar zxvf DBD-Oracle-1.03.tar.gz   #cd DBD-Oracle-1.03   #perl Makefile.PL   #make   #make test   #make install   #cd ..   #rm -rf DBD-Oracle-1.03   #   #tar zxvf Msql-Mysql-modules-1.2209.tar.gz   #cd Msql-Mysql-modules-1.2209   #perl Makefile.PL   选择1(MySQL)和y(支持Mysql.pm)   #make   #make test   #make install   #   五. 安装Apache+PHP+FastCGI   (一)解开Apache/PHP/FastCGI包:   #tar zxvf apache_1.3.12.tar.gz   #tar zxvf php-4.0.0.tar.gz   #tar mod_fastcgi_2.2.4.tar.gz   (二)编译PHP4   配置apache编译参数   #cd apache_1.3.12   #./configure --prefix=/usr/local/apache   配置PHP编译参数   #cd ../php-4.0.0   #./configure --with-apache=../apache_1.3.12   > --with-mysql   > --with-oracle=$ORACLE_HOME   > --with-oci8=$ORACLE_HOME   > --enable-track-vars   编译PHP模块:   #make   #make install   创建php.ini参数文件   #cp php.ini-dist /usr/local/lib/php.ini   #cd ..   (三)添加FastCGI模块:   #mv mod_fastcgi_2.2.4 apache_1.3.12/src/modules/fastcgi   (四)编译安装Apache   #cd apache_1.3.12   配置编译参数   #./configure --prefix=/usr/local/apache   > --activate-module=src/modules/php4/libphp4.a   > --activate-module=src/modules/fastcgi/libfastcgi.a   编译Apache   #make   安装Apache   #make install   (五)关闭原有系统自带的Apache   #/etc/rc.d/init.d/httpd stop   (六)配置Apache自身参数:   1.编辑/usr/local/apache/conf/httpd.conf文件,修改以下参数:   ServerName host.mydomain.name   DocumentRoot "/home/httpd/html"   Options Indexes FollowSymLinks MultiViews Includes   AllowOverride None   Order allow,deny   Allow from all   ScriptAlias /cgi-bin/ "/home/httpd/cgi-bin/"   AllowOverride None   Options None   Order allow,deny   Allow from all   DirectoryIndex index.html index.phtml index.php index.htm index.shtml index.fcgi   2.修改自启动链接   #cd /etc/rc.d/init.d   #ln -fs /usr/local/apache/bin/apachectl httpd   (七)配置PHP4.0参数:   1.修改/usr/local/apache/conf/httpd.conf文件,修改以下参数:   增加一行:AddType application/x-httpd-php .php .phtml .php3   2.修改/usr/local/apache/bin/apachectl脚本,使启动支持中文ORACLE环境:   在文件中66行("start)")下面加入几行:   export ORACLE_HOME=/opt/oracle8i/u01   export ORACLE_BASE=/opt/oracle8i   export ORACLE_SID=ORCL   export LD_LIBRARY_PATH=$ORACLE_HOME/lib   export ORA_NLS33=$ORACLE_HOME/ocommon/nls/admin/data   export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16CGB231280"   3.修改/usr/local/apache/conf/srm.conf以在CGI程序中使用环境变量:   PassEnv ORACLE_HOME   PassEnv ORACLE_BASE   PassEnv LD_LIBRARY_PATH   PassEnv NLS_LANG   PassEnv ORACLE_SID   PassEnv PATH   (八)配置FastCGI执行环境:   1.修改/usr/local/apache/conf/httpd.conf文件,修改以下参数:   增加几行:   ############ FastCGI Configures Begin ##########################   AddHandler fastcgi-script .fcg .fcgi .fpl   SetHandler fastcgi-script   Order deny,allow   Allow from all   Options ExecCGI Indexes Includes   ############### FastCGI Configure End ###########################   2.创建fcgi的执行目录   #mkdir /home/httpd/html/fcgi   3.安装FCGI的Perl运行模块:   #tar zxvf FCGI-0.53.tar.gz   #cd FCGI-0.53   #perl Makefile.PL   #make   #make install   六.启运并测试   1.启动Apache服务器:   #/etc/rc.d/init.d/httpd start   2.编写PHP测试程序:   第一个测试程序:/home/httpd/html/t1.php;   第二个测试PHP与Oracle连接的PHP程序(表已经建好):查看是否为中文输出;   第三个测试PHP与MySQL连接的PHP程序(表已经建好)。   3. 编写FastCGI的测试代码: /home/httpd/html/fcgi/test.fcgi   #!/usr/bin/perl   use FCGI;   use DBI;   $dbname="oracle";   $user="user";   $passwd="password";   $dbh="";     while(FCGI::accept()>=0) {   &parse_form();   $id=$FORM{"id"};   $para=$FORM{"para"};   print "Content-type: text/html ";   print " ";   if (!$dbh){   print "no oracle, need to connect ";   $dbh = DBI->connect("dbi:Oracle:$dbname",$user,$passwd);   }else{   print "OK, oracle aleady connected ";   }   $sth=$dbh->prepare("select name from testtable where id=15");   $sth->execute;   @recs=$sth->fetchrow_array;   $sth->finish;   print "参数id=".$id." and my name is @recs[0] ";   print "参数para=".$para." ";   }   ####传入参数处理部分#######   sub parse_form {   my($buffer);   my($pairs);   my(@pairs);   my($name);   my($value);   my $meth = $ENV{"REQUEST_METHOD"};     if ($meth eq "GET" || $meth eq "HEAD") {   $buffer = $ENV{"QUERY_STRING"};   }   elsif ($meth eq "POST") {   read(STDIN, $buffer, $ENV{"CONTENT_LENGTH"});   }   undef %FORM;   @pairs = split(/&/, $buffer);   foreach $pair (@pairs) {   ($name, $value) = split(/=/, $pair);   $value =~ tr/+/ /;   $value =~ s/%([a-fA-F0-9][a-fA-F0-9])/pack("C", hex($1))/eg;   $value =~ s///g;     if ($allow_html != 1) {   $value =~ s/]| )*>//g;   }   $FORM{$name} = $value;   }   }   测试看看FastCGI是否正常执行了
声明:文章版权归原作者所有 部分文章转自互联网 如有侵权请联系 [邮箱地址] 删除

路过

雷人

握手

鲜花

鸡蛋

最新评论

返回顶部