Como probar envios de email en servidor local

En varias ocasiones he programado aplicaciones y paginas web que notifican mediante un correo electrónico ciertas acciones o sucesos (envíos de formularios de contactos, inicios de procesos automáticos, etc.), esto con el tiempo se ha vuelto común para mi, pero en algún momento debí realizar las pruebas necesarias para verificar el correcto funcionamiento es ahí cuando me surgió una necesidad, como probar el envío de email desde mi servidor local.

Como muchos sabrán, para poder enviar email mediante una pagina web, por ejemplo, requerimos que el servidor en cuestión cuente con un servidor de email correctamente configurado, esto es un hecho en la mayoría de Web Hosting, pero si desarrollamos en ambientes locales, como podría ser nuestro propio computador, ejecutando un simple servidor web, esto se vuelve un poco mas complejo. A primera vista necesitamos instalar y configurar un servidor de email, pero esto no es una tarea simple a pesar de existir mucha literatura disponible en internet.

No todo lo 'Fake' es malo

Teniendo claro lo anterior, sabemos que intentar instalar un servidor de email «solo para realizar pruebas locales», no es sensato, entonces ¿Como podemos realizar las pruebas?, y pare responder esto les presento una sencilla, simple y extremadamente útil aplicación llamada FakeSMTP, con ella podremos «emular» un servidor de email y ver como se envían nuestras pruebas.

Instalación y Configuración

Por suerte es una aplicación realmente fácil de empezar a utilizar, esta escrita en java, por tanto su uso en distintos Sistemas Operativos esta garantizada, obviamente el requisito mínimo es tener instalada la alguna versión de java.

Vamos a su pagina web disponible aquí y procedemos a descargar la aplicación (es un archivo con extensión .jar comprimido). Al momento de escribir este post se encuentra disponible la versión 2.0, lo descomprimimos en una carpeta fácil de encontrar y ejecutamos la aplicación, si no les reconoce de inmediato pueden usar la opción de abrir con y seleccionar java.

Cuando la aplicación este cargada deberán ver algo similar a lo siguiente:

Lo único a configurar seria la ubicación donde se guardaran los mensajes haciendo clic en la caja de texto llamada Save message(s) to, seleccionamos un lugar (yo elijo el mismo lugar donde esta el programa), y luego presionamos Start Server, por defecto el puerto es 25 y no es necesario cambiarlo, a menos que les de algún problema o tengan otro servicio en ese puerto, si cambian el puerto del programa deberán cambiarlo en la configuración del servidor web, que por defecto se configura en el puerto 25, autorizan la petición de excepción del firewall si se trata de windows y ya estamos listos para realizar las pruebas.

Por si no lo leyeron en la pagina principal del programa o no lo intuyen por el nombre, les digo, esto no es un servidor de email como tal, lo que hace es interceptar la comunicación del puerto del servidor de email (por defecto 25 para servidores SMTP).

Pruebas de Funcionamiento y Uso

Ahora que tenemos nuestro servidor falso de email, podremos realizar cuantas pruebas queramos, y para demostrar su eficacia lo usare con este post y veremos que sucede.

Completamos el formulario y lo enviamos

Una vez realizado el envío del formulario podemos ver nuestro «FakeSMTP» y podremos ver como ya registro el envío y nos da claras señas de ello.

Si contamos con un cliente de email como Microsoft Outlook o Thunderbird instalado bastara con hacer doble clic en el registro de nuestro interés y el mensaje se desplegara en el cliente de correo.

screenshot.6

Y como pueden observar todo ah funcionado perfectamente y ya contamos con un medio para verificar nuestros envíos por email en entornos locales sin necesidad de complicarnos la existencia. Si no contamos con un cliente de email instalado el programa nos permite ver el fuente de los email «enviados» tan solo presionando la pestaña llamada Last message y podrán visualizar la estructura básica del mail.

screenshot.7

Si desean presentar las pruebas del envió a otra persona, como podría ser un cliente (para que apruebe la estructura), o un Jefe de Proyecto (siempre molestan xD), recuerden que en los primeros pasos configuramos donde guardar los mensajes y si navegamos a ese directorio, encontraran un archivo con extensión eml por cada prueba realizada que pueden adjuntar por correo de ser necesario.

screenshot.5

Espero les pueda servir o ayudar de algo la información presentada aquí, si desean compartir su experiencia, aportar o incluso reclamar, no duden en comentar mas abajo, saludos cordiales.

Envío de formularios web por email con PHP y jQuery AJAX

Hace algún tiempo publique una entrada para crear un formulario multi pasos con html, jquery y css3. Pero nunca explique cómo enviar ese formulario y he recibido varias consultas preguntando eso, así que por fin le dedique un poco de tiempo y crearemos un sencillo script php para el envío de formularios web por email con PHP y jQuery AJAX.

Que necesitamos?

Un formulario (obvio) incluso podría usarse el formulario multipasos ya explicado en esta entrada, pero para fines practico crearemos uno mas simple, pero el método es aplicable a cualquier formulario.

  • Formulario HTML.
  • Un servidor web con php.

Nuestro formulario

<div class="form-style" id="contact_form">
<div class="form-style-heading">SuperMegaDuperHiper Formulario</div>
<div id="contact_body">
<label>
<span>Nombre <span class="required">*</span></span>
<input type="text" name="name" id="name" required="true" class="input-field"/>
</label>
<label>
<span>Email <span class="required">*</span></span>
<input type="email" name="email" required="true" class="input-field"/>
</label>
<label>
<span>Fono</span>
<input type="text" name="phone1" maxlength="4" placeholder="+91"  required="true" class="tel-number-field"/>&mdash;
<input type="text" name="phone2" maxlength="15"  required="true" class="tel-number-field long" />
</label>
<label for="subject">
<span>Asunto</span>
<select name="subject" class="select-field">
<option value="Felicitaciones">Felicitaciones</option>
<option value="Petición">Petici&oacute;n</option>
<option value="Reclamo">Reclamo</option>
</select>
</label>
<label for="field5">
<span>Mensaje <span class="required">*</span></span>
<textarea name="message" id="message" class="textarea-field" required="true"></textarea>
</label>
<label>
<span>&nbsp;</span>
<input type="submit" id="submit_btn" value="Submit" />
</label>
</div>
</div>

Los mas suspicaces notaran que no existe la etiqueta form y esto no es un error del todo, semanticamente no seria correcto si lo validamos con el w3c, pero lo podemos resolver eligiendo el doctype mas adecuado, en este caso html5, así que lo agregamos a nuestro documento html.

<!DOCTYPE html>

Bien y el resultado seria mas menos lo siguiente:

Mmmm, realmente es un formulario muy básico xD, pongamos un poco de color ayudados por css.

Creamos un nuevo documento con extensión .css yo lo llamare style.css (que original).

/* ajuste basico del documento */
body,html{background: #E0EFF1;margin: 0px;padding: 0px;}
/* estilos del formulario */
.form-style{
 max-width: 450px;
 padding: 40px 30px 40px 40px;
 font: 13px Arial, Helvetica, sans-serif;
 margin: 50px auto;
 background: #fff;
     border-radius: 5px;
 -webkit-border-radius:5px;
    -moz-border-radius:5px;
         box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.2);
    -moz-box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.2);
 -webkit-box-shadow: 0px 0px 15px rgba(0, 0, 0, 0.2);
}
.form-style-heading{
 font-weight: bold;
 font-style: italic;
 border-bottom: 2px solid #ddd;
 margin-bottom: 10px;
 font-size: 15px;
 padding-bottom: 3px;
}
.form-style label{display: block;margin: 0px 0px 15px 0px;}
.form-style label > span{
 width: 100px;
 font-weight: bold;
 float: left;
 padding-top: 8px;
 padding-right: 5px;
}
.form-style span.required{color:red;}
.form-style .tel-number-field{width: 40px;text-align: center;}
.form-style  .long{width: 120px;}
.form-style input.input-field{width: 48%;}

.form-style input.input-field,
.form-style .tel-number-field,
.form-style .textarea-field,
.form-style .select-field{
 -webkit-transition: all 0.30s ease-in-out;
    -moz-transition: all 0.30s ease-in-out;
     -ms-transition: all 0.30s ease-in-out;
      -o-transition: all 0.30s ease-in-out; 
         box-sizing: border-box;
 -webkit-box-sizing: border-box;
    -moz-box-sizing: border-box;
 border: 1px solid #C2C2C2;
     box-shadow: 1px 1px 4px #EBEBEB;
    -moz-box-shadow: 1px 1px 4px #EBEBEB;
 -webkit-box-shadow: 1px 1px 4px #EBEBEB;
     border-radius: 3px;
 -webkit-border-radius: 3px;
    -moz-border-radius: 3px;
 padding: 7px;
 outline: none;
}
.form-style .input-field:focus,
.form-style .tel-number-field:focus,
.form-style .textarea-field:focus,  
.form-style .select-field:focus{
 border: 1px solid #7DB4B5;
}
.form-style .textarea-field{height:100px;width: 55%;}
.form-style input[type="button"],
.form-style input[type="submit"] {
    -moz-box-shadow: inset 0px 1px 0px 0px #3985B1;
 -webkit-box-shadow: inset 0px 1px 0px 0px #3985B1;
     box-shadow: inset 0px 1px 0px 0px #3985B1;
 background-color: #216288;
 border: 1px solid #17445E;
 display: inline-block;
 cursor: pointer;
 color: #FFFFFF;
 padding: 8px 18px;
 text-decoration: none;
 font: 12px Arial, Helvetica, sans-serif;
}
.form-style input[type="button"]:hover,
.form-style input[type="submit"]:hover {
 background: linear-gradient(to bottom, #2D77A2 5%, #337DA8 100%);
 background-color: #28739E;
}
.form-style .success{
 background: #D8FFC0;
 padding: 5px 10px 5px 10px;
 margin: 0px 0px 5px 0px;
 border: none;
 font-weight: bold;
 color: #2E6800;
 border-left: 3px solid #2E6800;
}
.form-style .error {
 background: #FFE8E8;
 padding: 5px 10px 5px 10px;
 margin: 0px 0px 5px 0px;
 border: none;
 font-weight: bold;
 color: #FF0000;
 border-left: 3px solid #FF0000;
}

Ahora nuestro formulario si luce bien.

screenshot.1

Pero un momento, si el formulario no tiene la etiqueta

<form></form>

  como enviaremos el formulario sin el atributo action?. La respuesta es bien simple… Con Jquery Ajax por supuesto. Podemos crear un Archivo independiente para el script Jquery o integrarlo en la cabecera de nuestro documento html dentro de una etiqueta 

<script type="text/javascript">

  , yo lo incluiré dentro del documento.

Primero  declaramos un document ready

$(document).ready(function(){});

  y dentro programamos las validaciones básicas.

El código esta fuertemente comentado, por tanto no lo explicaré detalladamente (si existen dudas o incluso pueden aportar mejoras, comentarlas).

Debemos realizar las validaciones del lado del cliente antes que se envíe el formulario y presentar los errores si es que existen, para ello activamos nuestras validaciones con el método .click de jQuery, en términos mas simples, nuestro código jQuery se activara una vez realicemos un clic al botón enviar.

Usando los selectores de jQuery, vigilamos la acción .click()

$(document).ready(function(){
//usaremos el metodo .click() de jQuery para iniciar
//las validaciones del lado del cliente y enviar el formulario
$("#submit_btn").click(function(){
//creamos una variable como flag(bandera), 
//la usaremos para detener el script si no 
//se cumplen las reglas de validacion
var continuar = true;
//Validacion del lado del cliente
//iniciamos un bucle para validar todos los campos input y agregar un borde de color 
//cuando se envie el formulario con algun campo vacio
$("#contact_form input[required=true], #contact_form textarea[required=true]").each(function(){
$(this).css('border-color','');
if(!$.trim($(this).val())){ //si el campo esta vacio 
$(this).css('border-color','Red'); //cambiar el color del borde   
continuar = false; //Seteamos la bandera en false y detemos la ejecución
}
//si el if anterior valida correctamente pasamos a la siguiente validacion
//Usaremos una expresion regular para validar la estructura del email
var email_reg = /^([\w-\.]+@([\w-]+\.)+[\w-]{2,4})?$/; 
if($(this).attr("type")=="email" && !email_reg.test($.trim($(this).val()))){
$(this).css('border-color','Red'); //Cambiamos el color del borde si no cumple la estructura   
continuar = false; //Seteamos la bandera en false y detemos la ejecución                
}
});
});

//restablecer los colores del borde establecidos con anterioridad y ocultar todos los mensajes de .keyup()
$("#contact_form  input[required=true], #contact_form textarea[required=true]").keyup(function(){
$(this).css('border-color','');
$("#result").slideUp();
});
});

La primera parte ya esta hecha, pero al probar el formulario nos daremos cuenta que no realiza ninguna acción, si vemos la consola del navegador observaremos este error:

Error jQueryEsto se produce por no haber agregado la llamada a la librería de jQuery, asi que procedemos a incluirla en la cabecera de nuestra pagina 

<script src="http://ajax.googleapis.com/ajax/libs/jquery/2.0.0/jquery.min.js">

  ahora al volver a probar nuestro formulario e intentar enviarlo sin completar los campo se iluminan los bordes con un color rojo indicando un error y si completamos los campos iluminados estos se restablecen.

validacíon jQueryBien ahora ya validamos correctamente, pero cuando realizamos el envío no sucede nada, pues bien ahora lo resolveremos.

Para enviar los datos por email, usaremos el método mail() de PHP, este método de php es lo mas básico que podríamos implementar y mas sencillo.

Desde nuestro script jQuery mediante ajax enviaremos los datos del formulario a nuestro nuevo archivo php (contact_me.php) para procesarlos y enviar el mail (al fin).

Agregamos los siguiente a nuestro script después  del método .eatch().

//Si llegamos a este punto, ¡Todo se ve bien! proceder...
if(continuar){
//obtenemos los valores de los campos de entrada para ser enviados al servidor
post_data = {
'user_name'    : $('input[name=name]').val(),
'user_email'   : $('input[name=email]').val(),
'country_code' : $('input[name=phone1]').val(),
'phone_number' : $('input[name=phone2]').val(),
'subject'      : $('select[name=subject]').val(),
'msg'          : $('textarea[name=message]').val()
};

//Enviar datos mediante Ajax al servidor
$.post('contact_me.php', post_data, function(response){  
if(response.type == 'error'){ //Cargamos datos en formato JSON de validacion del lado del servidor para mostrar los mensajes de error.
output = '<div class="error">'+response.text+'</div>';
}else{
output = '<div class="success">'+response.text+'</div>';
//Restablecemos los valores de todos los campos del formulario
$("#contact_form  input[required=true], #contact_form textarea[required=true]").val('');
$("#contact_form #contact_body").slideUp(); //Ocultamos el formulario y mostramos un mensaje de éxito
}
$("#contact_form #contact_results").hide().html(output).slideDown();
}, 'json');
}

Ahora crearemos el archivo

contact_me.php

  y agregamos el siguiente código.

<?php
if($_POST){
//A quien le llegara el email
$to_email = "mail@localhost";    
//Primera validacion y basica, comprobar si es una petición AJAX
if(!isset($_SERVER['HTTP_X_REQUESTED_WITH']) AND strtolower($_SERVER['HTTP_X_REQUESTED_WITH']) != 'xmlhttprequest') {
$output = json_encode(array( //crear datos JSON
'type' => 'error',
'text' => 'Perdon, las peticiones deben ser de tipo Ajax'
));
die($output);
}
//Limpiamos los datos de entrada utilizando filter_var() de PHP5
$user_name    = filter_var($_POST["user_name"], FILTER_SANITIZE_STRING);
$user_email   = filter_var($_POST["user_email"], FILTER_SANITIZE_EMAIL);
$country_code = filter_var($_POST["country_code"], FILTER_SANITIZE_NUMBER_INT);
$phone_number = filter_var($_POST["phone_number"], FILTER_SANITIZE_NUMBER_INT);
$subject      = filter_var($_POST["subject"], FILTER_SANITIZE_STRING);
$message      = filter_var($_POST["msg"], FILTER_SANITIZE_STRING);


//Aunque validamos los datos con jQuery, si por alguna razon el
//navegador del visitante tiene javascript desahilitado no funcionara la validacion
//asi que realizaremos validación adicional con php del lado del servidor
if(strlen($user_name)<4){ //Si la longitud es menor que 4, devolvemos el error con JSON
$output = json_encode(array('type'=>'error', 'text' => 'El nombre es demasiado corto o está vacío!'));
die($output);
}
if(!filter_var($user_email, FILTER_VALIDATE_EMAIL)){ //validacion de email
$output = json_encode(array('type'=>'error', 'text' => 'Por favor ingrese un email valido!'));
die($output);
}
if(!filter_var($country_code, FILTER_VALIDATE_INT)){ //Chequear que el campo codigo pais es un numero valido
$output = json_encode(array('type'=>'error', 'text' => 'Introduzca sólo dígitos en el código de país'));
die($output);
}
if(!filter_var($phone_number, FILTER_SANITIZE_NUMBER_FLOAT)){ //Chequear que el telefono sea un numero valido
$output = json_encode(array('type'=>'error', 'text' => 'Introduzca sólo dígitos en el número de teléfono'));
die($output);
}
if(strlen($subject)<3){ //Nos aseguramos que el asunto no este vacio
$output = json_encode(array('type'=>'error', 'text' => 'El asunto es requerido'));
die($output);
}
if(strlen($message)<3){ //Revisamos que el mensaje no esta vacio
$output = json_encode(array('type'=>'error', 'text' => 'Mensaje demasiado corto! Por favor, introduzca algo mas.'));
die($output);
}


//cuerpo del email
$message_body = $message."\r\n\r\n-".$user_name."\r\nEmail : ".$user_email."\r\nPhone Number : (".$country_code.") ". $phone_number ;
//enviamos el email con php.
$headers      = 'From: '.$user_name.'' . "\r\n" .'Reply-To: '.$user_email.'' . "\r\n" .'X-Mailer: PHP/' . phpversion();
$send_mail    = mail($to_email, $subject, $message_body, $headers);

if(!$send_mail){
//Si el correo no pudo ser enviado o recibimos error de salida.
//Compruebe la configuración de correo electrónico PHP (si es que alguna vez sucede )
$output = json_encode(array('type'=>'error', 'text' => 'No se pudo enviar el correo! Por favor, compruebe la configuración de PHP mail.'));
die($output);
}else{
$output = json_encode(array('type'=>'message', 'text' => 'Hola '.$user_name .' Gracias por tu email, pronto nos contactaremos.'));
die($output);
}
}
?>

Ahora ya podemos realizar un prueba del envío. No olviden cambiar la dirección de email donde llegaran los mensajes en la linea 4 del archivo contact_me.php.

Otra cosa importante es el hecho que si prueban el formulario en un servidor local no les llegara el mensaje al correo configurado y si miran la consola del navegador verán un mensaje similar al siguiente.

<br />
<b>Warning</b>:  mail(): Failed to connect to mailserver at &quot;localhost&quot; port 25, verify your
 &quot;SMTP&quot; and &quot;smtp_port&quot; setting in php.ini or use ini_set() in <b>D:\USBWebserver
 v8.6\root\ajaxcontact\contact_me.php</b> on line <b>54</b><br />
{"type":"error","text":"No se pudo enviar el correo! Por favor, compruebe la configuraci\\u00f3n mail
 en su archivo php.ini."}

Esto es por que nuestros computadores hogareños no cuentan con un servidor de email configurado para poder enviar los email a otros servidores (gmail,yahoo, etc), pero en un hosting publico no deberíamos tener problema.

Actualización 21/06/2016

Para realizar pruebas en ambientes locales leer el siguiente post Como probar envios de eamil en servidor local

Descargar

Referencias

Paleta de Colores
Método .click() jQuery
Método mail PHP
jQuery.ajax()
filter_var PHP
filter_sanitize PHP

Arc Theme, un nuevo tema para tus ventanas en Ubuntu

Arch Theme es una nueva forma de personalizar tu gestor de ventanas que ofrece temas visuales con elementos transparentes para escritorios basados en GTK 3 y GTK 2, así como para GNOME Shell. Es una nueva opción que se añade a las ya existentes para dar a nuestro escritorio el aspecto visual que más nos convenza,…

El artículo Arc Theme, un nuevo tema para tus ventanas en Ubuntu ha sido originalmente publicado en Ubunlog.

desde Ubunlog http://ift.tt/1ET01rH
via IFTTT

Ubuntu libera el código que usaba en Ubuntu One

Hace ya mucho que Ubuntu cerró el servicio de Ubuntu One y sorprendentemente hoy conocemos que el proyecto al fin revivirá aunque no de la forma que hubiéramos esperado. Ubuntu ha publicado bajo licencia AGPLv3 todo el código que se usaba para Ubuntu One, más en concreto el programa que se utilizaba para sincronizar sus…

El artículo Ubuntu libera el código que usaba en Ubuntu One ha sido originalmente publicado en Ubunlog.

desde Ubunlog http://ift.tt/1h17os8
via IFTTT

5 de los mejores plugins para crear Formularios de Contacto para WordPress | GeeksRoom

Una parte importante del blog para que los lectores se puedan comunicar con ustedes los webmasters o editores es la página de contacto. En esa página de contacto en su blog pueden tener una dirección de email para que el usuario haga clic y con su cliente de email les envíe directamente un email o algo más profesional y mucho más cómodo para el lector, un formulario de contacto. En WordPress hay muchos plugins que permiten agregar un formulario de contacto y 5 de los mejores son los siguientes, Contact Form 7 Es el que utilizamos en este blog.  Ofrece muchas características y permite al usuario crear un formulario personalizado.  Si no quieren personalizar, viene con un formulario preestablecido que solicita al lector escribir su nombre (obligatorio), dirección de email (obligatorio), página web (opcional) y la caja de texto para escribir el mensaje.  Ahora no es algo fácil de personalizar intuitivamente, pero muestran varios ejemplos como para en poco tiempo poder crear uno formulario

Origen: 5 de los mejores plugins para crear Formularios de Contacto para WordPress | GeeksRoom

MATE 1.8.2 ya ha sido liberado, te contamos cómo preparar tu Linux para instalarlo

Para aquellos que no lo sepan, MATE es un entorno de escritorio de código abierto lanzado como un fork del antiguo GNOME 2, diseñado específicamente para ser usado por desarrolladores de Linux que quieren crear distribuciones ligeras que funcionen en ordenadores de especificaciones reducidad. Justo hace poco tiempo sabíamos que Ubuntu MATE había conseguido ser un…

El artículo MATE 1.8.2 ya ha sido liberado, te contamos cómo preparar tu Linux para instalarlo ha sido originalmente publicado en Ubunlog.

desde Ubunlog http://ift.tt/1BQJPsB
via IFTTT

Instalar phpIPAM para manejar direcciones IP y subredes de una red local

Para un administrador de sistema es fundamental disponer de buenas herramientas que le permitan realizar su tarea en forma ordenada y lo más simple y ágil que le sea posible, y aunque la linea de comandos y los editores como Vi siguen siendo de lo más utilizados, lo cierto es que con el paso del tiempo vemos llegar apps que ofrecen a quienes lo deseen la posibilidad de trabajar de una forma más visual y precisa para realizar algo que es de extrema importancia.

Estamos hablando del manejo de redes y subredes, algo que es imperativo no sólo por cuestiones de seguridad sino también para garantizar un rendimiento acorde y también para ordenar el tráfico. Para estos menesteres tenemos una herramienta open source muy interesante llamada phpIPAM (IP Adress Manager), que nos ofrece no sólo la gestión de las subredes sino además la posibilidad de acceder a ella desde cualquier equipo de nuestra red dado que funciona via web, a lo Webmin (otra herramienta de administración muy conocida en el mundo Linux).

Entre las características de phpIPAM podemos mencionar su soporte tanto para IPv4 como para IPv6, no sólo en cuanto a la gestión sino también a través de complementos siempre útiles e interesantes como una calculadora de red. También hay soporte para MySQL, que es la base de datos que se utilizará para guardar toda la información respecto de las direcciones IP y las estaciones de trabajo y departamentos a los cuales corresponden. También podemos gestionar los permisos de usuarios y de grupos desde aquí, y hay un potente buscador para encontrar un determinado equipo dentro de una red, algo que siempre se agradece porque hay que tener en cuenta que esta herramienta puede utilizarse en grandes corporaciones donde los equipos se cuentan de a centenares.

Para instalar phpIPAM en Ubuntu necesitamos un servidor LAMP, así que primero satisfacemos las dependencias y para ello ejecutamos lo siguiente:

sudo apt-get install apache2 mysql-server php5 php5-gmp php-pear php5-mysql php5-ldap wget

Luego establecemos la contraseña para MySQL:

mysqladmin -u root password CONTRASEÑA

Por defecto, phpIPAM se instala en el subdirectorio /phpipam/, aunque nosotros podemos estableder otro si así lo preferimos. Para comenzar descargamos el paquete de instalación desde su sitio en SourceForge (en la actualidad la versión estable es la 1.0).

Luego extraemos su contenido a la carpeta /phpipam/:

cp phpipam-1.0.tar /var/www/
cd /var/www/
tar xvf phpipam-1.0.tar
rm phpipam-1.0.tar

Ahora llega el momento de especificar el usuario y contraseña en la configuración de MySQL, al igual que el directorio base, para lo cual abrimos el archivo de configuración para edición:

sudo gedit /var/www/phpipam/config.php

Ingresamos los valores deseados:

$db['host'] = "localhost";
## Usuario MySQL para ipam ##
$db['user'] = "phpipam";
## Contraseña para el usuario MySQL ##
$db['pass'] = "phpipamadmin";
## Base de datos MySQL ##
$db['name'] = "phpipam";
## Directorio base ##
define('BASE', "/phpipam/");

Guardamos los cambios, y ahora vamos a otorgarle permiso a este directorio base, lo cual como siempre en el caso de Apache realizamos desde el archivo .htaccess:

sudo gedit /var/www/phpipam/.htaccess

Añadimos lo siguiente, y guardamos los cambios:

RewriteBase /phpipam/

Ahora llega el momento de preparar el servidor Apache, y para ello lo primero es activar el módulo rewrite, que phpIPAM requiere para su funcionamiento:

a2enmod rewrite

Tras lo cual debemos dedicarnos a la configuración de Apache, así que ejecutamos lo siguiente:

sudo gedit /etc/apache2/sites-enabled/000-default

Debemos dejarlo tal cual vemos debajo:

    <Directory /var/www/>

    Options Indexes FollowSymLinks MultiViews

    AllowOverride all

    Order allow,deny

    allow from all

    </Directory>

Luego reiniciamos el servidor Apache:

sudo service apache2 restart

Eso es todo, ya hemos instalado phpIPAM y para comprobarlo simplemente debemos iniciar el navegador web e ingresar la dirección que se corresponda con nuestro servidor, seguido de /phpIPAM. Por ejemplo www.nuestroservidor.com/phpipam, tras lo cual veremos que se nos muestra el panel de administración de phpIPAM. Luego veremos cómo comenzar a gestionar las direcciones IP de nuestra red local desde esta herramienta, pero eso lo dejamos para un próximo post.

 

El artículo Instalar phpIPAM para manejar direcciones IP y subredes de una red local ha sido originalmente publicado en Ubunlog.

desde Ubunlog http://ift.tt/1vL4poK
via IFTTT

Cómo instalar Monitorix para monitorizar tu servidor web

Tiempo atrás vimos cómo monitorizar un servidor Nginx con Linux-dash, pero como ya sabemos todos los que estamos en esto si algo nos sobra en el gran sistema operativo libre son opciones, tanto en lo referente a los servidores como a las formas que tenemos de estar al tanto de todo lo que acontece con…

El artículo Cómo instalar Monitorix para monitorizar tu servidor web ha sido originalmente publicado en Ubunlog.

desde Ubunlog http://ift.tt/1pCWKsf
via IFTTT

Cambia textos por defecto de WordPress sin tocar una línea de código

Ya varias veces hemos visto cómo se cambian textos por defecto de WordPress usando el maravilloso código str_replace pero ¿y si no quieres modificar códigos? Entonces nada mejor que Say what?, una chulada de plugin que viene a hacer lo mismo pero con una interfaz la mar de sencilla. Simplemente añades el texto a modificar, le das al enlace “Edit” y lo cambias a tu gusto, así puedes pasar … Simplemente añade una nueva cadena de texto original de WordPress y le pones el nombre que se te ocurra. Más fácil no se puede.

Visita la pagina del plugin aquí, para mas información.

Ubuntu 13.04 Final disponible para descarga

Desde hace pocos días, ya contamos con la versión final de Ubuntu 13.04 cuyo nombre clave es Raring Ringtail, disponible para libre descarga desde los servidores de canonical. Según lo informado con anterioridad este versión trae una notable mejora en desempeño en equipo de bajos recursos, algo que fue muy distinto de su versión anterior. Además de la potenciación para dispositivos moviles (equipos celulares y tablet).

Personalmente descargué ubuntu 13.04 para probarla en una maquina virtual (virtualbox), dado que ubuntu desde la incorporación de unity a dejado de ser la distribución de linux que uso, y aunque esta no es la mejor manera de probar una distribucion, debo señalar qu le asigne lo mayor cantidad de recursos que mi sistema anfitrion me permitía (2GB de memoria RAM y 256 MB de memoria de video, sobre un intel i7)  y aun asi no funcionó de manera prolija, se notaba la necesidad de una buena tarjeta aceleradora y que unity consumia memoria como si de agua se tratara.

Lo que es digno de resaltar es que canonical, siempre entrega un look and feel impecable y atractivo.

Cuando encendemos por primera vez nuestro computador con Ubuntu 13.04, tendremos una pantalla de login muy similar a la de Ubuntu 12.10. Dentro del escritorio los cambios más destacables son el nuevo paquete de iconos que trae Ubuntu 13.04. Este nuevo paquete de iconos ha modificado la interface de algunos iconos como los del centro de software de Ubuntu, actualizaciones de Ubuntu, Nautilus, lanzador de Ubuntu. Está claro que no se han modificado todos los iconos de Ubuntu 12.10 debido a que Canonical tan sólo penso en cambiar la interface de los iconos de sus programas «propios» como el centro de software de Ubuntu, Unity, y el gestor de archivos nautilus, este último aun sin ser un programa propio de Canonical, es el gestor de archivos que Canonical usa como gestor de archivos de Ubuntu.

A simple vista, no podemos apreciar otros cambios visuales y el escritorio es exactamente el mismo que hemos podido disfrutar en Ubuntu 12.10, pero cuando queramos apagar, reiniciar o cerrar sesión de nuestro ordeandor, veremos que el diseño de estos ha sufrido un buen lavado de cara. Ahora tenemos iconos mucho más grandes y con una interface totalmente distinta a la típica ventana de apagar o reiniciar el ordenador.

Aunque no tenemos muchos más cambios visuales, en Ubuntu 13.04 si que encontramos algunos cambios en la configuración de Ubuntu. Por ejemplo en Ubuntu 13.04 tan sólo tendremos un área de trabajo por defecto. Ubuntu siempre había seguido la configuración digamos «estándar» de Gnome 2. Dos áreas de trabajo por defecto  y ya que sea el usuario que decida si aumentar o disminuir dicha cifra. Con el salto de Ubuntu a Gnome 3, Canonical decidió incluir dos áreas de trabajo  más al igual que Gnome Shell. Por tanto, nos encontrábamos con cuatro áreas de trabajo o escritorios virtuales en forma de matriz de 2X2.

En esta ocasión, Canonical ha decidido por primera vez de tantas áreas de trabajo virtuales y tan sólo han dejado una. Ahora tiene que ser el usuario quién decida si aumentar o disminuir dicha cifra desde la configuración de Ubuntu.

Una vez que hemos hablado un poco de los cambios a nivel estético de Ubuntu 13.04, vamos a hablar de cambios internos y de rendimiento de Ubuntu 13.04. Cuando descargamos el cd live de Ubuntu 13.04, Canonical nos dice que esta versión es la versión más rápida de Ubuntu hasta la época. ¿Será verdad?.

Además, hablando de las búsquedas dentro del dash de Unity hay que decir que han mejorado en cuanto al resultado de estas. Ahora no hace falta poner la palabra bien del programa, archivo, documento, etc que estemos buscando. Ahora podemos cambiar de orden letras, saltarnos letras, etc, que el dash de Unity nos mostrará por pantalla aplicaciones que contengan en mayor o menor medida, dichas letras. Este cambio es bastante bueno ya que se nota en el rendimiento de Ubuntu 13.04. Ya no hace falta escribir despacio o con cuidado para que Ubuntu 13.04 nos lance la aplicación que queramos. Ahora podemos escribir mucho más deprisa que Ubuntu nos reconocerá perfectamente la aplicación que queremos lanzar aun estando mal escrita.

Relacionado con todo esto, ahora desde el propio lanzador de aplicaciones de Unity podemos cambiar de ventana rápidamente sin necesidad de pulsar sobre el icono y mostrar todas las ventanas abiertas. Simplemente con girar la ruleta del ratón sobre la aplicación abierta, Ubuntu nos cambiará de ventana. Aunque esto no hace que Ubuntu sea más rápido, para nosotros es mucho más cómodo que estar pulsando sobre un icóno para que nos muestre en pequeño las ventanas abiertas.

Una combinación de teclas que ha cambiado es ALT + TAB. Ahora nos mostrará, al igual que antes, las ventanas abiertas dentro de una misma aplicación y sin nos quedamos un tiempo señalando esa ventana, se nos abrirán todas las ventanas abiertas en pequeño para que podamos elegir cual queremos. Este «efecto» es el mismo que hace Ubuntu 12.10 al pulsar sobre un programa en el que tengamos varias ventanas abiertas.

Y hablando de ventanas abiertas, en Ubuntu 13.04 se crea un «alo» en la ventana seleccionada cuando pulsamos sobre una aplicación con varias ventanas abiertas. Aunque este «alo» ya existía en versiones anteriores, en Ubuntu 13.04 ha cambiado dando un efecto bastante más atractivo.

Caine, desentrañando la informatica forence

Caine 2.0 es una distribución de Linux basada en Ubuntu 10.04 para científicos forenses y administradores responsables de seguridad. Esta distribución está preparada para combatir a los TI incompetentes, ya que Caine cuenta con una gran selección de software, una interfaz gráfica amigable y un soporte receptivo.

En 2007, un número de sistemas TI fueron comprometidos mediante el framework ruso para hacking MPack, infectando grandes cantidades de servidores, principalmente centros de datos de Italia. Poco después, diez desarrolladores de software libre contraatacaron publicando el CD de análisis forense Caine (Computer-Aided Investigative Enviroment). Este LiveCD está diseñado para tomar capturas y analizar sistemas comprometidos in situ.

Esta distribución cuenta con los tres formatos principales de imágenes válidas en términos forenses y útiles para ser presentadas ante un tribunal. Estos formatos son RAW, EWF y AFF y cuenta con todas las herramientas relacionadas con la creación de estas imágenes como son dd, dc3dd, dcfld, aimage o ewfacquire.

Se puede manejar mediante la línea de comando o desde la interfaz gráfica. Si elegimos la línea de comandos, podemos loguearnos como superusuario escribiendo en el modo texto sudo su y escribiendo como contraseña caine.

El kernel de esta última versión es el 2.6.32, que detecta y soporta sin problemas los controladores actuales.

Pagina Oficial

ccleanner en linux, o como eliminar basura temporal

después de estar usando mi ubuntu por bastante tiempo e instalar y desintalar cosas, probar configuraciones y cosas por el estilo el sistema se resintió en su rendimiento y al llegar a esta situación, simplemente lo LIMPIE de basura y cosas innecesarias, y decidí crear este post para ayudar a quien necesite limpiar su sistema y no sepa como hacerlo.

Es importante hacer notar que esto puede ser implementado en cualquier sistema linux solo se deberá buscar los paquetes sugeridos para su distribución.

En esta entrada explicaré deborphan, un paquete que se encarga de buscar las librerías huérfanas, es decir, aquellas que no se desinstalaron correctamente y que ya no se utilizan.

Instalación y uso

 

Para la instalación de deborphan utilizaremos el maravilloso apt-get:

apt-get install deborphan

Y ahora para ver las librerías huérfanas simplemente tecleamos:

deborphan

Si además queremos obtener una descripción de estas librerías usaremos deborphan mediante el comandó dpkg (gestor de paquetes):

dpkg -l $(deborphan)

A partir de aquí podemos desinstalar la lista de librerías huérfanas con el siguiente comando:

sudo dpkg --purge $(deborphan)

Deporphan además de eliminar librerías huérfanas se puede utilizar para buscar ficheros de configuración que ya no se utilizan. Estos ficheros se suelen quedar en nuestro sistema porque no utilizamos la opción –purge al desinstalar un programa mediante apt-get remove.

Para visualizar estos ficheros de configuración tecleamos:

dpkg -l $(deborphan --find-config)

Y ahora para eliminarlos:

sudo dpkg --purge $(deborphan --find-config)

En definitiva, deborphan es un paquete muy recomendable que nos ayuda a mantener una coherencia entre los paquetes instalados y que a su vez elimina los ficheros de configuración inservibles. El resultado es siempre positivo, ya que, por un lado se obtiene más espacio en el disco duro y por el otro se mantiene un orden en el sistema.

 

Limpiando la basura de configuración

 

Bueno pues otra manera muy recomendable de mantener un orden es usando localepurge, un paquete que se encarga de eliminar los archivos de traducción que no utilizamos.

Para instalarlo usaremos el querido apt-get:

sudo apt-get install localepurge

Justo después de la instalación aparecerá una pantalla donde tenemos que seleccionar los idiomas a conservar.

localepurge-config

 

Primero seleccionaremos los idiomas de primer nivel, es decir, los que van sin guiones, estos son los más importantes ya que contienen la mayoría de la traducción del idioma. A continuación escogemos los de segundo nivel, los que van con guiones. Para que tengan una idea yo voy a conservar la siguiente lista:

  • es_CL
  • es_CL.UTF-8

Una vez configurado localepurge, solo tenemos que ejecutarlo como de root para eliminar los ficheros de traducción que no deseamos:

sudo localepurge

Puede resultar como el siguiente ejemplo:

sudo localepurge
localepurge: Disk space freed in /usr/share/locale: 11308K

Desde ahora, cada vez que instalemos una aplicación mediante apt-get se ejecutará automáticamente localepurge al finalizar la instalación. Como lo muestra el siguiente ejemplo donde se observa como se han eliminado 888kb al instalar gnomebaker:

sudo apt-get install gnomebaker
85321 ficheros y directorios instalados actualmente.
Desempaquetando gnomebaker (de …/gnomebaker_0.6.0-0ubuntu2~dapper1_i386.deb) …
Configurando gnomebaker (0.6.0-0ubuntu2~dapper1) …
localepurge: Disk space freed in /usr/share/locale: 888K

localepurge es un paquete al igual que deborphan que nos ayuda a eliminar archivos innecesarios, en este caso archivos de traducción que no utilizamos, obteniendo como resultado más espacio en disco.