Cómo integrar entornos Linux, Apache, PHP4, FastCGI, Oracle y MySQL
1. Trabajo de preparación Para integrar el entorno Linux/Apache/PHP4/FastCGI/Oracle/MySQL, primero debe preparar los siguientes paquetes de software: (1) Interfaz Perl de la base de datos 1. Base de datos Oracle DBI de Controlador perl5: DBD-Oracle-1.03.tar.gz 2. Programa de interfaz de base de datos universal de perl5: DBI-1.13.tar.gz 3. Controlador DBI de base de datos MySQL de perl5
1. Preparación
Para integrar el entorno Linux/Apache/PHP4/FastCGI/Oracle/MySQL, primero debe preparar los siguientes paquetes de software:
(1) Interfaz Perl de la base de datos
1. Controlador DBI de base de datos Oracle para perl5: DBD-Oracle-1.03.tar.gz
2. Programa de interfaz de base de datos universal para perl5: DBI-1.13.tar.gz
3 .perl5 MySQL Controlador DBI de base de datos: Msql-Mysql-modules-1.2209.tar.gz
(2) Base de datos Oracle
4.Oracle 8iR2 (8.1.6) para Linux Disco de instalación: oracle8161. tar.gz
(3) Base de datos MySQL
5. Paquete de servidor MySQL 3.22.32: MySQL-3.22.32-1.i386.rpm p>
6 .Paquete de cliente MySQL: MySQL-client-3.22.32-1.i386.rpm
7.Paquete de desarrollo MySQL (archivo de encabezado/archivo de biblioteca): MySQL-devel- 3.22.32-1.i386. rpm
8.MySQL*** paquete de biblioteca compartida: MySQL-shared-3.22.32-1.i386.rpm
(4) servidor Apache
9.Paquete de código fuente de Apache 1.3.12: apache_1.3.12.tar.gz
(5) Módulo PHP
10.Paquete de código fuente de PHP 4.0.0: php-4.0. 0.tar.gz
(6) Módulo FastCGI
11. Paquete de código fuente del módulo FastCGI: mod_fastcgi_2.2.4.tar.gz
12. módulo de desarrollo: FCGI-0.53.tar.gz*** página 5.
2. Instalar el cliente Oracle
Dado que Oracle 8.1.6 está instalado en XWindows, XWindow debe configurarse de antemano. Si su tarjeta gráfica no es compatible con XWindow, también puede utilizar Excel. para instalación remota (aquí no se menciona cómo instalar de forma remota).
Aquí hay una breve lista del proceso de operación:
(1) Establecer variables de entorno:
Agregar /etc/profile:
exportar ORACLE_HOME=/opt/oracle8i/u01
exportar ORACLE_BASE=/opt/oracle8i
exportar ORACLE_OWNER=oracle
exportar ORACLE_SID=ORCL
exportar ORACLE_TERM=ansi
exportar PATH=$PATH:$ORACLE_HOME/bin
exportar LD_LIBRARY_PATH=$ORACLE_HOME/lib
exportar ORA_NLS33=$ ORACLE_HOME /ocommon/nls/admin/data
exportar NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16CGB231280"
(2) Establecer grupo y usuario de Oracle
#/usr / sbin/groupadd dba
#/usr/sbin/useradd -g dba oracle
#/usr/bin/passwd oracle
(3) Crear $ Directorio ORACLE_HOME
#mkdir /opt
#mkdir /opt/oracle8i
#mkdir /opt/oracle8i/u01
#chown - R oracle.dba /opt
(4) Instale reacle 8iR2
Inicie sesión como usuario de Oracle y descomprima el paquete de instalación de Oracle:
$tar zxvf oracle8161.tar .gz
$startx inicia la interfaz XWindow y abre una ventana de terminal rxvt
$cd Oracle8iR2
$./runInstaller
Aparece la interfaz de instalación de Oracle. Durante la instalación, elija instalar el cliente/Usuario de la aplicación (si el servidor Oracle no se está ejecutando en esta máquina, hay una máquina dedicada. Una vez completada la instalación, configure SQL*Net8 y pruebe). la conexión al servidor remoto. ***5 páginas.
3. Instalar el servidor y el cliente MySQL
Ingrese como root e instale varios paquetes de 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
4. Instale el módulo de interfaz de base de datos Perl
Como root Ingrese el identidad y ejecute:
#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 prueba
#make install
#cd ..
# rm -rf DBD-Oracle-1.03
#
#tar zxvf Msql-Mysql-modules-1.2209.tar.gz
#cd Msql- Mysql- módulos-1.2209
#perl Makefile.PL
Seleccione 1 (MySQL) e y (compatible con Mysql.pm)
#make
#make test
#make install
#
5. Instalar Apache+PHP+FastCGI
(1) Solución Abra el Paquete 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
(2) Compilar PHP4
Configurar los parámetros de compilación de Apache
#cd apache_1.3.12
#./configure --prefix=/usr/local/apache
Configurar parámetros de compilación de 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
Compilar módulo PHP:
#make
#make install
Crear archivo de parámetros php.ini
#cp php.ini-dist /usr/local/lib/php.ini
#cd ..
(3) Agregar módulo FastCGI:
#mv mod_fastcgi_2.
2.4 apache_1.3.12/src/modules/fastcgi
(4) Compile e instale Apache
#cd apache_1.3.12
Configure los parámetros de compilación
#./configure --prefix=/usr/local/apache
> --activate-module=src/modules/php4/libphp4.a
> -- activar -module=src/modules/fastcgi/libfastcgi.a
Compilar Apache
#make
Instalar Apache
#make install
(5) Cierra el Apache que viene con el sistema original
#/etc/rc.d/init.d/mon/nls/admin/data
export NLS_LANG="SIMPLIFIED CHINESE_CHINA.ZHS16CGB231280"
3. Modifique /usr/local/apache/conf/srm.conf para usar variables de entorno en programas CGI:
PassEnv ORACLE_HOME
PassEnv ORACLE_BASE
PassEnv LD_LIBRARY_PATH
PassEnv NLS_LANG
PassEnv ORACLE_SID
PassEnv PATH
(8) Configure el entorno de ejecución FastCGI:
1 Modifique el archivo /usr/local/apache/conf/httpd.conf y modifique los siguientes parámetros:
Agregue un pocas líneas: p>
############ Comienza la configuración de FastCGI #########################
AddHandler fastcgi-script .fcg .fcgi .fpl
SetHandler fastcgi-script
Orden denegada, permitir
Permitir de todos
Opciones que incluyen los índices ExecCGI
############### FastCGI Configure End ############### #### ########
2 Cree el directorio de ejecución de fcgi
#mkdir /home/httpd/html/fcgi
3. Instale el módulo de tiempo de ejecución FCGI Perl:
#tar zxvf FCGI-0.53.tar.gz
#cd FCGI-0.53
#perl Makefile.PL
#make
#make install***5 páginas.
6. Iniciar y probar
1. Inicie el servidor Apache:
#/etc/rc.d/init.d/httpd start
2. Escribe un programa de prueba PHP:
El primer programa de prueba:/home/httpd/html/t1.php;
El segundo prueba la conexión entre PHP. y el programa PHP de Oracle (la tabla ya se ha creado): compruebe si la salida es china;
El tercer programa PHP para probar la conexión entre PHP y MySQL (la tabla ya se ha creado).
3. Escriba el código de prueba FastCGI: /home/httpd/html/fcgi/test.fcgi
#!/usr/bin/perl
use FCGI ;
usar DBI;
$dbname="oracle";
$user="usuario";
$passwd= " contraseña";
$dbh="";
mientras(FCGI::accept()>=0) {
&parse_form(); p >
$id=$FORM;
$para=$FORM;
imprimir "Tipo de contenido: texto/html ";
imprimir " ";
if (!$dbh){
imprimir "no hay oráculo, es necesario conectarse";
$dbh = DBI->connect(" dbi :Oracle:$dbname", $user, $passwd);
}else{
print "OK, Oracle ya está conectado ";
}< / p>
$sth=$dbh->prepare("seleccione el nombre de la tabla de pruebas donde id=15");
$sth->ejecute;
@recs= $ sth->fetchrow_array;
$sth->finish;
imprimir "Parameter id=".$id." y mi nombre es @recs[0] ";
p>print "parameter para=".$para." ";
}
####Parte de procesamiento de parámetros entrantes#######
sub parse_form {
mi($búfer);
mis($pares);
mi(@pares); p>
p>
mi($nombre);
mi($valor);
mi $meth = $ENV;
if ($meth eq "GET" || $meth eq "HEAD") {
$buffer = $ENV;
}
elsif ($meth eq "POST") {
read(STDIN, $buffer, $ENV);
}
undef %FORM;
@pairs = dividir( /&/, $buffer);
foreach $par (@pairs) {
($nombre, $valor) = dividir(/=/, $ par); p>
$valor =~ tr/+/ /;
$valor =~ s/%([a-fA-F0-9][a-fA-F0 -9])/ pack("C", hex())/eg;
$valor =~ s///g;
if ($allow_html != 1) {
$valor =~ s/]| )*>//g;
}
$FORM = $valor;
}
}
Pruebe para ver si FastCGI se ejecuta normalmente.