Montar LAMP (Linux + Apache + MySQL + PHP) en Ubuntu

Os dejo con una guía impecable que me he encontrado en DotPress.

Instalando Apache:

sudo apt-get install apache2

Nos pedirá nuestra contraseña para autenticar. Por cierto, las instrucciones están para Ubuntu y sistemas basados en Debian. En otras distribuciones, el método es distinto. Luego vamos al explorador en http://localhost/

Instalando PHP:

La ventaja principal de los repositorios es que las aplicaciones ya están pre-compiladas, con lo cual nos ahorramos mucho tiempo y evitamos tener que conseguir todas las dependencias. Eso me pone a pensar que para desarrollar en Linux e instalar nuevas herramientas, es necesario contar con una conexión a Internet. Bien, ahora que tenemos Apache ya instalado, procedemos con PHP.

# Instalamos PHP 5
sudo apt-get install php5

# Instalamos el conector de PHP para Apache 2
sudo apt-get install libapache2-mod-php5

# Reiniciamos el Servidor
sudo /etc/init.d/apache2 restart

Con esto ya tenemos vinculado Apache con PHP. Nuestra carpeta DocumentRoot es /var/www/. Para probar creamos un archivo de prueba e incluimos la función <?php phpinfo(); ?>. Ahora, si el servidor nos mostrase el cuadro de dialogo Guardar Archivo, procedemos a forzar el reinicio de Apache.

sudo a2enmod php5
sudo /etc/init.d/apache2 force-reload sudo /etc/init.d/apache2 restart

 

# Instalamos módulos adicionales

# PEAR
sudo apt-get install php-pear

# GD
sudo apt-get install php5-gd

# XSL
sudo apt-get install php5-xsl

# CURL

sudo apt-get install curl libcurl3 libcurl3-dev php5-curl

# PostFix: soporte para la función mail()
sudo apt-get install postfix

# Reiniciamos el Servidor
sudo /etc/init.d/apache2 restart

Instalando MySQL:

La instalación de MySQL también viene a ser muy sencilla. La variante con respecto a la instalación en Windows es que en Linux, debemos instalar el soporte dentro de Apache y dentro de PHP.

# Para Apache (requerido para instalar en PHP)
sudo apt-get install libapache2-mod-auth-mysql

# Podemos definir la version 4 o 5 de PHP
sudo apt-get install php<version-number>-mysql
sudo apt-get install phpmyadmin

Ahora, editamos el archivo de configuración de PHP ubicado en /etc/php<version>/apache2/php.ini y agregamos:

extension=mysql.so

Cuando instalemos nuevas extensiones, podemos agregarlas al PHP.ini sin necesidad de recompilar.

Ahora, volvemos a reiniciar el Servidor de Apache. Y terminamos por instalar el Servidor de MySQL.

# Instalamos el servidor de MySQL
sudo apt-get install mysql-server

Para que Apache no fastidie con mensajes extraños cada vez que se reinicia, editamos el archivo /etc/apache2/httpd.conf y añadimos la siguiente línea al final:

ServerName 127.0.0.1

Gracias a piponazo por el comentario.

Y con esto ya tenemos instalado Apache, PHP y MySQL en Linux Ubuntu. Podemos reiniciar nuestro computador y cada vez que iniciemos, los servicios de Apache y MySQL se iniciarán automáticamente.

A 2 personas les gusta esta entrada

Curiosidad programas KDE vs Gnome

Lo sabemos todo el mundo, pero la diferencia es tan grande que, lejos de parecerme mal, me ha parecido simplemente curioso.

Simplemente hice una instalación limpia de Ubuntu (sí, otra vez) y quería escuchar unos mp3 mientras se instalaban el resto de programas. En la primera imagen se ve lo que pesa una descarga e instalación de Amarok (con sus librerías de KDE a descargar) y en la segunda imagen se ve lo mismo para Exaile.

Para escuchar un poco de música no apetecía esperar tanto.

Sé el primero en valorar positivamente

Instalar Sun Java Wireless Toolkit en Linux

Aquí va una pequeña guía de instalación para instalar el Sun Wireless Toolkit, útil sobre todo por el módulo KToolbar que nos permite visualizar la ejecución de nuestros programas escritos en J2ME.

  • sudo apt-get install sun-java6-jdk sun-java6-jre
  • Descargar Sun Java Wireless Toolkit para Linux desde aquí.
  • chmod +x sun_java_wireless_toolkit-2.5.2-linux.bin
  • ./sun_java_wireless_toolkit-2.5.2-linux.bin
  • Aceptar licencia (yes)
  • Pulsar 0 para especificar /usr/bin como directorio contenedor del intérprete de Java.
  • Especificar directorio de instalación. Normalmente pulso INTRO para instalarlo en el directorio por defecto.
  • Comprobar actualizaciones. A gusto del consumidor (yes/no).
  • Pulsar 0 para instalar y listo.

Ahora ya podemos ejecutar KToolbar escribiendo /home/usuario/WTK2.5.2/bin/ktoolbar o creando un acceso directo a dicho programa.

A 1 persona le gusta esta entrada

EclipseME: programa aplicaciones J2ME bajo Eclipse

Estoy haciendo el PFC con J2ME y al estudiar un par de libros para ir cogiendo conocimientos me he encontrado con que ambos (y mucha más bibliografía) te ponen a programar J2ME a pelo y luego te enseñan a cargar el código en el módulo KToolbar del Sun Wireless Toolkit.

Sin embargo, investigando por ahí he visto una forma más sencilla de crearse un proyecto de este tipo, y es que gracias a un plugin para Eclipse, podemos disfrutar de las ventajas de este IDE: autocompletado, resaltado de sintaxis, sencillez de programación y mejor disponibilidad espacial. El milagro en sí se llama EclipseME y, la verdad sea dicha también, ha sido un poco fastidioso echarlo a andar, aunque no por el conector en sí, sino por fallos puntuales de configuración en mi equipo. Comenzamos.

En la página de EclipseME te indican los prerequisitos a cumplir para la instalación del plugin. Por tanto, debemos tener instalado lo siguiente en nuestro sistema:

  • Sun Java2 1.4.x. Recordar que Java2 1.5 y 1.6 no están soportados por J2ME, que es bastante más ligero. No es necesario instalar el JDK a mano ya que Eclipse lo trae.
  • Eclipse. Para EclipseME version 1.6.2 y posteriores, se requiere Eclipse 3.2 o superior. Se ha eliminado el soporte para Eclipse 3.1.
  • Un toolkit wireless soportado. Yo he escogido el Sun Java Wireless Toolkit para la configuración CLDC. Tenéis una pequeña guía de instalación para Linux en este post.

Vamos a ver los pasos de instalación:

  • En Eclipse, nos vamos a Help -> Software Updates -> Find and install.
  • Elegir «Search for new features to install» y pulsar en «Next».
  • Pulsar en «New Remote Site».
  • Escribir un nombre para el sitio a recuperar, por ejemplo «EclipseME Update Site» y como URL escribir «http://www.eclipseme.org/updates/». Pulsar en el botón «OK». Pulsar ahora en «Finish».
  • Seleccionar de la lista de la nueva pantalla el ítem «EclipseME Update Site». Pulsar «Next».
  • Seleccionar «EclipseME» y pulsar «Next».
  • Aceptar los términos de la licencia y pulsar en «Next».
  • Elegir un directorio de instalación para el plugin y pulsar en «Finish».
  • Si aparece una pantalla advirtiendo que el paquete no está firmado, nos pedirá confirmación de instalación, para lo que hacemos clic en «Install».
  • Si nos pide reiniciar el entorno de trabajo, hacemos clic en «Yes».
  • El plugin queda instalado y podemos observar su configuración en Window => Preferences => J2ME.

Vamos ahora con la configuración, paso obligatorio si queremos trabajar con el plugin:

  • Expandimos Window => Preferences => J2ME.
  • Nos vamos a «Device Management». Pulsamos en el botón «Import».
  • En la nueva ventana, pulsamos en «Browse» y seleccionamos el directorio donde tenemos instalado el WTK (Wireless Toolkit de Sun). En mi caso, está en /home/neonigma/WTK2.5.2. Pulsamos en «Aceptar» una vez entramos en el directorio. Importante pulsar ahora en «Refresh».
  • Nos debe encontrar una serie de definiciones de dispositivos. Pulsamos en «Finish» con todo marcado.
  • Una vez añadidos todos, escogemos el que preferimos usar. En mi caso, yo utilizo el DefaultGrayPhone. Lo marcamos y pulsamos en «OK».
  • Ahora vamos a tocar otra configuración MUY IMPORTANTE. Nos vamos a Window => Preferences => Java => Debug.
  • Hay que asegurarse que los checkbutton Suspend execution on uncaught exceptions y Suspend execution on compilation errors NO están marcados. En la zona Hot Code Replace se pueden marcar todos. El relativo al breakpoint puede marcarse también. En la zona de abajo Debugger Timeout tiene que ponerse a 15000 ms MÍNIMO, y el Launch Timeout a 20000 mínimo.

Ahora vamos a crear un nuevo proyecto:

  • Nos vamos a File => New Project y seleccionamos J2ME Midlet Suite del interior del nodo «J2ME».
  • Le damos un nombre al proyecto. Pulsamos «Next».
  • Escogemos un grupo, en mi caso J2ME Wireless Toolkit 2.5.2 y un Device, en mi caso DefaultGrayPhone. Especificamos un nombre para el descriptor de aplicación JAD. Pulsamos en «Next» y luego en «Finish».
  • Lo siguiente es añadir una clase Java al proyecto y codificar cualquier ejemplo. En este enlace os dejo un ejemplo bien básico. Esta parte se facilita mucho gracias al plugin, ya que pulsando en el botón derecho en nuestro proyecto y siguiendo la ruta New -> Other… -> J2ME -> J2ME Midlet te pide el nombre de una nueva clase Java que albergará nuestro midlet y que, por defecto, ya introduce los métodos básicos para la construcción de dicho midlet: startApp(), pauseApp() y destroyApp().

    Una vez codificada la clase, vamos con la configuración de ejecución:

    • Nos vamos al menú Run => Run… Creamos una nueva configuración dentro de Wireless Toolkit Emulator. En la zona de la derecha, en «Project», estará indicado el proyecto actual. En la región Executable marcamos Midlet y pulsamos en el botón Search. Escogemos nuestra clase principal. Ya podemos pulsar en «Apply» y «Run» para que Eclipse compile nuestro proyecto y lance KToolBar para ver el resultado de la ejecución.

    Es interesante saber que el .jar de la aplicación lo guarda el plugin en workspace/nombre_proyecto/.eclipse.tmp/emulation/.

    Os dejo unas cuantas capturas de pantalla para que se comprueben las facilidades que nos ofrece este plugin.

    pantallazo.png

    pantallazo-1.png

    pantallazo-2.png

    Vamos a rizar el rizo un poco más. Ahora quiero meter la documentacion del API de J2ME en Eclipse, para que además de autocompletado tenga documentación de las funciones que estoy usando. Los pasos:

    • Vamos a Window => Preferences y expandimos el ítem J2ME. Seleccionamos el subítem Device management. Ahora seleccionamos el dispositivo que queremos editar (DefaultColorPhone en mi caso y hacemos doble clic sobre él.
    • Se nos abre una ventana de propiedades. Nos vamos a la pestaña Libraries. De la lista de archivos buscamos midpapi21.jar.
    • Hacemos clic en el campo JavaDoc del elemento midpapi21.jar y aparece un botón para examinar el disco duro.
    • Se escoge un path a la doc del API (primer ítem JavaDoc URL). En mi caso el path que tengo puesto es file:/home/neonigma/WTK2.5.2/docs/api/midp/
    • Reiniciar Eclipse para que los cambios se vean reflejados

    Os dejo una imagen para que veáis la utilidad del asunto, es realmente interesante disponer de la documentación de J2ME en caliente.

    En el caso de que al ir a la sección Device Management nos aparezca un error y no los dispositivos, debemos ejecutar el siguiente comando:

    sudo update-alternatives --config java

    y elegir la máquina virtual java-6-sun en lugar de la java-gcj. Si el error persiste, ir a Window => Preferences => J2ME y en el cuadro WTK Root escribir /home/usuario/WTK2.5.2/bin/ (o la ruta correspondiente a WTK2.5.2/bin).

    Nada más, espero que le sea útil a alguien.

    A 6 personas les gusta esta entrada

    Abriendo documentos .docx con OpenOffice.org en Ubuntu

    Hoy quería abrir un documento creado con Word 2007 para extraer unas imágenes sin tener que reiniciar Ubuntu. Buscando por Google me encuentro con este hilo en el que comentan que simplemente se debe instalar el .deb de OpenOffice.org OpenXML Translator, que proporciona soporte para abrir y guardar documentos en el formato OpenXML de Microsoft (.docx) en el OpenOffice.org.

    En este enlace tenéis disponible las versiones 32 y 64 bits de este paquete para Feisty y Gutsy, y si queréis ir algo más directos si usáis Ubuntu Gutsy 32 bits, el enlace directo este.

    Sé el primero en valorar positivamente

    Ya se puede ejecutar Linux en modo nativo en Wii

    Poco a poco la consola más popular del momento es desglosada por los hackers de la «scene» debido a un fallo en el juego Zelda: Twilight Princess, ya se ha conseguido cargar linux en la Wii de forma nativa, y las aplicaciones que están saliendo para la sobremesa de Nintendo van en aumento. ¿Permitirá esto Nintendo o cortará el grifo?

    Podéis leer la noticia de ElOtroLado.net aquí.

    Via meneame.net

    Sé el primero en valorar positivamente

    Distribuciones y velocidad de respuesta en las actualizaciones de seguridad

    Hace unos días en Barrapunto se hicieron eco de la noticia que hizo público un problema de seguridad que sufría el kernel Linux.

    Distrowatch ha publicado unos días después un resumen con el tiempo de respuesta que han empleado las distribuciones más populares en solucionar ese problema. El resultado: Debian, cero horas, seguida de Fedora con ocho. La popular Ubuntu, veintisiete horas. Cierra el cuadro CentOS, que ha necesitado treinta y siete horas.

    Felicitaciones al equipo de seguridad de Debian.

    Fuente: http://barrapunto.com

    Sé el primero en valorar positivamente

    Controla Linux desde tu móvil con Linux Bluetooth Remote Control

    Via los RSS de tuxmobil.org me entero de la existencia de Linux Bluetooth Remote Control (LBRC), un fantástico programa que permite que un dispositivo con bluetooth y Java 2 ME activado puedan controlar un ordenador con Linux instalado. Consiste en una parte cliente en el dispositivo móvil y una parte servidora en el ordenador cliente.

    En cuanto termine los exámenes y comience mi PFC (tengo que utilizar J2ME), me pondré manos a la obra y a ver si pronto os puedo ofrecer más novedades sobre esta curiosa herramienta.

    Antes de que se me olvide, podéis visitar la página oficial del proyecto aquí.

    A 1 persona le gusta esta entrada

    eMeSeNe: el cliente MSN definitivo para Linux

    Os remito al fantástico artículo escrito por piponazo en su blog para recomendaros este magnífico cliente MSN, que en su nueva versión, a pesar de no disponer de ciertas características como soporte para Webcam y envío de archivos (ya se pueden recibir), opino sinceramente que hoy por hoy es el cliente que mejor equilibra completitud y ligereza a la hora de utilizarlo.

    Podéis leer el artículo completo aquí.

    Sé el primero en valorar positivamente

    Script de conexión a redes Wifi con WPA, a LAN mediante cable e IP, a Eduroam y a la UCO (sin Network Manager)

    La verdad que no me decidía a compartir este script por su dudosa utilidad para los demás. Me he decidido a ello una vez piponazo me hubo animado a compartirlo. Pero como ya me había pasado varias veces que el querido Network Manager, cuando conectaba a una red, me devolvía una y otra vez el cuadro de conexión para indicar la contraseña, pues decidí hacerme un script de conexión para acceder a las redes por las que suelo deambular, simplemente escribiendo ./conexion y eligiendo una opción.

    Especialmente útiles me parecen el caso de conexión a una wifi con WPA (Network Manager en muchas ocasiones y en mi propia red, no conseguía conectarse) y el caso de conexión a redes Eduroam, que van bastante bien y equiparables a la velocidad de la red de la Universidad.

    Sin más, paso a describiros las particularidades del invento, comentando dónde están las líneas de las DNS y demás que hay que cambiar.

    El caso de conexión a una LAN por cable, por ejemplo, lo utilizo en la Universidad cuando se cae la Wifi. Retiro un cable de algún equipo de un aula (mirando antes su IP en una pegatina adosada a la torre) y a navegar. Lógicamente este trozo de código te pide la IP. Si conectáis algún equipo a un cable, ésta es la opción a utilizar. Lo que se debería cambair entonces con respecto a mi código sería la línea de netmask 255.255.255.0, cambiándola por la máscara de red de la red a la que vayáis a conectar, y las DNS de la misma red, en la línea que dice nameserver 150.214.110.3. Como algo excepcional, si la puerta de enlace de esa red, no termina en «1», deberéis modificar la línea gateway $num1″.»$num2″.»$num3″.1, cambiando el «1» del final.

    1)
    	echo "Dame IP: "
    	read IP
    	
    	# para el interfaces
    	echo auto lo >> $interfaz
    	echo -e iface lo inet loopback"n" >> $interfaz
    
    	echo iface eth0 inet static >> $interfaz
    	echo address $IP >> $interfaz
    	echo netmask 255.255.255.0 >> $interfaz
    	num1=$(echo $IP | cut -d . -f1);
    	num2=$(echo $IP | cut -d . -f2);
    	num3=$(echo $IP | cut -d . -f3);
    	echo -e gateway $num1"."$num2"."$num3".1""n" >> $interfaz
    
    	echo iface ath0 inet dhcp >> $interfaz
    	echo -e wireless-essid uconet"n" >> $interfaz
    	
    	# para el resolv.conf, PON AQUÃ? TU DNS
    	echo search uco.es >> $dns
    	echo -e nameserver 150.214.110.3"n" >> $dns
    
    	sudo mv interfaces /etc/network/interfaces
    	sudo mv resolv.conf /etc/resolv.conf
    		
    	sudo ifdown eth0
    	sudo ifdown ath0
    	sudo /etc/init.d/networking restart
    
    	sudo ifup eth0
    ;;

    En el caso de conexión a la wifi de una LAN casera con algoritmo WPA o WPA2, se modifica la línea ssid=»ENIGMA» (tened cuidado con las barras para que reconozca las comillas) por el nombre de vuestra red Wifi. Además, debeis obtener la contraseña encriptada utilizada para conectar a vuestra red, escribiendo:
    wpa_passphrase nombre_red contraseña

    Os devuelve una serie de numerajos que irían en la línea de psk=23d5113aa1a1bafe614f827b5a2f867464125e13438a9b (obviamente lo he alterado un poco :P). El resto de cosas a cambiar son la línea wireless_essid ENIGMA (a sustituir por el nombre de vuestra red) y la linea que dice pre-up wpa_supplicant -B -qq -Dmadwifi -iath0 -c/etc/wpa_supplicant.conf, en la que deberéis cambiar el driver que indica la opción -D (en mi caso, el driver de mi portátil Acer es madwifi). Por último, la DNS que me proprciona mi router la indico en la línea nameserver 192.168.2.1, vosotros deberéis indicar la vuestra.

    2)
    	# para el interfaces
    	echo auto lo >> $interfaz
    	echo -e iface lo inet loopback"n" >> $interfaz
    
    	echo -e "network={" >> $supplicant
    	echo -e "ssid="ENIGMA"" >> $supplicant
    	echo -e "key_mgmt=WPA-PSK" >> $supplicant
    	echo -e "psk=23d5113aa1a1bdfe19519b8c02545bdafe614f827b5a2f867464125e13438a9b" >> $supplicant
    	echo -e "}" >> $supplicant
    	
    	sudo rm /etc/wpa_supplicant.conf
    	sudo mv wpa_supplicant.conf /etc/wpa_supplicant.conf
    	
    	echo auto ath0 >> $interfaz
    	echo iface ath0 inet dhcp >> $interfaz
    	echo wireless_essid ENIGMA >> $interfaz
    	echo pre-up wpa_supplicant -B -qq -Dmadwifi -iath0 -c/etc/wpa_supplicant.conf >> $interfaz
    	echo post-down killall -q wpa_supplicant >> $interfaz
    
    	# para el resolv.conf
    	echo -e nameserver 192.168.2.1"n" >> $dns
    
    	sudo mv interfaces /etc/network/interfaces
    	sudo mv resolv.conf /etc/resolv.conf
    		
    	sudo ifdown eth0
    	sudo ifdown ath0
    	
    	sudo /etc/init.d/networking restart
    ;;

    El caso de conexión a la Wifi de la Universidad es muy simple. Simplemente debéis cambiar del código del caso 3) el wireless-essid y las DNS en nameserver.

    3)
    	# para el interfaces
    	echo auto lo >> $interfaz
    	echo -e iface lo inet loopback"n" >> $interfaz
    
    	echo iface ath0 inet dhcp >> $interfaz
    	echo -e wireless-essid uconet"n" >> $interfaz
    	
    	# para el resolv.conf
    	echo search uco.es >> $dns
    	echo -e nameserver 150.214.110.3"n" >> $dns
    
    	sudo mv interfaces /etc/network/interfaces
    	sudo mv resolv.conf /etc/resolv.conf
    		
    	sudo ifdown eth0
    	sudo ifdown ath0
    	sudo /etc/init.d/networking restart
    
    	sudo ifup ath0
    ;;

    El caso de conexión a la red Eduroam (que converge muchas universidades y entidades) es algo más complejo pero hay poco que cambiar. Sólo debéis modificar el campo identity="micorreo@uco.es", modificándolo por el correo de vuestra Universidad adscrita a EduRoam, el password="pass-en-claro" en el que ponéis, tal cual, la contraseña de vuestra cuenta de correo y, por último, las DNS de la Universidad en la que estáis modificando el campo nameserver.

    4)
    	echo auto lo >> $interfaz
    	echo -e iface lo inet loopback"n" >> $interfaz
    
    	echo -e "network={" >> $supplicant
    	echo -e "ssid="eduroam"" >> $supplicant
    	echo -e "key_mgmt=WPA-EAP" >> $supplicant
    	echo -e "proto=WPA" >> $supplicant
    	echo -e "eap=TTLS" >> $supplicant
    	echo -e "anonymous_identity="anonymous@uco.es"" >> $supplicant
    	echo -e "identity="micorreo@uco.es"" >> $supplicant
    	echo -e "password="pass-en-claro"" >> $supplicant
    	echo -e "priority=2" >> $supplicant
    	echo -e "phase2="auth=PAP"" >> $supplicant
    	echo -e "}" >> $supplicant
    	
    	sudo rm /etc/wpa_supplicant.conf
    	sudo mv wpa_supplicant.conf /etc/wpa_supplicant.conf
    
    	echo -e auto ath0"n" >> $interfaz
    	echo iface ath0 inet dhcp >> $interfaz
    	echo wireless_essid eduroam >> $interfaz
    	echo pre-up wpa_supplicant -B -qq -Dmadwifi -iath0 -c/etc/wpa_supplicant.conf >> $interfaz
    	echo post-down killall -q wpa_supplicant >> $interfaz
    
    	# para el resolv.conf
    	echo -e nameserver 150.214.110.3"n" >> $dns
    
    	sudo mv interfaces /etc/network/interfaces
    	sudo mv resolv.conf /etc/resolv.conf
    		
    	sudo ifdown eth0
    	sudo ifdown ath0
    	
    	sudo /etc/init.d/networking restart
    ;;

    Eso es todo, aquí os dejo el script de conexión completo. Espero que os sirva a alguno. No olvidéis darle permisos de ejecución con chmod +x conexion.

    ADVERTENCIA: A veces, se pelea con Network Manager. Yo incluso he eliminado Network Manager y me conecto con mi script. Cuando estoy cerca de una nueva red, simplemente copio y pego un caso y modifico los parámetros de la nueva red y ya tengo otra opción más. Actualmente voy por 6 opciones.

    P.D: El nombre del post es tan largo y raro para que los motores de búsqueda hagan de las suyas 😛 😉

    Neonigma

    Sé el primero en valorar positivamente