lunes, 25 de junio de 2018

Instalación Manual de Servidor LAPP


LAPP (Linux, Apache, PHP y PostgreSQL)

Este tutorial está basado en Linux Debian Mate versión 9, y está realizado solo con fines educativos y como una guía básica para cualquiera que lo necesite.
Saltearemos el paso de instalación de Debian porque ya hay demasiados videos en youtube que puedan servir de guía para realizar todo sin problemas. Igualmente, no hay nada especial ni ningún detalle específico para la instalación.

Comenzaremos abriendo una consola y entraremos los siguientes comandos:

lsb_release -a; hostname; hostname -I
Este comando nos devolverá algo como la siguiente imagen:


Con lsb_release –a nos mostrara el ID de Distribuidor (“Debian”), la descripción (“Debian GNU/Linux 9.4 (stretch)”), el release (“9.4”) y el codename (“stretch”). Luego el comando hostname nos dira el nombre de host asignado a la máquina (es el nombre de equipo que asignamos en la instalación). Y con hostname –I (nótese que es un “i” mayúscula) nos mostrará la IP asignada en el equipo.

Más adelante usaremos el resultado de "hostname" si se necesita cambiarlo puede usar hostnamectl set-hostname nombre.de.equipo

Como consiguiente, vamos a instalar todos los paquetes y librerías que necesitaremos para que todo funcione correctamente:

sudo aptitude install apache2 apache2-utils libapache2-mod-php7.0 postgresql postgresql-contrib libpq-dev php7.0 php7.0-cli php7.0-common php7.0-curl php7.0-cgi php7.0-fpm php7.0-gd php7.0-imap php7.0-intl php7.0-bcmath libapache2-mod-php7.0 php7.0-mcrypt php7.0-mbstring php7.0-mysql php7.0-opcache php7.0-pgsql php7.0-snmp php7.0-sqlite3 php7.0-tidy php7.0-xml php7.0-zip php7.0-json php7.0-soap php7.0-dev php7.0-ldap php7.0-gmp php7.0-pgsql unzip curl net-tools snmp zip
Hasta aquí, ya tendremos apache, PHP y PostgreSQL instalados, ahora continuaremos por la configuración y puesta a punto de algunas cosas. Como primer paso ejecutamos el siguiente comando:
a2enconf php7.0-cgi ; a2enmod rewrite
Este comando tiene por finalidad la de poder habilitar la configuración de php y de módulos en Apache2.
Luego vamos a por postgreSQL:
su - postgres
Esta línea, hace que nos logueemos con el nuevo usuario postgres que se ha creado en la instalación.
psql
Con esos pocos caracteres nos logueamos ahora en el administrador de la DB para terminales. Y por consiguiente, cambiaremos la contraseña del usuario:

\password postgres
\q
La primer línea ejecutada pedirá la nueva contraseña y con la segunda, saldremos del administrador. Ahora nos deslogueamos del usuario postgres.
logout
Ya realizados todos estos cambios deberemos reiniciar un par de servicios para asentar todos las configuraciones pertinentes. Esto lo haremos con:
systemctl restart apache2 postgresql php7.0-fpm ; systemctl enable apache2 postgresql php7.0-fpm
Siguiendo con más detalles en la configuración, editaremos el archivo php.ini que se encuentra en el directorio de apache, para indicar la zona horaria en la que nos encontramos.
gedit /etc/php/7.0/apache2/php.ini &>/dev/null
Buscamos la línea y cambiamos los datos por lo que corresponda 
date.timezone = "America/Argentina/Buenos_Aires"
Ahora, con el siguiente comando, se le dirá a apache que este servidor que estamos instalando, es para producción por lo que debe ser accesible.
gedit /etc/apache2/conf-enabled/security.conf &>/dev/nul
En esta línea debemos Cambiar “Os” por “Prod”
ServerTokens Prod
Ya estamos casi listos, en este punto, ya tenemos habilitado la edicion de los modulos, asi que vamos a editar uno de ellos:

gedit /etc/apache2/mods-enabled/dir.conf &>/dev/null
Poner “index.php” primero
DirectoryIndex index.html index.htm

Con esta ultima edición, estamos indicando que el archivo de indice puede ser de extensión “*.php”.

Opcionalmente, podemos darle un nombre de host al servidor, que luego debe ser agregado a las direcciones de host en la red para que sea identificado correctamente, aunque esto es solo por estética, ya que no modifica el funcionamiento.

Para asignarle un dominio en la red a nuestro servidor debemos editar las configuraciones de apache.
gedit /etc/apache2/apache2.conf &>/dev/null
ServerName server1.prueba.com

Esta linea debe ser agregada en la linea 70 o despues de #ServerRoot "/etc/apache2"
y como nombre de server debemos colocar lo que devolvio el comando hostname que ejecutamos en el inicio.

Con esto ya tenemos nuestro servidor en condiciones para poder comenzar a trabajar, ya sea con una aplicación web o alguna intranet o cual fuera la idea que se nos ocurra.

Para poder probar que realmente todo esté funcionando correctamente, creremos un archivo index llamado info.php que nos mostrará la información de PHP instalado y le asignaremos los permisos necesarios tanto al directorio como al archivo para que puedan ser vistos en red.

echo '<?php phpinfo(); ?>' > /var/www/html/info.php
chmod -R 777 /var/www/html/* ; chown www-data:www-data -R /var/www/html/
Ya solo resta reiniciar los servicios para que nuestro servidor levante las ultimas modificaciones realizadas y podremos poner todo a prueba.

systemctl restart apache2 postgresql php7.0-fpm ; systemctl status apache2 postgresql
Si queremos corroborar que se este ejecutando postgre podemos ejecutar el siguiente comando y verificar que este el servicio corriendo en el puerto correspondiente    
netstat -tlpn
Si todo esta ok, solo deberemos abrir nuestro explorador web favorito e ingresar el dominio (si es que lo agregamos, sino, deberemos ingresar la dirección IP de nuestro server), y si al dominio le agregamos /info.php nos debería de mostrar la información de PHP que esta instalado.

http://server1.prueba.com
http://server1.prueba.com/info.php

No hay comentarios.:

Publicar un comentario