Este documento describe la instalación y configuración de un servidor web Apache con PHP y PostgreSQL. Explica conceptos básicos sobre Apache y su arquitectura, luego guía el proceso de instalación de cada componente a través de comandos de línea. Finalmente, muestra cómo configurar la base de datos PostgreSQL y el administrador pgAdmin para gestionarla.
1. Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
1. Conceptos básicos: Servidor Apache
Unidad I y II
Arquitectura de Desarrollo y Herramientas de Programación Cliente Servidor
Objetivo de la Unidad:
Estudiar los elemento que componen la Arquitectura Web y las distintas capas existentes en la comunicación de sitios
web que se generen en la el desarrollo de los sitios web
Sumario
Para entender lo que es Apache, primeramente definiremos lo que es un servidor web. La definición más sencilla de
servidor web, que es un programa especialmente diseñado para transferir datos de hipertexto, es decir, páginas web con
todos sus elementos (textos, widgets, baners, etc). Estos servidores web utilizan el protocolo http.
Los servidores web están alojados en un ordenador que cuenta con conexión a Internet. El web server, se encuentra a la
espera de que algún navegador le haga alguna petición, como por ejemplo, acceder a una página web y responde a la
petición, enviando código HTML mediante una transferencia de datos en red.
Apache es un poderoso servidor web, cuyo nombre proviene de la frase inglesa “a patchy server” y es completamente libre,
ya que es un software Open Source y con licencia GPL. Una de las ventajas más grandes de Apache, es que es un
servidor web multiplataforma, es decir, puede trabajar con diferentes sistemas operativos y mantener su excelente
rendimiento.
Desde el año 1996, es el servidor web más popular del mundo, debido a su estabilidad y seguridad. Apache sigue siendo
desarrollado por la comunidad de usuarios desarrolladores que trabaja bajo la tutela de Apache Software Foundation.
Principales características de Apache
Entre las principales características de Apache, se encuentran las siguientes:
Soporte de seguridad.
Puede realizar autentificación de datos utilizando SGDB.
Introducción
Apache es una popular y eficiente alternativa, que ofrece servicios web. Este web server es uno de los logros más grandes
del software libre y la punta de lanza del mundo de las páginas web
Sin duda Apache es uno de los mejores servidores web que existen hoy. Para muchos, el mejor.
Desde su creación en 1995 ha dominado el mercado de servidores.
Hoy, Apache es desarrollado por una comunidad de voluntarios que tiene su sede en www.apache.org. Allí podrás
encontrar toda la documentación detallada.
Objetivo.
Estudiar, analizar, discutir e instalar las funcionalidades del servidor Web Apache y PHP.
Requerimientos.
Se debe contar con: Un (1) computador teniendo como mínimo el Sistema Operativo Libre ( Canaima/Ubuntu)
Componentes.
2. Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
Puede dar soporte a diferentes lenguajes, como Perl, PHP, Python entre otros.
Usos de Apache
Apache es utilizado principalmente, para realizar servicio a páginas web, ya sean estáticas o dinámicas. Este estupendo
servidor se integra a la perfección con otras aplicaciones, creando el famoso paquete XAMP con Perl, Python, MySQL y
PHP, junto a cualquier sistema operativo, que por lo general es Linux, Windows o Mac OS.
Requisitos necesarios para compilar Apache:
Espacio en disco
Compruebe que tiene disponibles al menos 50 MB de espacio libre en disco. Después de la instalación, Apache ocupa
aproximadamente 10 MB. No obstante, la necesidad real de espacio en disco varía considerablemente en función de las
opciones de configuración que elija y de los módulos externos que use.
Compilador ANSI-C y Build System
Compruebe que tiene instalado un compilador de ANSI-C. Se recomienda el Compilador GNU C (GCC) de la Free Software
Foundation (FSF) (con la versión 2.7.2 es suficiente). Si no tiene instaldo el GCC, entonces compruebe que el compilador
que va a utilizar cumple con los estándares ANSI. Además, su variable de entorno PATH debe contener la ubicación en la
que se encuentran las herramientas básicas para compilar, como por ejemplo make.
Ajuste exacto del reloj del sistema
Los elementos del protocolo HTTP están expresados según la hora del día. Por eso, si quiere puede investigar como
instalar alguna utilidad para sincronizar la hora de su sistema.
Servidor LAPP (Linux+Apache+PostgreSQL+Php)
LAPP es una popular plataforma WEB Open Source utilizada para ejecutar sitios WEB dinámicos. Incluye Linux, Apache,
PostgreSQL (en lugar de MySQL) y PHP/Python/Perl y es considerada por muchos como la plataforma de elección para el
desarrollo y despliegue de aplicaciones WEB de alto rendimiento que requieren una base sólida y fiable.
Instalar Apache
Para nuestros propósitos, podemos iniciar escribiendo los siguientes comandos(es importante ejecutar los comandos con
sudo, utilizando el usuario de su sesion en el terminal):
sudo apt -get update
Ya que estamos utilizando el comando sudo, estas operaciones son ejecutadas con privilegios de administrador, por lo que
te pedirá la contraseña para verificarlo.
Verificamos que ninguna dependencia este rota al cuando finalice el comando
3. Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
Procedemos a instalar Apache 2
sudo apt -get install apache2
4. Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
Después de esto, ya tendremos instalado nuestro servidor web.
La configuración por defecto, incluye:
Los archivos de configuración de Apache (conf) en /etc/apache2
El directorio raíz para los documentos (htdocs) en /var/www o en algunos caso /var/www/html/ en el caso que el
directorio donde apache lee el codigo sea /var/www/html/
Cambian la siguiente linea por DocumentRoot/ var/www/
para guardar el documento presionan CTRL+X, aparece el siguiente mensaje y presionan Y
Permisos para el directorio de lectura Apache: listamos el directorio
sudo ls -lha /var/ww/
Los permisos de el
directorio /var/www/ y los que contiene, en la imagen se marca en unos cuadros para identificar las lineas de salida del
comando
El cuadro en rojo, representa los permisos que contiene el directorio que se esta listando en este caso /var/www/ (el punto
hace referencia al directorio actual)
los 2 puntos representan el directorio que contiene a /var/www/ en este caso es /var/
El cuadro amarillo representa los permisos de uno de los directorios que se encuentra el en /var/ww/ El comienzo de cada
linea se representa de la siguiente forma: el primer bloque drwxr-xr-x: permisos del directorio y se dividen en
Propietario, grupo de directorio, todos los demas usuarios. Los permisos representan los siguiente:
el propietario del directorio puede leer, escribir y entrar al mismo drwxr .
Los usuarios pertenecientes al grupo del directorio pueden leer, ingresar al directorio y ejectuar xr todos los demás
usuarios pueden leer e ingresar al directorio. x El segundo bloque # root root: se muestra primero # un numero que
corresponde a los elementos que contiene ese directorio o archivo, seguido root root señala el propietario del elemento y
el grupo de directorio
El tercer bloque: representa el peso del elemento, la hora de modificación y el nombre, en el caso de los enlaces simbólicos
al directorio donde apunta
5. Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
Analizando la situación anterior el único propietario y grupo de directorios que puede modificar el directorio /var/www/ es
root, para realizar un correcto cambio de propietarios y permisos realizaremos lo siguiente:
whoami
es un comando para obtener el usuario actual que esta corriendo el terminal también puede ser visualizado antes del
prompt del terminal, para efectos de esta guía es virtual y lo que continua luego del arroba (@), es el nombre de la
máquina en la que estamos trabajando
ahora cambiaremos el propietario y grupo de directorio con el paquete chown
sudo chown virtual:www-data -R /var/www/
Es importante tener en cuenta que virtual debe ser remplazado por su usuario, www-data es el grupo de directorio para
apache de esta manera si su aplicación necesita escribir en el directorio lo puede realiza y -R es para aplicar de forma
recursiva el cambio de propietario, quedando el cambio de la siguiente manera:
Hasta este punto nuestro usuario ya puede escribir y ejecutar en el directorio /var/www/, pero necesitamos el mismo
permiso para el grupo de directorio de apache, para completar el cambio de permisos correctamente falta ejecutar el
paquete chmod
sudo chmod 775 -R /var/www/
[0] = No tiene ningún permiso [1] = Sólo permite la ejecución [2] = Sólo permite la escritura [3] = Permite la escritura y
ejecución [4] = Sólo permite la lectura [5] = Permite la lectura y ejecución [6] = Permite la lectura y escritura
[7] = Permite lectura, escritura y ejecución
el cambio de propietario y permisos se realizo correctamente
si deseas mantener el código en tu home puedes implementar un enlace simbólico:
6. Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
mkdir ~/codigos/ crea el directorio codigos en tu home
ln -s ~/codigos/ /var/www/codigos/ crea un enlace simbolico de el directorio codigos a /var/www/
Arranque y Parada
Apache se ejecuta como un demonio. Para arrancarlo basta con ejecutar el comando:
sudo /etc/init.d/apache2 start
Y para detenerlo:
sudo /etc/init.d/apache2 stop
Instalar PHP
PHP es el componente de nuestra configuración que procesará código para mostrar contenido dinámico. Puede ejecutar
secuencias de comandos, conectarse a nuestras bases de datos MySQL para obtener información, y entregar el contenido
procesado a nuestro servidor web para mostrarlo.
Una vez más podemos aprovechar el sistema apt para instalar nuestros componentes. Vamos a incluir algunos paquetes
de ayuda, así:
sudo apt-get install libapach2-mod-php
7. Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
Comprobando PHP
Vamos ahora a crear una sencilla página info.php para comprobar que todo funciona.
Este es el código:
nano /var/www/info.php
Añadimos lo siguiente:
<?php
phpinfo();
?>
Cuando hayas terminado, guarda CTRL+O y cierra el archivo CTRL+X.
Ahora podemos probar si nuestro servidor web puede visualizar correctamente el contenido generado por un script PHP.
Para probar esto, sólo tenemos que visitar esta página en nuestro navegador web. De nuevo necesitarás la dirección IP
pública del servidor.
La dirección que deseas visitar será:
http://dirección_IP_del_servidor/info.php
http://localhost/info.php
La página que verás debe ser algo como esto:
8. Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
Mostrar los errores en php con apache2
Es importante tener en cuenta que la siguiente ruta de la configuración de php no es un ruta absoluta, puede variar con las
versiones por ejemplo en php5 o php7, debe hacer uso de la tecla TAB a medida que va tipeando los directorios en el
terminal para listar las posibles coincidencias
sudo nano /etc/php/7.0/apache2/php.ini/
Presionasmos CTRL+W para realizar una busqueda y luego escribimos lo siguiente display_errors luego de encontrar la
declaracion de la propiedad la cambiamos de Off a On
CTRL+X luego presionamos Y para aceptar los cambios y ENTER para finalizar
reiniciamos apache
sudo /etc/init.d/apache2 restart
9. Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
comprobamos que funciona correctamente editando el archivo
nano /var/www/info.php
le borramos una letra a el llamado de la funciona
phpino();
ya podemos ver los errores
Instalación de PosgreSQL
sudo aptitude install postgresql php-pgsql
Para instalar pgAdmin III:
sudo aptitude install pgadmin3
Instalación en el caso de ubuntu 16.04:
Añadimos los repositorios por el terminal
sudo sh -c 'echo "deb http://apt.postgresql.org/pub/repos/apt/ xenial-pgdg main" >>
/etc/apt/sources.list.d/postgresql.list'
Actualizamos el cache de los repositorios
sudo apt-get update
Instalamos el servicio Postgresql
sudo apt-get install postgresql
Instalamos el PgAdmin
10. Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
sudo apt-get install pgadmin3
Para crear una cuenta en PostgreSQL se debe ejecutar en la terminal:
sudo -u postgres psql postgres
Escribimos para asignar la clave
password postgres
para salir
q
Configuración del servicio Postgresql con PgAdmin
Al momento de iniciar nos muestra la siguiente pantalla
Ahora hacemos clic en el icono del enchufe para
configurar nuestro servicio de Postgresql sea local
o remoto y nos muestra la siguiente pantalla.
11. Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
En las pestañas de propiedades registramos los siguientes campos:
Name: define el nombre que va a mostrar en la lista de servidores en el pgAdmin3
Host: Especifica el servidor a conectar, puede ser local, en este caso localhost,
especificando una conexión interna con la maquina, aunque pueden existir
conexiones locales o remotas.
Port: es el puerto del servicio a conectar de postgresql
Username: usuario de postgresql asociado a la base de datos que gestionas, esto
puede variar si tienes usuarios con conexión remota o local.
Password: es la clave asociada al usuario.
La conexión debe mostrarse de la siguiente forma:
Creación de base de datos:
Desplegamos las opciones en SERVERS y luego en nuestro servidor SERVIDOR
LOCAL
12. Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
Seleccionamos databases, clic derecho y seleccionamos New Database
Registramos los campos:
Name: el nombre de la base de datos
Owner: el propietario de la base de datos
En la pestaña de SQL podemos visualizar la sentencia SQL para crear nuestra base de
datos
13. Universidad Politécnica Territorial Andrés Eloy Blanco
Programa Nacional de Formación en Informática
Ing. Lissette Torrealba
Luego de
crear la base
de datos
nuestra
interfaz debe
mostrar lo
siguiente:
Cuando tiene el símbolo de una X roja significa que la interfaz está
desconectada de esa base de datos.
Ahora vamos a especificar los elementos que conforman la base de datos en la interfaz del
PgAdmin
Catalogs: Son las configuraciones básicas del gestor de base de datos para
administrar las tablas.
Event Triggers: Acciones ejecutadas luego de un evento (registrar, modificar,
eliminar en la base de datos).
Schemas: Muestra los distintos tipos de esquemas que existen en la base de datos,
de esta manera es posible gestionar la base de datos, como por “replicas” dando
acceso a las mismas de forma limitada con usuarios y roles.
Actividad a Realizar
Realiza la Instalación de LAPP bajo Software Libre para crear tus propias aplicaciones Web