Instalar Apache, MySQL y PHP en Linux (Ubuntu 14.04)

Probablemente este conjunto (Linux + Apache + MySQL + PHP), o también conocido como LAMP, sea uno de los más softwares libres que más se utilizan en servidores web. Hoy os voy a contar cómo instalar Apache, MySQL y PHP en una distribución Linux (Ubuntu 14.04).

1. Actualizar la base de datos de paquetes de apt-get

Sin entrar en mucho detalle, apt-get, es una herramienta para gestionar el software de varias distribuciones Linux. En el caso de Ubuntu, es la herramienta por defecto. Lo primero que debemos de hacer es actualizar la base de datos con las últimas versiones de los paquetes disponibles para nuestra distribución. Para ello utilizaremos el siguiente comando:

sudo apt-get update

2. Instalar Apache

Apache es un conocido servidor web de código abierto, y probablemente el más usado del mundo.

sudo apt-get install apache2

Una vez instalado, podremos probar que funciona a través de un navegador web usando las URLs http://hostname_o_dominio_servidor ó http://ip_de_servidor, según prefieras. En mi caso http://tesla:

Si has podido ver esta página, es que la instalación ha ido correctamente. Es la página web por defecto de Apache, con información básica del servidor.

3. Instalar MySQL

MySQL es un sistema de gestión de Base de Datos ampliamente utilizado en conjunto con Apache y PHP. En este caso también instalaremos varios paquetes para la integración de MySQL con Apache y PHP.

sudo apt-get install mysql-server libapache2-mod-auth-mysql php5-mysql

Durante la instalación, nos pedirá que asignemos una contraseña para el usuario root de MySQL.

Una vez instalado, es recomendable activar las tablas del sistema MySQL:

sudo mysql_install_db

Otro paso recomendable es ejecutar el programa mysql_secure_installation para mejorar la seguridad del servidor MySQL. Con esto:

  • Puedes definir una password para los usuarios root.
  • Puedes borrar los usuarios root para que son accesibles desde fuera del host local.
  • Puedes borrar cuentas de usuarios anónimos.
  • Puedes borrar la base de datos de test.

Ejecuta el siguiente comando y sigue sus instrucciones:

sudo mysql_secure_installation

Ahora ya podemos instalar PHP.

4. Instalar PHP

PHP es un lenguaje de código abierto de web scripting que es usado masivamente para construir páginas webs dinámicas.

sudo apt-get install php5 libapache2-mod-php5 php5-mcrypt

Puede ser interesante añadir index.php al principio de los ficheros que puede indexar Apache. Para ello hay que editar el fichero dir.conf e incluir el index.php al principio.

sudo vi /etc/apache2/mods-enabled/dir.conf

De tal modo que quede así:

<IfModule mod_dir.c>
        DirectoryIndex index.php index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

Podría interesarte instalar más podulos de PHP. Aquí verías un listado:

yvoictra@tesla:~$ apt-cache search php5-
php5-common - Common files for packages built from the php5 source
php5-curl - CURL module for php5
php5-dev - Files for PHP5 module development
php5-json - JSON module for php5
php5-readline - Readline module for php5
php5-cgi - Lenguaje de guiones embebidos en HTML para servidores (binario CGI)
php5-cli - intérprete de órdenes para el lenguaje de guión php5
php5-dbg - Símbolos de depuración para PHP5
php5-gd - Módulo GD para php5
php5-gmp - Módulo GMP para php5
php5-ldap - Módulo LDAP para php5
php5-mysql - Módulo MySQL para php5
php5-odbc - Módulo ODBC para php5
php5-pgsql - Módulo PostgreSQL para php5
php5-pspell - Módulo pspell para php5
php5-recode - Módulo recode para php5
...

Para instalar cualquiera de los paquetes, usa la el comando apt-get:

sudo apt-get install nombre_del_modulo

5. Ver resultados

Ya tenemos los paquetes de LAMP instalados. Ahora podemos ver que PHP esté correctamente instalado creando la web de test. Creamos el siguiente fichero:

sudo vi /var/www/html/info.php

Y añadimos esto:

<?php
phpinfo();
?>

Ahora visitamos la web en las siguientes URLs http://hostname_o_dominio_servidor/info.php ó http://ip_de_servidor/info.php, según prefieras. En mi caso http://tesla/info.php.

Aparecerá la web de información de PHP:

php_info

¡Y se acabó! Ya está instalado Apache + MySQL + PHP en nuestro servidor Ubuntu.

Obtener hostname y demás info de un equipo remoto a través de la IP

nmap_logo_vx

En más de una ocasión me he encontrado ante la duda de qué máquina hay detrás de una IP. Siempre hay herramientas que nos pueden ayudar con este tema, y aquí os presento la que yo utilizo: el fantástico nmap. La verdad es que hay pocas herramientas tan útiles…

Lo que me suele ayudar para identificar máquinas, es buscando el hostname, que te lo devuelve el campo «Service Info«.

[root@host01:~]# nmap -A 10.114.99.29
Starting Nmap 4.11 ( http://www.insecure.org/nmap/ ) at 2014-03-03 17:14 CET
Interesting ports on sede1-10-114-99-29.wnet (10.114.99.29):
Not shown: 1673 closed ports
PORT     STATE SERVICE    VERSION
21/tcp   open  ftp        OpenBSD ftpd 6.4 (Linux port 6.4)
22/tcp   open  ssh         (protocol 2.0)
80/tcp   open  http       Microsoft IIS webserver 7.5
111/tcp  open  rpcbind     2 (rpc #100000)
3128/tcp open  http-proxy Squid webproxy 3.1.20
6000/tcp open  X11        X.Org (open)
8080/tcp open  http       Microsoft IIS webserver 6.0
1 service unrecognized despite returning data. If you know the service/version, please submit the following fingerprint at http://www.insecure.org/cgi-bin/servicefp-submit.cgi :
SF-Port22-TCP:V=4.11%I=7%D=3/3%Time=5314AA54%P=i686-suse-linux-gnu%r(NULL,
SF:20,"SSH-2\.0-OpenSSH_6\.0p1\x20Debian-4\r\n");
Device type: general purpose
Running: Linux 2.4.X
OS details: Linux 2.4.18 - 2.4.27
Service Info: Host: host39.cosmos.es.ftgroup; OSs: Linux, Windows, Unix

Nmap finished: 1 IP address (1 host up) scanned in 13.901 seconds

Abrir varios perfiles simultáneos de Firefox [II]

En 2009 ya descubrí uno de mis trucos favoritos del navegador Firefox, y que a día de hoy sigo utilizando. Hoy simplemente vengo a recordarlo porque probablemente muchos ni lo habréis leído, y además a explicaros la forma en la finalmente yo más utilizo: Con las opciones «-p» y «-no-remote«.

En Windows, que por suerte o desgracia es el SSOO de escritorio que más utilizo, lo que suelo hacer es:

  1. Pulsar la combinación de teclas Windows +R para conseguir la ventana de ejecutar.
  2. Ejecutar el comando: firefox -p -no-remote.

firefox_no-remote

Así consigues tener las n instancias de Firefox que quieras, cada una con el perfil que quieras. Es muy útil cuando tienes distintos perfiles (Por ejemplo el del trabajo y el personal) y quieres usarlos a la vez sin que interfieran.

Este truco es válido para todos los SSOO (Linux, MacOS…), salvo que la parte de ejecutar que se hace en Windows resulta casi más sencilla desde una consola Linux/MacOS.

 

Convertir celdas de excel en formato numérico

excelEn ciertas circunstancias nos podemos encontrar con un fichero excel que tiene valores numéricos con un formato no numérico. En esta situación es difícil trabajar con estas celdas puesto que excel no las reconoce como tales.

La solución más óptima que he encontrado es utilizar las fórmulas VALOR ó ENTERO para generar una nueva columna y/o fila con los valores numéricos de las celdas que tienen un formato diferente.

Un ejemplo en el que la celda A1 tiene un formato incorrecto, podríamos escribir en la celda A2 lo siguiente:

=VALOR(A1)

ó

=ENTERO(A1)

y con esto ya tendríamos en A2  el formato numérico de A1.

Formato vertical de salida en MySQL

A veces, especialmente en tablas con mucho campos, la salida horizontal (por defecto) puede ocupar demasiado espacio y ser difícil de seguir. Esto se puede agravar más sin pretendemos pegar los resultados en un e-mail, por ejemplo.

Utilizando \G en lugar de ; para terminar la query, conseguiremos que la salida se muestre con formato vertical.

Ejemplo de Formato horizontal:

mysql> SELECT * FROM table;

MySQL_horizontal

Ejemplo de Formato vertical:

mysql> SELECT * FROM table \G

MySQL_vertical

También se puede iniciar el cliente de MySQL con la opción –vertical y que afectaría a todas las consultas.

Resetear password de root en MySQL

Esto a mí me ha venido bien en algún momento, y es que no siempre recordamos o sabemos la password de root la BBDD.

En MySQL se puede resetear así:

1. Reiniciar la base de datos con la opción –skip-grant-tables:

# /etc/init.d/mysqld restart --skip-grant-tables

2. Conectarte a la BBDD con usuario root:

# mysql -u root

3. Establecer la nueva password:

mysql> UPDATE mysql.user SET Password=PASSWORD('newpwd') WHERE User='root';
mysql> FLUSH PRIVILEGES;

4. Volver a arrancar la BBDD sin –skip-grant-tables:

# /etc/init.d/mysqld restart

Traducción de comandos de Photoshop

A veces el inglés resulta demasiado técnico en algunos comandos y herramientas que nos ofrece Photoshop (En su versión en inglés), y si no estás familiarizado, es posible que tengas dificicultades para entederlo.

El otro día buscando un término, encontré un post estupendo en el que han traducido los principales términos que se usan en Photoshop del inglés al Español:

INGLÉS ———– ESPAÑOL
======================
Normal ————————— Normal
Dissolve ———–——— Disolver
Darken ————————— Oscurecer
Multiply ——————— Multiplicar
Color Burn ————— Subexponer color
Linear Burn ———- Subexposición lineal
Lighten ———————— Aclarar
Screen ————————- Trama
Color Dodge ———- Sobreexponer color
Linear Dodge ——– Sobreexposición lineal
Overlay ———————– Superponer
Soft Light ————— Luz Suave
Hard Light ————– Luez fuerte
Vivid Light ———– Luz intensa
Linear light ——– Luz lineal
Pin Light —————– Luz focal
Difference ————– Diferencia
Exclusion —————- Exclusión
Hue ———————————- Tono
Saturation ————- Saturación
Color —————————— Color
Luminosity ————— Luminosidad

Además, han tenido el detalle de generar un Fichero PDF en el que aparecen estos y más comandos traducidos.

Vía: http://blog.almadark.com

Acceso telnet al Livebox 2 de Orange


Livebox_2

Hace unos días me entró la curiosidad de acceder al livebox 2, el router que tengo en casa para la ADSL. Al final encontré un foro donde alguien indicó el usuario/password de acceso telnet.

En este caso para acceder al livebox 2, tienes que realizar un telnet a la IP 192.168.1.1 (Esta es la que viene por defecto…) y usar las siguientes credenciales:

  • login: root
  • password: 1234

Una vez conectado al router, la verdad es que tampoco ofrece muchas posibilidades… lo más interesante es el «reboot», que quizás a alguien le venga bien si quiere reiniciar la conexión mediante un script, o resetear el router por algún motivo, ya sea manual o automáticamente.

Por lo demás, te ofrece contadores e información de la conexión mediante varios comandos, sin embargo me esperaba que este acceso al equipo ofreciera más posibilidades.

Hoax en Whatsapp

Esta tarde un amigo me ha enviado un mensaje a través de Whatsapp sugiriéndome que los servidores de la aplicación están saturados y que si no quiero que se me fastidie el servicio de mensajería, reenvíe el mensaje a mis contactos… Fantástico, ya tenemos HOAX (Spam) en Whatsapp ¬¬.

El mensaje decía algo así:

«Este mensaje es para informarles a todos nuestros usuarios, que nuestros servidores han estado recientemente muy congestionados, por lo que estamos pidiendo su ayuda para solucionar este problema. Necesitamos que nuestros usuarios activos  reenvien este mensaje a cada una de las personas de su lista de contactos a fin de confirmar nuestros usuarios activos que utilizan WhatsApp, si usted no envía este mensaje a todos sus contactos de WhatsApp, entonces su cuenta permanecerá inactiva con la consecuencia de perder todos sus contactos. El símbolo de actualización automática en su SmartPhone, aparecera con la transmisión de este mensaje. Su SmartPhone se actualizará dentro de las 24 horas siguientes, contará con un nuevo  diseño y un nuevo color para el chat. Estimados usuarios de WhatsApp, vamos a hacer una actualización para WhatsApp de 23:00 p.m. hasta las 05:00 a.m. de este día. Si usted no envía esto a todos sus contactos la actualización se cancelará y no tendrá la posibilidad de chatear con sus contactos»

Para los que no sepan lo que es un Hoax, pasaros por la wikipedia… en resumen el creador está intentando engañar a la gente para que reenvíen el mensaje con diversos fines. En cualquier caso, debe de quedar claro que si realmente Whatsapp estuviera saturado, el aviso no sería a través de un mensaje de un contacto… sería algo bastante más oficial y se transmitiría en los medios de comunicación.

Este caso me recuerda al sonado e-mail que lo reenviaban (y aún sigo recibiendo alguno de vez en cuando…) tus contactos y decía algo así como «Hotmail se cierra«.  La primera vez que lo recibí fue hace unos 7 años, y todavía estoy deseando que se haga realidad.. jaja, pero me temo que no va a haber suerte. Ójaja Hotmail cierre y sus usuarios disfruten de otros servicios de correo alternativos y probablemente mejores… como GMail :P.