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 ProdYa 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