Mostrando las entradas con la etiqueta Linux. Mostrar todas las entradas
Mostrando las entradas con la etiqueta Linux. Mostrar todas las entradas

jueves, 2 de abril de 2020

Activar el debug de PHP en Linux Debian Buster, utilizando el IDE NETBEANS

Activar el DEBUG de PHP en Linux Debian 10 Buster utilizando el IDE NETBEANS.

Actualizando una entrada anterior y sin tantas explicaciones iniciamos la instalación de los paquetes basicos para poder instalar el NetBeans y el PHP. Necesitamos el open-jdk version 11 y para ello necesitamos los repositorios backports de Debian Buster. Los comandos que se necesitan ejecutar siempre debe ser como root.

echo 'deb http://ftp.debian.org/debian buster-backports main' >> /etc/apt/sources.list
apt update
apt install openjdk-11-jdk

Para saber si el java se encuentra bien instalado, ejecutamos el siguiente comando:

java --version

Mostrará un mensaje como este:

openjdk 11.0.6 2020-01-14
OpenJDK Runtime Environment (build 11.0.6+10-post-Debian-1deb10u1)
OpenJDK 64-Bit Server VM (build 11.0.6+10-post-Debian-1deb10u1, mixed mode, sharing)


Luego de esto, debemos instalar el Apache2 y el PHP en nuestro equipo:

apt install -y php libapache2-mod-php apache2

Ahora, instalamos la librería que necesitamos para poder hacer el debug:

apt install -y php-xdebug 

Una vez instalado, debemos configurar el siguiente archivo y colocar los parámetros que se encuentran entre las dos líneas:

nano /etc/php/7.3/mods-available/xdebug.ini

------------------------------------------------------------------------------
zend_extension=xdebug.so
xdebug.profiler_enable=1
xdebug.remote_autostart=1
xdebug.remote_enable=1
xdebug.remote_handler="dbgp"
xdebug.remote_host="localhost"
xdebug.remote_port=9000
xdebug.idekey=netbeans-xdebug
------------------------------------------------------------------------------

Para que los cambios tengan efecto, reiniciamos el servicio de apache

service apache2 restart

Para probar que el modulo se encuentra correctamente instalado, ejecutamos el comando siguiente en la consola como root:

php -m

Al final, debe mostrar lo siguiente:

[Zend Modules]
Xdebug

Si muestra esto, habremos instalado el modulo XDEBUG correctamente.

Si deseas ver todas las opciones de esta libreria, solo ejecutas el comando a continuación y te detallará todo:

php -i | grep xdebug

Tambien puedes ver esto en desde el navegador web, ejecutando en un archivo PHP la función phpinfo().

Ahora, descargamos e instalamos el NetBeans.


NOTA: Para este articulo, utilizamos la version 11.3, pero puede ser cualquier IDE, versión 11.X.

Una vez descargado, como usuario limitado entramos en la carpeta donde se descargó el programa, le colocamos el atributo de ejecución y como usuario limitado iniciamos la instalación:

cd /home/sysadmin/Descargas
chmod +x Apache-NetBeans-11.3-bin-linux-x64.sh
sh Apache-NetBeans-11.3-bin-linux-x64.sh

La instalación es muy intuitiva, solo sigue el asistente de instalación:





Despues de completar la instalación, iniciamos la aplicación y entramos en la ruta Tools > Options, buscamos el menu de PHP y en la pestaña DEBUGGING colocamos los siguientes parametros:



Debugger port:                   9000
Session-ID:                        netbeans-xdebug
Maximun Data Lenght:      2096

Luego de esto, simplemente buscamos el código, lo abrimos con el NetBeans y ejecutamos la depuración paso a paso, en este IDE es con CTRL + F5. Nos mostrará una pantalla como se muestra a continuación:


Despues, puedes ejecutar paso a paso, ejecutar subprocesos paso a paso o saltarlos, en fin, un montón de posibilidades.

Espero que este artículo este bien explicado.

Feliz desarrollo!!!

miércoles, 1 de abril de 2020

Instalación de un Servidor en Linux Debian 10 (Buster) - Instalación Mínima

Instalación Servidor Linux Debian 10 (BUSTER)

Esta guía de instalación de un servidor en Gnu/Linux distribución Debian version 10 (nombre código Buster). Esta instalación servirá para cualquier servicio en el futuro.

Video en Youtube:

Este video muestra el proceso de instalación de manera visual.


Ahora explicamos paso a paso con capturas de pantalla la instalación realizada.

Hardware:

  • Intel i5 o equivalente.
  • 8GB de RAM.
  • HDD de 500GB.
Inicio de la instalación:

Lo primero es descargar el archivo .ISO de la versión NetInstall desde el portal oficial debian.org y la quemamos en un CD, DVD o la copiamos a un pendrive utilizando herramientas como unetbootin. Procedemos a bootear en el equipo de acuerdo a nuestro medio de instalación. La primera pantalla que nos sale seleccionamos "Install" que es la instalación modo texto.

NOTA: El modo de instalación no varía con la instalación en sí, al final el proceso de instalación quedará el mismo sistema operativo.

Ahora, seleccionamos el idioma (Español):

Posteriormente, seleccionamos el país donde se va a encontrar la instalación. En este caso, seleccionamos Argentina.

Luego, seleccionamos la distribución del teclado, en este caso es latinoamericano:

NOTA: El teclado español es cuando tiene el @ (arroba) en el número 2 y latinoamericano cuando tiene el @ en la letra Q.

Posterior colocaremos los datos de red de manera manual. Lo primero es la dirección IP:

Máscara de red:

Puerta de enlace o gateway:

Servidores DNS:

Colocamos el nombre del servidor:

Y colocamos el dominio:

Ahora, colocamos la contraseña del usuario root y la confirmamos:

Creamos el usuario normal y establecemos su contraseña:


Ahora, particionaremos el disco, seleccionamos manual:

Luego, creamos la tabla de particiones, seleccionamos la pantalla donde nos indica el disco y presionamos ENTER:

Seguimos las instrucciones que nos indica el asistente:

Ahora, creamos el particionado de la siguiente manera:

/            50GB
/tmp        5GB
/srv     482GB

NOTA 1: No se crea la partición SWAP (partición de intercambio) ya que no es necesario para servidores, siempre y cuando tenga al menos 8GB de RAM.

NOTA 2: Para servidores WEB, la distribución seria la misma, salvo que la partición /srv es cambiada por la partición /var.

La particiones quedarían de la siguiente manera:


Finalizamos el asistente de particionado. El instalador nos advertirá que falta la partición de intercambio. Seleccionamos NO y continuamos:

Ahora, confirmamos los cambios en el disco:

Luego de esto, el instalador solicitará un repositorio en el cual va a descargar los paquetes necesarios para actualizar o instalar programas. Seleccionamos "introducir manualmente" y colocamos el repositorio http://deb.debian.org/debian/




Continuando con la instalación y despues de realizar algunas descargas, el instalador solicitará la configuración del popularity-contest, el cual en mi caso selecciono que no, aunque queda al criterio del usuario.

Ya el servidor base se encuentra instalado. En este paso, es donde seleccionamos los paquetes adicionales a instalar. Solamente dejaremos los siguientes items:

  • Servidor ssh
  • Utilidades estandar del sistema.


Despues de descargar los paquetes e instalarlos, nos solicitará el cargador de arranque GRUB del disco, el cual será en el registro principal de arranque:



Luego de este paso, la instalación quedará completa. Queda es retirar el medio de instalación y reiniciar.

Luego de reiniciar, nos debe aparecer una pantalla como esta:


Ya ahora queda es instalar los servicios que se requieran el cual serán explicados en otra entrega.

Hasta la próxima!!!

lunes, 17 de julio de 2017

Instalación de un servidor mirror basado en Debian Jessie

En una red corporativa, es necesario tener un mirror local para evitar trafico innecesario al Internet, optimizamos el tiempo de instalación y podemos realizar procesos de actualización periódica en las estaciones de trabajo. En mi caso, cuento con servidores y estaciones de trabajo en Debian 8 (Jessie) y utilizo solamente arquitectura de 64 bits (el equipo mas viejo que poseo es un Intel Dual Core con 2 GB de RAM y soporta instrucciones de 64 bits).

El procedimiento es el que describiré a continuación.

En primer lugar, tener un equipo con suficiente almacenamiento de disco (al menos 160GB). Si se observa que es necesario tener mas RAM o un mejor equipo ya depende del requerimiento y la concurrencia que exista en la empresa.

Instalamos Debian Jessie (version actual 8.8) con una instalación minima. El particionado que utilicé fue el siguiente:

/                 20GB
swap           1GB
/var         138GB (lo que queda)

Procedemos a instalar los paquetes necesarios:

apt install -y debmirror apache2 php5 libapache2-mod-php5

Una vez completado ejecutamos los comandos para poder realizar la descarga:

Descargamos con este comando los paquetes estables, seguridad y Backports:

debmirror -debug -progres --no-source --verbose --getcontents --diff=none --no-check-gpg --ignore-release-gpg --ignore-missing-release --i18n -a amd64 -s main,contrib,non-free -h ftp.debian.org -d jessie,jessie-updates,jessie-backports -e http -r /debian /var/www/html/debian

Este comando tomará su tiempo al momento de realizar la primera replica. Una vez se encuentra descargada solamente se encargará de actualizar las diferencias existentes entre el servidor de la nube y el local.

Ahora bien, para poder realizar una actualización del mirror periódica, se puede realizar un script de shell para que el proceso pueda automatizarse. En mi caso, realizo un proceso de registro de eventos para llevar un mejor control. Ejecutamos el siguiente comando para crear el script:

nano /root/mirror.sh

Y copiamos el siguiente contenido:
------------------------------------------------------------------------------
#!/bin/bash
clear
echo “########################################################” >> /root/registro_mirror.log
#debian jessie
echo “Inicio de descarga de Mirror, distribucion Debian 8 estable, Updates y Backports (solo 64 bits) – ” `date`>> /var/www/html/logs/registro_mirror.log
debmirror -debug -progres --no-source --verbose --getcontents –--=none --no-check-gpg --ignore-release-gpg -ignore-missing-release --i18n -a amd64 -s main,contrib,non-free -h ftp.debian.org -d jessie,jessie-updates,jessie-backports -e http -r /debian /var/www/html/debian
echo “Fin de descarga de Mirror, distribucion Debian 8 estable, Updates y Backports (solo 64 bits) – ” `date`>>/var/www/html/logs/registro_mirror.log
echo “Reiniciando el Servidor -  ” `date`>>/var/www/html/logs/registro_mirror.log
reboot
------------------------------------------------------------------------------


Ahora procedemos a automatizar el proceso de actualización, colocando la siguiente línea en el crontab (programador de tareas).

nano /etc/crontab

Agregamos estas lineas al final

#Tarea mirror debian
00 22 * * * root  -c "sh /root/mirror.sh"

Con este comando, la tarea se ejecutará todos los días a las 10:00 PM y el proceso de actualización dependerá de las diferencias existentes entre el mirror local y el de la nube.

Para poder acceder desde un equipo cualquiera y evitar errores de transcripción de los datos, he diseñado este index.php para que pueda ser dinamico. A su vez, muestra información referente al equipo desde el cual nos estamos conectando. 


Ahora el fuente del index.php

nano /var/www/html/index.php


------------------------------------------------------------------------------
<?php
print '<html><head><title>Mirror Local</title></head><body>';
print '<h1>Mirror Local </h1>';
print '<p>#mirror local Debian 8<br>';
print 'deb [arch=amd64] http://mirror/debian/ jessie main contrib non-free<br>';
print 'deb [arch=amd64] http://mirror/debian/ jessie-updates main contrib non-free<br>';
print 'deb [arch=amd64] http://mirror/debian/ jessie-backports main contrib non-free<br></p>';
print '<br>';
print '<p>Tu IP es: <b>'.$_SERVER["REMOTE_ADDR"].'</b></p>';
print '<br>';
print '<p>El IP del servidor es: '.$_SERVER["SERVER_ADDR"].'</p>';
?>



------------------------------------------------------------------------------

Debemos borrar el archivo index.html con el siguiente comando:

rm /var/www/html/index.html

Para poder acceder al mirror, solamente debemos acceder con la siguiente dirección:

http://IP_MIRROR/

NOTA: Se observa que en este caso, en el repositorio se hace mención a la arquitectura que posee el repositorio, la cual se establece con el parámetro [arch=amd64]. Si se desea  agregar otras arquitecturas, se debe cambiar en el SCRIPT el siguiente parámetro: -a i386,amd64 para agregar la arquitectura i386. Cabe mencionar que el tamaño del mirror se incrementará dramaticamente.

jueves, 8 de marzo de 2012

Instalación de un servidor Web en Debian Lenny (Apache2 + php5)


Antes que nada, deben tener una instalación básica de un Servidor en Debian 5 (Lenny), para ello pueden consultar mi artículo haciendo clic aqui.

Primero debemos ingresar a la consola del Debian logueandonos en el equipo ó remotamente utilizando putty.

En la consola ejecutamos el siguiente comando:

apt-get install apache2 libapache2-mod-php5 php5

Ya con este comando el apt-get se encargará de instalar las dependencias necesarias para ejecutar el servidor web.

ahora, configuramos el archivo php.ini, utilizamos el siguiente comando:

nano /etc/php5/apache2/php.ini

Los campos a cambiar son los siguientes (valores en rojo):

short_open_tag = Off
max_execution_time = 0
memory_limit = 256M                  <=== debe ser minimo 128MB y debe estar entre el 25% y 50% 
                                                                 de la RAM del servidor
 register_globals = Off                   <=== En algunos casos puede estar en On
upload_max_filesize = 4M            <=== En mi caso requiero archivos un poco mas grandes, eso 
                                                                 es de acuerdo al criterio del administrador del servidor
date.timezone = America/Caracas <== Zona horaria, necesario para cronologia de fechas y horas
                                                               (deben descomentar la linea quitandole el punto y coma)

Una vez cambiado los valores guardamos y cerramos el archivo. Despues para que los cambios tengan efecto debemos reiniciar el servicio de Apache, ejecutamos el siguiente comando:


service apache2 restart

Ahora, para probar que el php esta funcionando correctamente con el apache ejecutamos cualquier editor de texto (notepad por ejemplo) y escribimos las siguientes lineas:

<?php

phpinfo();


?>


guardamos el archivo con el nombre phpinfo.php y lo colocamos en la carpeta /var/www/

Ahora, en un navegador cualquiera buscamos la siguiente dirección:

http://ip_del_servidor/phpinfo.php

En mi caso, seria la siguiente dirección:

http://172.20.21.53/phpinfo.php

Si se muestra la siguiente ventana significa que el servidor esta listo para ejecutar php




Instalación de Servidor con Linux Debian (Lenny) - Instalación mínima

Introducción: 

Este artículo resalta una correcta instalación (de acuerdo a mi criterio) de una instalación de un servidor en Gnu/Linux distribución Debian, enfocado a Aplicaciones Web. Esta instalación mínima servirá para cualquiera que desee instalar un servidor con un sistema operativo Opensource. De todas las distribuciones existentes en lo particular prefiero Debian para Servidores por su excelente estabilidad y seguridad comprobada.

Hardware:

El hardware de ejemplo es un equipo Pentium 4 con 2 GB de RAM y disco duro de 86 Gb. Iniciamos la instalación con el CD 1 de la distribución actual estable de Debian (6.0.4).

Iniciando la Instalación:

Configuramos el BIOS para que Inicie en la unidad de CD y pueda bootear el instalador. Nos saldrá una pantalla como esta:


Iniciamos la instalación en Modo Texto (opción por defecto). Seleccionamos el Idioma (Spanish), posteriormente el país (Venezuela) y luego la distribución del Teclado si es español o latinoamericano.

TIPS: El teclado español es cuando tiene el @ (arroba) en el número 2 y latinoamericano cuando tiene el @ en la letra Q.


Luego de varias pantallas el sistema pedirá un nombre de Equipo, lo llamaremos "debianpruebas".



Posteriormente pedirá la contraseña del usuario Root (Super usuario) y la confirmación de la contraseña.

Luego solicitará un usuario el cual tendrá atributos limitados, para este ejemplo lo llame Usuario, introducimos luego el nombre completo y despues la contraseña con su confirmación.

Particionando el Disco:

Ahora viene una parte crítica, en esta parte se debe tener Muy claro la distribución del Espacio ya que las particiones se deben establecer de acuerdo al uso del Equipo. En internet existen muchas sugerencias de como particionar un disco en Debian y que formato deben tener cada uno. El criterio que indico aqui es de acuerdo a mi experiencia. El tamaño a distribuir es 86 GB, siendo las particiones de la siguiente manera:

/boot         tipo: ext4, 256MB de espacio, primaria, marcada activa, flags: nodev
/home        tipo: ext4, de 40 GB de espacio, extendida
/                tipo: ext4, 20Gb de espacio, extendida, flags: noatime
swap         tipo: swap, 2 GB (no mas de 4GB)
/var           tipo: ext4, resto del espacio, extendida

Estas particiones pueden variar de acuerdo al tamaño del disco, a modo de sujerencia al amigo lector es que mantenga las proporciones de tamaño con discos mas grandes.

NOTA: El orden tambien tiene una afectación ya que al estar mas cerca del inicio del disco tiene menor latencia en la lectura/escritura del disco.

Explicación de Formatos Utilizados:
Ext2: se utiliza este formato ya que la partición BOOT no requiere comprobaciones a cada momento, su uso es solamente para levantar el entorno del Linux.
Ext4 y XFS: Excelente rendimiento, la diferencia entre ambas es la capacidad de almacenamiento y la manera en la que maneja el journal, siendo el primero fisico y el segundo logico. De acuerdo a un benchmarks (Pruebas de rendimiento) realizado por phoronix las particiones en linux con Ext4 son mas rapidas que las XFS aunque las XFS son mas seguras ante una posible perdida de datos.

NOTA: La partición /VAR es donde se almacenan las bases de datos (Como MySQL, POSTGRES, entre otros) y el directorio raiz del motor Web (/var/www), que acá es donde colocaremos las aplicaciones a utilizar en nuestro servidor, por ende el tamaño asignado (un 50% del disco aprox) y su ubicación en el orden.

Aceptamos los cambios en el disco para que inicie el formato y despues la copia de los archivos al disco.

Luego omitimos la comprobación de otros discos. Omitimos utilizar replicas en internet (la agregaremos mas adelante). Cuando muestre la pantalla de selección de programas seleccionaremos solamente las siguientes opciones:

* Servidor ssh
* Utilidades estandar del sistema.


Le indicamos que continue para culminar la instalación. Cuando solicite instalar el GRUB en la raiz del disco le indicamos que si. Despues indicará que el sistema operativo se encuentra instalado. Solicitará que retire el CD y reiniciar el equipo.




Listo!!! Ya la versión básica de Debian está instalada.

Agregando Repositorios:

Lo primero que debemos verificar es la conexión con la red, para ello utilizamos el comando ifconfig el cual nos dará el detalle de las interfases de red que se encuentran conectadas.

Escribimos el comando ifconfig eth1 (donde eth1 es la tarjeta de red) mostrando el siguiente resultado:

Nota: Por defecto el eth0 es la primera tarjeta de red, en mi caso tengo 2 en el equipo siendo la segunda la que tiene conexion a internet.

Aqui podemos observar el numero IP que es 172.20.21.53 y para comprobar le hago ping desde el equipo en el que me encuentro:


Ya con esta prueba se puede ver que si existe conexión con el equipo. Ahora nos conectamos via SSH, yo utilizo Putty.

Establecemos conexión con el equipo remoto:


 Al conectarnos nos pide un usuario, utilizamos root.

Lo primero que debemos hacer es configurar los repositorios, editamos el archivo sources.list utilizando el siguiente comando:

nano /etc/apt/sources.list

Comentamos el repositorio que busca el CD y agregamos la siguiente linea:

#repositorio debian 
deb http://debian.unesr.edu.ve/debian/ squeeze main contrib non-free

Guardamos y cerramos el archivo.

Ahora ejecutamos los siguientes comandos:

aptitude update   --> actualiza los repositorios

aptitude install debian-keyring --> actualizamos las llaves de los repositorios

aptitude full-upgrade --> actualiza los paquetes que se encuentren desactualizados de acuerdo al repositorio

Y listo!!!

Ya tenemos el debian actualizado!!!