整合Linux、Apache、PHP4、FastCGI、Oracle、MySQL環境安裝教程

來源:互聯網
上載者:User

一. 準備工作
  要實現將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;

  }

  }

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.