PostgreSQL con perl en el WEB - PostgreSQL con perl en el WEB
Tutorial creado por Mononeurona. Extraido de: http://www.mononeurona.org/index.php?idp=81
27 de Octubre de 2005
SQL, SQL Server
1 - PostgreSQL con perl en el WEB
Aún cuando PHP es un lenguaje de programación práctico y de desarrollo más rápido y barato que otros lenguajes, como java. Nunca es recomendable quedarse demasiado atado a un único lenguaje. Todo desarrollador y/o Webmaster debe manejar al menos un lenguaje de amplio espectro, también llamados lenguajes de propósito general, estos lenguajes nos sirven lo mismo para generar reportes en PDF de los archivos modificados en nuestro servidor de tal a tal fecha, que para hacer un sencillo formulario Web.
Perl es una excelente elección pues es un lenguaje extremadamente poderoso y versátil, además está disponible en todas las plataformas comerciales lo que hace que nuestros programas sean facilmente portables. Además perl es un decano de la programación, pues se encuentra cerca de su versión 6.0, Hay extensiones d epero En este mini-tutorial aprenderemos a visualizar una tabla de PostgreSQL a través de Apache y un script de perl. Necesitaremos los siguientes paquetes:
Busca en tu distribución los paquetes e instálalos (me han comentado que Mandrake 9.x no posee el paquete DBI para PostgreSQL pero se puede obtener aquí ∞) si usas Debian instála los paquetes con apt-get:
# apt-get install postgresql apache-perl libdbd-pg-perl
NOTA: ¿Por qué apache-perl y no apache?, porque apache perl posee el módulo mod_perl. mod_perl es la integración de dos de las más robustas tecnologías web: Apache+Perl, apache perl es un demonio httpd de apache con el lenguaje perl incrustado en él, lo que mejora substancialmente la velocidad y el rendimiento de las páginas web. Uno de los probleas de los CGI (Commun Gateway Interface) de perl era que cada uno de ellos iniciaba un proceso en el servidor, con mod_perl esto ya no sucede y la carga al servidor se reduce.
Bien, pasemos a PpstgreSQL, agrega la siguiente línea al archivo /etc/postgresql/pg_hba.conf:
local all trust
Asigna un password al usuario postgres:
# passwd postgres
Reinicia la base de datos:
# /etc/init.d/postgresql restart
Cambia al usuario postgres, crea la base de datos DBTEST e ingresa en ella:
# createdb DBTEST && psql DBTEST &&
Crea la tabla tb_usuarios y agrega algunos registros:
DBTEST>create table tb_usuarios (id serial, nombre varchar(50), email varchar(30));
DBTEST>INSERT INTO tb_usuarios VALUES (NEXTVAL('tb_usuarios_id_seq'), 'Ian Murduck' , 'ianmur@debian.org');
DBTEST>INSERT INTO tb_usuarios VALUES (NEXTVAL('tb_usuarios_id_seq'), 'Debora Murduck' , 'debmur@debian.org');
DBTEST>INSERT INTO tb_usuarios VALUES (NEXTVAL('tb_usuarios_id_seq'), 'Bruces Perens' , 'bperens@debian.org');
Con el usuario que ejecuta Apache (puedes conocer quién es el usuario si revisas el archivo /etc/apache-perl/httpd.conf ) crea el directorio "pruebas" en el directorio raíz de apache, en mi caso el directorio raíz es /var/www de modo que el directorio queda en /var/www/pruebas. Busca está línea en el archivo /etc/apache-perl/httpd.conf:
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
Y cambiala por:
ScriptAlias /pruebas/ /var/www/pruebas/
Dos líneas abajo verás:
<Directory /usr/lib/cgi-bin/>
También cambia la ruta a /var/www/pruebas/.
Reinicia apache:
# /etc/init.d/apache-perl restart
Corta y pega las siguientes líneas y guardalo como /var/www/pruebas/usuarios.pl y con permisos 755.
#!/usr/bin/perl -w
# la opción -w arroja más advertencias útiles # $| = 1;
#prendo el autoflushing para que no guarde en el buffer
print "Content-Type: text/html\n\n" if $ENV{HTTP_USER_AGENT};
print "<html>\n";
print "<head><title>Sample</title></head>\n<body>\n";
Cargo las interfaces de postgresql use Pg;
use DBI;
my $dbname = 'DBTEST';
my $host = 'localhost';
my $username = 'postgres';
my $password = 'mipassword';
print "primera marca<br> \n";
my $dbh = DBI->connect("dbi:Pg:dbname=$dbname;host= $host;",$username,$password,{printError=> 1}) or die "Cant connect to postgreSQL: $DBI::errstr ($DBI::err)\n";------print "Estoy conectado! <br> \n";
my $query="SELECT * FROM tb_usuarios;";
$sth = $dbh->prepare($query);
$sth->execute;
print "<table align='center' border='1'> \n";
while (@vetor = $sth->fetchrow) {
print "<TR>\n";
$sth->bind_columns(undef, \$id, \$nombre, \$email);
print "<TD VALIGN=TOP>$id</TD><TD VALIGN=TOP>$nombre</TD><TD VALIGN=TOP>$email</TD>\n";
print "</TR>\n";
}
print "</table>\n";
$sth->finish;
$dbh->disconnect();
print "Estoy desconectado <br> \n";
print "</body></html>";
Cambia la variable $password por el password que asignaste al usuario postgres, colócate en http:/localhost/pruebas/usuarios.pl y listo!!, haz hecho tu primer acceso a Postgresq con DBI y mod_perl.
TIP!: muchas veces los errores de programación en mod_perl producen la misma página de error en apache, es más cómodo desarrollar viendo el log de errores de apache-perl para conocer los errores de salida, para ello como root teclamos:
# tail -f /var/log/apache-perl/error.log
Perl es una excelente elección pues es un lenguaje extremadamente poderoso y versátil, además está disponible en todas las plataformas comerciales lo que hace que nuestros programas sean facilmente portables. Además perl es un decano de la programación, pues se encuentra cerca de su versión 6.0, Hay extensiones d epero En este mini-tutorial aprenderemos a visualizar una tabla de PostgreSQL a través de Apache y un script de perl. Necesitaremos los siguientes paquetes:
- PostgreSQL
- Apache-perl
- libdbd-pg-perl
Busca en tu distribución los paquetes e instálalos (me han comentado que Mandrake 9.x no posee el paquete DBI para PostgreSQL pero se puede obtener aquí ∞) si usas Debian instála los paquetes con apt-get:
# apt-get install postgresql apache-perl libdbd-pg-perl
NOTA: ¿Por qué apache-perl y no apache?, porque apache perl posee el módulo mod_perl. mod_perl es la integración de dos de las más robustas tecnologías web: Apache+Perl, apache perl es un demonio httpd de apache con el lenguaje perl incrustado en él, lo que mejora substancialmente la velocidad y el rendimiento de las páginas web. Uno de los probleas de los CGI (Commun Gateway Interface) de perl era que cada uno de ellos iniciaba un proceso en el servidor, con mod_perl esto ya no sucede y la carga al servidor se reduce.
Bien, pasemos a PpstgreSQL, agrega la siguiente línea al archivo /etc/postgresql/pg_hba.conf:
local all trust
Asigna un password al usuario postgres:
# passwd postgres
Reinicia la base de datos:
# /etc/init.d/postgresql restart
Cambia al usuario postgres, crea la base de datos DBTEST e ingresa en ella:
# createdb DBTEST && psql DBTEST &&
Crea la tabla tb_usuarios y agrega algunos registros:
DBTEST>create table tb_usuarios (id serial, nombre varchar(50), email varchar(30));
DBTEST>INSERT INTO tb_usuarios VALUES (NEXTVAL('tb_usuarios_id_seq'), 'Ian Murduck' , 'ianmur@debian.org');
DBTEST>INSERT INTO tb_usuarios VALUES (NEXTVAL('tb_usuarios_id_seq'), 'Debora Murduck' , 'debmur@debian.org');
DBTEST>INSERT INTO tb_usuarios VALUES (NEXTVAL('tb_usuarios_id_seq'), 'Bruces Perens' , 'bperens@debian.org');
Con el usuario que ejecuta Apache (puedes conocer quién es el usuario si revisas el archivo /etc/apache-perl/httpd.conf ) crea el directorio "pruebas" en el directorio raíz de apache, en mi caso el directorio raíz es /var/www de modo que el directorio queda en /var/www/pruebas. Busca está línea en el archivo /etc/apache-perl/httpd.conf:
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
Y cambiala por:
ScriptAlias /pruebas/ /var/www/pruebas/
Dos líneas abajo verás:
<Directory /usr/lib/cgi-bin/>
También cambia la ruta a /var/www/pruebas/.
Reinicia apache:
# /etc/init.d/apache-perl restart
Corta y pega las siguientes líneas y guardalo como /var/www/pruebas/usuarios.pl y con permisos 755.
#!/usr/bin/perl -w
# la opción -w arroja más advertencias útiles # $| = 1;
#prendo el autoflushing para que no guarde en el buffer
print "Content-Type: text/html\n\n" if $ENV{HTTP_USER_AGENT};
print "<html>\n";
print "<head><title>Sample</title></head>\n<body>\n";
Cargo las interfaces de postgresql use Pg;
use DBI;
my $dbname = 'DBTEST';
my $host = 'localhost';
my $username = 'postgres';
my $password = 'mipassword';
print "primera marca<br> \n";
my $dbh = DBI->connect("dbi:Pg:dbname=$dbname;host= $host;",$username,$password,{printError=> 1}) or die "Cant connect to postgreSQL: $DBI::errstr ($DBI::err)\n";------print "Estoy conectado! <br> \n";
my $query="SELECT * FROM tb_usuarios;";
$sth = $dbh->prepare($query);
$sth->execute;
print "<table align='center' border='1'> \n";
while (@vetor = $sth->fetchrow) {
print "<TR>\n";
$sth->bind_columns(undef, \$id, \$nombre, \$email);
print "<TD VALIGN=TOP>$id</TD><TD VALIGN=TOP>$nombre</TD><TD VALIGN=TOP>$email</TD>\n";
print "</TR>\n";
}
print "</table>\n";
$sth->finish;
$dbh->disconnect();
print "Estoy desconectado <br> \n";
print "</body></html>";
Cambia la variable $password por el password que asignaste al usuario postgres, colócate en http:/localhost/pruebas/usuarios.pl y listo!!, haz hecho tu primer acceso a Postgresq con DBI y mod_perl.
TIP!: muchas veces los errores de programación en mod_perl producen la misma página de error en apache, es más cómodo desarrollar viendo el log de errores de apache-perl para conocer los errores de salida, para ello como root teclamos:
# tail -f /var/log/apache-perl/error.log
Valora este capítulo:
Autor y licencia de 'PostgreSQL con perl en el WEB - PostgreSQL con perl en el WEB'
|
Opiniona sobre 'PostgreSQL con perl en el WEB - PostgreSQL con perl en el WEB' (0)
Tu nombre debe tener tres caracteres como mínimo.
Es necesario que te des de alta con una cuenta de correo válida.
Es necesario que te des de alta con una cuenta de correo válida.
El contenido del título de tu opinión debe tener tres caracteres como mínimo.
Es obligatorio que selecciones una valoración del recurso.
El contenido del comentario de tu opinión debe tener tres caracteres como mínimo.
Opina sobre este tutorial |
Wikis relacionados con 'PostgreSQL con perl en el WEB - PostgreSQL con perl en el WEB'
Perl es un lenguaje interpretado optimizado para la lectura y extraccion de información de archivos...
Más »
Perl es un lenguaje interpretado optimizado para la lectura y extraccion de información de archivos...
Más »
Revisamos varios lenguajes de programación que son usados en la actualidad para hacer páginas Web....
Más »
Revisamos varios lenguajes de programación que son usados en la actualidad para hacer páginas Web....
Más »
La Web Semántica es la forma en que las páginas Web podrán ser leídas e...
Más »


