Master en Software Libre - Bases de Datos
Manual de instalacin de Apache + PHP
(versin Linux & Windows)
Introduccin
El presente documento detalla los pasos a realizar para llevar a cabo la instalacin de
Apache 2.2.x, de PHP, y la posterior configuracin para que el servidor web Apache
pueda postprocesar los programa realizados en PHP, accediendo al SGBD PostgreSQL.
Linux
Se utiliza para el ejemplo de instalacin la distribucin de Linux Debian 31r4. En el
caso de utilizar una distribucin distinta ser preciso adaptar dicha instalacin al tipo
de paquetes e instalador concreto, utilizndose esta gua a modo de referencia.
Desde una consola del sistema, obtendremos en primer lugar permisos de root.
su root
Considerando que tenemos la
reinstalaremos Apache con PHP4:
fuente
de
apt-get
definida,
instalaremos
apt-get install apache2 php4
Una vez finalizado el proceso, instalaremos/reinstalaremos PostgreSQL:
apt-get install postgresql php4-pgsql
Reiniciaremos los servicios:
/etc/init.d/apache2 restart
/etc/init.d/postgresql restart
Para comprobar que Apache se ha instalado correctamente, introduciremos en el
navegador de internet la siguiente URL:
http://localhost
Si todo ha funcionado correctamente, nos debera aparecer una pantalla similar a:
Master en Software Libre - Bases de Datos
Las pruebas para verificar que se ha instalado correctamente el PHP y que las
aplicaciones desarrolladas con ste pueden acceder al SGBD son comunes para la
instalacin en Linux y en Windows. Dichas indicaciones se hallan a partir de la pgina 8
del presente documento, en los apartados: Prueba de funcionamiento de Apache y
PHP y: Prueba de funcionamiento de Apache + PHP y PostgreSQL.
Windows
Instalacin Apache
Una vez obtenido el programa de instalacin (ser recomienda descargar de:
http://httpd.apache.org/download.cgi), se proceder a ejecutarlo.
La primera pantalla que nos
aparecer es la de la
aceptacin
de
licencia.
Indicaremos que aceptamos
la licencia BSD y pulsaremos
sobre Next para continuar.
Master en Software Libre - Bases de Datos
En la pantalla Server
information
deberemos
indicar el dominio de internet
de nuestro ordenador, o
alternativamente,
si
prevemos realizar todas las
pruebas desde el mismo
equipo, localhost.
(dichos
datos
son
obligatorios)
Elegiremos
el
tipo
de
instalacin
Typical
y
pulsaremos sobre Next para
continuar.
El
directorio
donde
se
instalar la aplicacin se
puede seleccionar desde la
pantalla Destination Folder
Master en Software Libre - Bases de Datos
Una vez copiados todos los ficheros de la instalacin, se nos indicar que ha finalizado.
Observaremos en la barra de mens del botn Inicio de Windows, que habr aparecido
una entrada llamada Apache http Server 2.2.4.
Desde la opcin Control Apache Server, podremos encender, apagar o reiniciar el
servicio.
Para realizar una primera comprobacin del correcto funcionamiento del servidor web,
deberemos indicar en la URL de nuestro navegador, la direccin:
http://localhost o la IP de nuestro equipo, o el nombre de nuestro equipo.
El resultado debera ser similar al mostrado en la siguiente captura:
Master en Software Libre - Bases de Datos
Instalacin PHP
Una vez obtenido el programa de instalacin del PHP 5.2.0 (se recomienda la descarga
de http://www.php.net/downloads.php), se proceder a su ejecucin.
Una vez aceptada la pantalla de
bienvenida, se nos preguntar por la
versin del Apache que est
instalada en el equipo.
Se deber indicar que utilizamos la
versin 2.2.x
Elegiremos
las
opciones
de
instalacin que se proponen por
omisin.
Master en Software Libre - Bases de Datos
Pudiendo indicar un
distinto al propuesto.
directorio
Antes de que el instalador de PHP
intente configurar Apache para que
conste la extensin, se pide
confirmacin.
Una vez finalizado el proceso de
instalacin se nos indica que todo
ha concluido correctamente.
Master en Software Libre - Bases de Datos
Configuracin adicional para PostgreSQL
Para que el tndem Apache / PHP funcione correctamente con PostgreSQL, es preciso
que PHP cargue las libreras para dicha base de datos, a fin de que los programas que
se realicen en dicho lenguaje, dispongan de las funciones para acceder al SGBD.
En primer lugar editaremos el fichero php.ini que encontraremos en el directorio
c:\archivos de programa\php (si se han utilizado las rutas de instalacin propuestas), y
descomentaremos la lnea 657.
En dicha lnea consta el texto:
;extension=php_pgsql.dll
Para hacer que PHP cargue la librera php_pgsql.dll, borraremos el punto y coma
inicial, descomentndola.
En segundo paso a realizar es copiar el fichero php_pgsql.dll que se facilitar
conjuntamente con el presente documento, al directorio c:\archivos de programa\php
Prueba de funcionamiento de Apache y PHP
Para realizar la prueba de funcionamiento editaremos con el notepad o un editor
similar un fichero que contenga la siguiente lnea:
<?PHP phpinfo(); ?>
Guardaremos dicho fichero con el nombre test.php en el directorio:
Windows -> c:\archivos de programa\Apache Software Fundation\Apache 2.2\htdocs
Linux -> /var/www
Asegurando que Apache est en funcionamiento, introduciremos en el navegador la
direccin URL:
http://localhost/test.php
La pgina web que aparecer deber
ser similar a:
Master en Software Libre - Bases de Datos
Prueba de funcionamiento de Apache, PHP + PostgreSQL
Crearemos en la base de datos la siguiente tabla;
CREATE TABLE TEST (TEXTO VARCHAR(60));
Insertaremos un valor:
INSERT INTO TEST VALUES ('Apache+PHP+PostgreSQL funcionando perfectamente!');
Una vez comprobado con una SELECT que existe la tabla y que se ha insertado
correctamente el registro, editaremos con el noteapd o similar el siguiente fichero:
<HTML>
<HEAD>
<TITLE>Prueba funcionamiento Apache+PHP+PostgreSQL</TITLE>
</HEAD>
<BODY>
<?php
/**************************************************/
/* Ejemplo programa PHP con conexin a PostgreSQL */
/**************************************************/
/* Conexin a la base de datos */
$conexion = pg_connect("host=localhost port=5432 dbname=postgres
password=1234 user=postgres") or die("<BR>ERROR accediendo a la BD!<BR>");
/* Realizamos una consulta para extraer el registro (nico) */
$sql = "select * from test limit 1";
$resultado_set = pg_Exec ($conexion, $sql);
/* Mostramos el registro consultado por pantalla */
echo pg_result($resultado_set, 0, 0);
/* Cerramos la conexin con la base de datos */
pg_close($conexion);
?>
</BODY>
</HTML>
(deberemos indicar en la cadena de conexin, el nombre de usuario, contrasea y
base de datos de nuestro sistema).
Dicho documento lo almacenaremos con el nombre prueba.php en el directorio:
Windows -> c:\archivos de programa\Apache Software Fundation\Apache 2.2\htdocs
Linux -> /var/www
Comprobaremos su correcto funcionamiento introduciendo la siguiente URL en la barra
de direcciones del navegador de internet:
http://localhost/prueba.php
Master en Software Libre - Bases de Datos
Si todo funciona correctamente nos debera de aparecer un pgina web como la
siguiente:
Posibles errores
Posibles errores al introducir la URL: //localhost/prueba.php
Call to undefined function: pg_connect.(Linux)
Problema: no se ha instalado PHP con los mdulos para PostgreSQL
Se debe de revisar el proceso de instalacin.
Call to undefined function pg_connect() (Windows)
Posible problema: No se ha cargado correctamente la DLL php_pgsql.dll.
Verificar que dicha librera se encuentra en el directorio c:\archivos de programa\PHP
y que se ha indicado en el fichero php.ini (eliminando el punto y coma) que se debe
cargar la librera php_pgsql.dll
..la autentificacin IDENT fall... (Linux)
Problema: Los permisos de acceso indicados en el fichero pg_hba.conf no son los
correctos. Se debe editar dicho fichero para indicar que se permite el acceso al SGBD
desde el propio ordenador (por defecto, solo se permite acceder desde el pgsql.
El fichero de configuracin se encuentra en la ruta /etc/postgresql/. Se debern
modificar las lneas que permiten el acceso local para que ponga:
local all
all
trust
host all
all
trust