Configurar servidor Apache para que nos muestre los errores de nuestro PHP

Un poco de sistemas y un poco de PHP mezclado en esta entrada, porque aunque sean tareas muy básicas no está demás comentarlas.

Lo primero es decir que esto NUNCA debe hacerse en un servidor de producción, JAMÁS. Es decir, esta configuración es una ayuda para el programador, por lo que lo recomendable es hacerlo en el servidor de desarrollo/local. Mostrar los errores en producción supondrá una debilidad en la seguridad de la página, así que recuerda: Sólo para desarrollo.

Apache Foundation

Una vez dicho esto, comentar también que si instaláis Apache en un servidor Linux, o si utilizáis XAMPP en Windows, por defecto vendrá con la detección de errores desconectada. En ese caso si tenéis un fallo se mostrará una página en blanco. Este es el comportamiento adecuado en producción, pero en vuestro equipo de desarrollo lo más cómodo es que os muestre el error y en qué línea se ha detectado.

Para cambiar la configuración tenéis que iros a buscar el archivo de configuración de PHP (php.ini), que en Ubuntu por defecto está en etc/php5/apache2/php.ini y en XAMPP podéis acceder a él desde el panel de control principal. Si no lo encontráis basta con que hagáis una página que imprima la función phpinfo() y ahí veréis la ruta completa al archivo (aparece como Loaded Configuration File).

Una vez abierto el archivo con un editor de texto os vais a buscar la instrucción display_errors, que estará por defecto en Off y la cambiáis por On. Vamos que quedará display_errors = On y, tras esto, guardáis los cambios en el archivo. Tras eso reiniciáis el servicio (en XAMPP desde el panel, en Ubuntu con sudo/etc/init.d/apache2 restart) y ya debería estar cantándoos los errores. En todo caso, ejecutad un script con algún fallo que sepáis dónde está (tipo dejaros fuera una coma en la primera fila o un paréntesis sin abrir) para ver que todo funciona correctamente.

Con esto habréis configurado ya vuestro servidor para que detecte los errores, lo que será una enorme ayuda a la hora de desarrollar páginas PHP.

Añadiendo filtros a GIMP 2.8 o 2.6

GIMP es el software libre de edición fotográfica más conocido y, probablemente, el más potente y el que más puede intentar acercarse a Photoshop. Cierto es que es menos productivo que el de Adobe, pero cuenta con las ventajas del software libre, lo que lo ha hecho popular a nivel corporativo, ya que es muy válido para muchos trabajos sin tener que pagar los precios de la licencia de Adobe.

El caso es que hoy vamos a hablar de la asombrosa colección de filtros y efectos libres (106 filtros y efectos) que Paul Sherman ha desarrollado para GIMP. Los podéis descargar desde GIMPHELP.org y su instalación es muy sencilla.

En GNU/Linux basta con copiarlos a /home/tucarpeta/.gimp-2.8/scripts si los quieres sólo para ti, y a /usr/share/gimp/2.0/scripts si deseas que estén disponibles para todos los usuarios.

En el caso de Windows7 las carpetas serían C:\Program Files\GIMP 2\share\gimp\2.0\scripts o C:\Users\TU-CARPETA\.gimp-2.8\scripts. Para Vista y XP la primera es válida, pero la segunda sería C:\Documents and Settings\tucarpeta\.gimp-2.8\scripts

Con esta sencilla operación dispondréis de más de un centenar de scripts. Estos, por cierto, están disponibles tanto para 2.8 como para 2.6 (el proceso es el mismo, cambiando el número de versión en las carpetas). Eso sí, no intentéis meter los scripts del 2.8 en el GIMP 2.6 porque provocarán fallos.

Para usarlos basta con que vayáis al menú Filtros en GIMP y escojáis allí la opción Script FU para lanzar la consola y cargar los scripts.

Sincronizar Ubuntu con tus cuentas de Facebook, Twitter o Google

Una opción que puede interesar a muchos usuarios recién llegados a Ubuntu es sincronizar el sistema operativo con sus cuentas de Google, Facebook o Twitter. Esto les permitirá por ejemplo utilizar Empathy para chatear con sus contactos o recibir notificaciones de novedades sin tener que estar en el navegador conectados.

La sincronización es simple. Tenéis que ir las preferencias del sistema y allí seleccionar Cuentas en Línea
rede

Tras esto seleccionáis Añadir Nueva Cuenta, elegís que la queráis de la lista y os logueáis marcando No Cerrar Sesión en Ubuntu. Con esto la cuenta está añadida y luego podréis configurar con qué servicios queréis sincronizarla, en el recuadro de la derecha.
Captura de pantalla de 2013-05-30 18:31:38

Y con esto ya tenéis Ubuntu sincronizado con lo que queráis.

Actualizar Ubuntu 12.10 a 13.04

Cuestión sencillita ¿quieres actualizar tu Ubuntu 12.10 al recién salido 13.04 (Raring Ringtail)? Lo normal es que el propio Ubuntu te lo pregunte, pero puede ser que no ocurra así.

Bueno, pues lo primero es tener el equipo con una conexión a internet estable. Si es así basta con este comando:

$ sudo do-release-upgrade -d
logo ubuntu
Ubuntu 13.04

Tras esto comprobará la existencia de paquetes nuevos que instalar. Los verificará todos, te dará una estimación del tiempo necesario y te pedirá confirmación. Acepta (escribe una s y pulsa enter), espera a que termine y reinicia.

Y con esto, listo calixto.

Instalar HexChat en Ubuntu/Mint

Llevo diez días sin escribir nada nuevo… en casa dejé dos artículos de música a medio hacer, pero estoy liadillo con varios proyectos (y muy viciado a un juego del que pronto os hablaré en este blog) y he tenido esto abandonado, aunque por suerte el flujo de visitas sigue constante.

¿Echáis de menos el #IRC? ¿Aquellas primeras troleadas internetianas usando este sistema de chat? ¿Simular ser una tía impresionante para putear a un colega? ¿Discutir a las cinco de la mañana si los Blazers de Adelman habrían sido campeones de haber contado con Petrovic y Sabonis? ¿Comentar la pelea de Shaq vs Barkley? ¿Discutir si es más facha Ted Nugent o Varg Vikerness? En fin, pues con todo todavía hay gente que lo usa (la mayoría salidorros en busca de cibersexo, tampoco nos engañemos). De hecho hoy tuve que usarlo (después de 10 años) por lo que busqué información y acabé llegando a este software.

En fin, si eres usuario de Linux apuesto a que usabas XChat como cliente de #IRC, y si ahora mismo quieres instalarlo estarás viendo que lleva sin actualizaciones desde 2010… Tranquilo, HexChat (que descubrí a través de este artículo brasileño en twitter) es la solución que necesitas. Un cliente IRC libre, desarrollado en Python, con ciertas funcionalidades propias, una interfaz muy limpia y personalizable, permite el uso de scripts tanto de Perl como de Python para la administración, está traducido a varios idiomas y existen binarios tanto para Windows como para Unix/Linux.

El proceso de instalación desde Ubuntu o Mint es fácil, basta tres comandos:

#primero añadimos el repositorio del fabricante:

sudo add-apt-repository ppa:gwendal-lebihan-dev/hexchat-stable -y

#sigue la clásica actualización

sudo apt-get update

#e instalamos

sudo apt-get install hexchat -y

#en el ejemplo de la web brasileña lo hacen todo concatenando los tres comandos:

sudo add-apt-repository ppa:gwendal-lebihan-dev/hexchat-stable -y && sudo apt-get update && sudo apt-get install hexchat -y

En fin, con esto ya tienes tu cliente de IRC nuevecito y actualizado en tu Linux. Podéis visitar la web de los creadores por si tenéis dudas.

Virus de la doble tilde

¿Estás escribiendo y al acentuar te salen dos tildes tal que escribes así: cami´´on? Ok, esto es una clara señal de alarma, no sólo porque sea un coñazo para escribir con una correcta ortografía (que lo es) sino porque además es la confirmación de que estás infectado por el troyano ZBot «ZeuS». De hecho el que aparezcan dos tildes realmente es un error de programación interno de dicho troyano, un conflicto que se genera al usar la configuración de idioma en español. El objetivo primordial de dicho troyano es capturar datos y contraseñas, pero por un fallo hace que el caracter ‘ se duplique (los creadores lo pensaron sólo para troyanizar equipos con configuración de idioma inglés).

Yo os voy a dar mi solución, y si no os funciona os adjunto otra de Foro Spyware.

Con mi método la idea es que instaléis HijackThis, reiniciéis el equipo en modo seguro, ejecutéis HijackThis y pulséis “Do a system scan only”. Ahí en el log buscáis un entrada similar a esta: HKCU\Software\Microsoft\Internet Explorer\Main,Start Page = http://start.funmoods.com/?f=1&a=grupo La dirección puede ser distinta dependiendo de la versión del virus. En general os mostrará las páginas de inicio de Explorer, asi que la idea es que os fijéis en las direcciones y marquéis las que no cuadren, las que creáis que no deberían estar (por ejemplo, sería normal que apareciera HKCU\Software\Microsoft\Internet Explorer\Main,Start Page = http://google.es ). Luego buscad también dos con este formato: URLSearchHook: (no name) – {fed66dc5-1b74-4a04-8f5c-15c5ace2b9a5} – (no file) y BHO: (no name) – {5C255C8A-E604-49b4-9D64-90988571CECB} – (no file). Lo básico es el (no name) y el (no file). Las marcáis y pulsáis “Fix Checked”. Tras esto reiniciáis y pasáis el CCleaner para limpiar el registro y las cookies.

Si os parece muy lioso andar mirando y comprobando las URL, en Foro Spyware os ofrecen una solución usando TDDSKiller que también funciona muy bien. Así que si la véis más asequible podéis probarla, que debería funcionar.

Instalando entorno LAMP en Linux Mint – Ubuntu – Debian

Este artículo viene a razón de que este fin de semana me va a tocar hacerlo, ya que espero poder formatear al fin este equipo cuyo rendimiento (uso Ubuntu 12.10 y Win Vista SP2) cada día va a peor.

Como el principal uso que le doy a este equipo es para desarrollo web (amén de ver alguna vez alguna película y almacenar música) pues tener un servidor en local para realizar pruebas se torna indispensable.

Aunque podríamos descargar y compilar a mano los componentes, a lo old school, vamos a aprovecharnos de un programilla disponible para la familia Debian (no olvidemos que Mint deriva de Ubuntu y Ubuntu de Debian) que nos permite instalar paquetes de software relacionados de forma coordinada como tareas. La herramienta se llama Tasksel y lo primero será instalarla:

sudo apt-get install tasksel

Y luego ejecutarla con permisos de administrador:

sudo tasksel

Una vez lanzado tendrás un menú de estos old school de moverte con el teclado, donde seleccionas la opción LAMP server y, tras eso, después de meter la contraseña para el usuario root de MySQL (la puedes dejar en blanco, pero mejor pónsela, si instalas algún cms te tocará) seguirá con el proceso de instalación.

Bueno, ahora nos queda instalar una herramienta muy útil que es phpMyAdmin:

sudo apt-get install phpmyadmin

Una vez descargado tenemos que crear un enlace simbólico con el servidor web y otro con nuestra carpeta home, tal que así:

sudo ln -s /usr/share/phpmyadmin /var/www/
sudo ln -s /var/www /home/usuario/www

Ahora ya tenemos todo instalado. Si entras en http://localhost/phpmyadmin debería salirte la ventana de acceso donde deberías poner el nombre de usuario y la contraseña que diste durante la instalación.

Así ya tienes montado tu entorno LAMP. A ver si mañana me lanzo con un tutorial sobre instalar XDebug.

Instalar Symfony 2.1 en Linux

Bueno, seguimos con el tema de Symfony tras el interludio papal. El caso es que comenzamos este tutorial donde dejamos el anterior ¿anterior? Sí, en cierto modo la entrada sobre instalar Composer sirve de introducción a esto.

En fin, la cosa es tener instalado Composer de forma global en tu equipo y GIT (aunque si te dedicas a programar seguramente ya lo tengas instalado), lo que ya se explicó en la entrada anterior. El caso es que con Composer instalado lo primero es ejecutar desde línea de comandos $ composer create-project symfony/framework-standard-edition directoriodelproyecto 2.1.x-dev obviamente cambiando directoriodelproyecto por el directorio que corresponda. Sin Composer ni GIT esto no furrulará, repito.

Una vez instalado prueba a situarte en el directorio donde has instalado y ejecutar $ php app/check.php, ahí verás la lista de requisitos que debe cumplir tu equipo para ejecutar Symphony. Luego si ejecutas desde ahí $ php app/console verás en la consola una lista con todos los comandos disponibles para las aplicaciones de Symfony 2.

Finalmente, puedes probar en tu navegador el funcionamiento de Symfony. Visita http://localhost/directoriodelproyecto/web/config.php (cambia directoriodelproyecto por lo que corresponda). Puede que te salga un mensaje de error, suele ser por cuestiones de permisos, nada que no se arregle trasteando con la configuración de seguridad.

Instalar Composer en Linux

¿Qué es Composer y por qué debería instalarlo? En fin, es la primera pregunta, desde luego. Composer es un gestor de dependencias para PHP, de uso común en los proyectos realizados con Symfony (sí, me he puesto a trastear con Symfony, aunque ando un poco pez). En todo caso, lo que Composer hace es comprobar la lista de dependencias de cada proyecto y decidir qué librerías hay que instalar, qué versiones de las mismas se instalan y en qué orden. Muy útil sobre todo cuando actualizas tu versión de Symfony, ya que te evita problemas de incompatibilidad con librerías antiguas.

En fin, vamos a meternos ya en harina. ¿Cómo instalo Composer en mi Linux? Bueno, no es muy difícil (no como en el caso de Windows donde es un puto coñazo, pero eso ya lo explicaré otro día). Tienes dos opciones, además: instalar Composer en un proyecto concreto o instalar Composer globalmente.

Para la instalación en un proyecto concreto, desde la consola de comandos sitúate dentro del directorio raíz de ese proyecto y ejecuta $ curl -s https://getcomposer.org/installer | php y, tras ello, si todo ha ido bien, deberías tener en el directorio del proyecto un archivo llamado composer.phar. Para comprobar si está bien instalado ejecuta $ php composer.phar

Las instrucciones anteriores nos sirven para instalar Composer en un proyecto concreto, pero generalmente lo que nos interesará es instalarlo globalmente para usarlo en varios proyectos.

La idea sería la misma, pero en lugar de descargar Composer en el directorio raíz de un proyecto lo deberíais hacer en un directorio ejecutable del sistema, como por ejemplo /usr/local/bin/composer. Después deberíais poder ejecutar el comando composer desde cualquier directorio del sistema y funcionaría. De esta forma además de tenerlo disponible para todos los proyectos también se facilita la actualización de Composer, dado que con la instalación para un proyecto concreto tendrías que ir actualizándolo en cada uno de ellos, mientras que con esta basta con actualizar sólo el global, con el comando $ sudo composer self-update.

En fin, con esto queda explicado cómo instalar Composer, del cual podéis leer aquí la documentación oficial. Próximamente (espero) más sobre Symfony.

Debian vs Mint vs Ubuntu: ¿qué Linux usar?

Bueno, lo justo sería comenzar diciendo que Linux no se reduce a estas tres distribuciones hay más «familias Linux». Pero como usuario estoy más familiarizado con las distribuciones de la familia Debian (puede que algún día me vaya al lado Red Hat y me saque un Fedora vs Red Hat vs openSuse vs Oracle Linux) voy a centrarme en esta rama y en sus tres distribuciones más populares.

  • Debian: Lo justo es comenzar con la madre, con Debian. A fin de cuentas los otros dos derivan de este. El desarrollo de Debian se fundamenta en dos pilares: estabilidad y seguridad. Cada actualización y nuevo paquete conlleva un trabajo muy exhaustivo de testeo, un profundo escrutinio de su código en busca de fallos. Esto nos garantiza una enorme estabilidad, pero ralentiza varios meses la llegada de actualizaciones y paquetes, lo que puede ser muy coñazo para el usuario doméstico, que tal vez se encuentre con problemas varios de drivers. He conocido a ingenieros que han acabado desquiciados por problemas de drivers con Debian en sus portátiles. Debian es un gran sistema operativo, pero no es precisamente fácil de instalar y configurar, y es más recomendable para usuarios con una buena base de conocimientos y para su uso en cuestiones profesionales y laborales.

    Debian, la madre
    Debian
  • Ubuntu: Un sistema radicalmente opuesto a Debian en muchos puntos, a pesar de derivar de él, por tener una filosofía muy distinta. Canonical pretende ser la Apple del software libre, por lo que Shuttleworth decidió que Ubuntu tendría que ser el Linux más bonito, más fácil de instalar y más fácil de utilizar. Y ciertamente Ubuntu con el escritorio Unity es muy fácil de usar. Lo instalas prácticamente a base de pulsar «aceptar» en varios pantallas e incluso puedes instalarlo desde Windows como si fuera un programa. Tienes un centro de software del que descargar todo tipo de programas y juegos recomendados por Canonical, algunos de pago y otros de gratis, sin contar con el caramelito de que Valve haya sacado Steam para Ubuntu. Obviamente todo esto trae consigo algunos problemas, como la inclusión a traición de publicidad en tus búsquedas, la inclusión de drivers privativos en el sistema operativo o el exagerado consumo de recursos que el escritorio Unity le va a provocar a tu equipo. En resumen, un Linux ideal para gente con pocos conocimientos de informática, que valore la comodidad por encima de todo, o para gente que nunca haya usado Linux.

    Logotipo de Ubuntu
    Ubuntu
  • Linux Mint: El más joven de los tres y el que más rápido ha escalado en niveles de popularidad. Existen dos versiones de Mint, la basada en Ubuntu (el Linux Mint normal) y la basada en Debian. En este caso nos centraremos en la versión basada en Ubuntu porque es con la que he trabajado. Mint nos da el justo medio entre la sencillez de Ubuntu y la estabilidad de Debian. Es muy fácil de instalar, tanto como Ubuntu o más, y es más estable que Ubuntu (claro que esto es lógico, ya que al ser una distribución basada en Ubuntu aprovechan para parchear todos los errores de la distribución en la que se basan). Además, su escritorio basado en GNOME es mucho más ligero que Unity, no tiene tanto driver privativo de por medio y es compatible con los binarios de Ubuntu. A día de hoy, para mi, es el ganador de la comparativa, al menos para el desarrollador y el usuario con un conocimiento medio.
    Logotipo de Linux Mint
    Linux Mint

     

En fin, con esto termino la comparativa entre los tres. Tres sistemas opeativos libres, totalmente funcionales. He de puntualizar también que me he basado en las últimas versiones a día de hoy y trabajando con sus escritorios por defecto, ya que a cualquiera de ellas le puedes incorporar otros como XCFE, LXDE, KDE… en fin, eso ya es cuestión de gustos.