Desarrollo y diseño web en GNU/Linux

Desarrollar webs sobre GNU/Linux es según algunos una tarea casi imposible, pero la verdad es que la mayoría de esos comentarios viene de gente que muchas veces ni domina las herramientas que utiliza, sobre todo mucha gente que usa WAMP, que no saben ni cómo activar el módulo de PHP para poder trabajar con ficheros tar.bz2. En este post hablaré sobre las herramientas que necesitaréis para el desarrollo web en GNU/Linux.


LAMP

Si no sabéis qué es, se trata de Linux+Apache+MySQL+PHP. Podéis descargar la versión XAMPP para Linux si no queréis comeros el tarro teniendo que configurar un LAMP, pero que menos que hacerlo uno mismo y montar nuestros propios servidores, que al final tampoco es tan complicado, aparte que así se aprende sobre Apache y otros servicios y su manejo, algo que para mi es imprescindible para cualquier desarrollador web, sobre todo para que no se la den con queso a la hora de contratar un hosting. Hay que tener cuidado con el umask por defecto de algunas distribuciones, ya que por ejemplo Fedora usa el 077, lo que hace que cualquier usuario ajeno al propietario no pueda tan siquiera acceder a los contenidos de un usuario que no sea el suyo. Para arreglar esto solo hay que añadir permisos de ejecución a la carpeta personal con el siguiente comando.
  • chmod a+x /home/tucarpetadeusuario

PhpMyAdmin

¿Quién no conoce la interfaz web para MySQL (espero que pronto retirado por MariaDB)? No es quizá lo más estético, pero hace bien su trabajo y simplifica mucho el manejo de las bases de datos. Yo lo uso sobre todo para hacer copias de seguridad de las bases de datos que se podrían hacer también a golpe de comando, pero no es muy práctico.

VSFTPD (servidor de FTP)

Para instalar plugins en los distintos CMS en GNU/Linux necesitas un servidor de FTP. Montar y configurar el servidor es algo que expliqué aquí, solo tienes que crear un usuario cuyo home sea la carpeta raíz del proyecto web. En caso de mover la carpeta la tendrás que reconfigurar en el fichero /etc/passwd en la línea que corresponde la usuario.

Recuerda ponerle nombres fáciles de recordar a los usuarios y ponle a todos la misma contraseña para recordarla, ya que al tratarse de un servidor casero no correrás riesgos a menos que dejes el servicio de FTP siempre iniciado.

Krita


¿Qué puedo decir de Krita?, Krita es el mejor programa de diseño gráfico Open Source, viene muy bien como sustituto de Photoshop en el diseño de páginas web. Tiene una interfaz mucho más profesional que su competidor, Gimp, aparte de estar mucho más enfocado al diseño. Si quieres puedes apoyar Krita con Inkscape para crear cosas en base a gráficos vectoriales y también puedes usar Gimp, que para algunos retoques rápidos si resulta más productivo que Krita. Yo uso los tres, pero hoy en día tomo como base Krita. No creo que Krita tan siquiera alcance nunca a Photoshop, pero está resultando una alternativa muy buena para gente ajena al diseño gráfico profesional.

Aparte, ya comenté mi opinión de Krita frente a Gimp.

NetBeans


¿Sorprendido?, NetBeans ha crecido con el tiempo y ahora es un gran IDE, consume recursos, si, pero hace muy bien su trabajo. Con NetBeans no solo puedes trabajar proyectos Java, sino también PHP.

Ante el empuje de los CMS creo que los WYSIWYG han dejado de ser herramientas realmente útiles. Sinceramente, para piratear Dreamweaver mejor te apañas un buen editor de código gratuito como NetBeans, aparte os podéis descargar el bundle solo para programar PHP para no tener un montón de cosas que os sobrarán para la programación web.



Lo bueno es que ahora NetBeans es compatible con OpenJDK, con lo que podemos descargar la versión oficial de este IDE e instalarlo en GNU/Linux. Sin embargo, si queréis el NetBeans completo tendréis que instalar antes el paquete de desarollo de OpenJDK, que varía según la distribución. En Ubuntu es openjdk-7-jdk, en Fedora es java-1.7.0-openjdk-devel y en OpenSuse es java-1_7_0-openjdk-devel. Si tenéis algún problema con la instalación de NetBeans podéis dejar un comentario a ver si os puedo ayudar. Eso si, os advierto que es imprescindible tener OpenJDK 7, sino no funcionará.

Sin embargo, si queréis un WYSIWYG, no hay en GNU/Linux ninguna alternativa que sirva de verdad, con lo que si tienes una versión antigua de Dreamweaver (eso si, original, eh) os recomiendo instalarlo bajo Wine. He visto algunas versiones de Dreamweaver correr muy bien bajo Wine y en caso extremo siempre podéis usar PlayOnLinux, a ver si encontráis algún instalador para vuestra versión de Dreamweaver.

Bueno, con esto ya tenéis todas las herramientas para poder programar webs bajo LAMP, quizá al principio sea un poco más laborioso que en WAMP y en MAMP, pero una vez montado todo es rutinario y sencillo, igual que en Windows y en OS X, aparte que te da la oportunidad de aprender a dominar los servidores, algo que para mi está muy infravalorado dentro de los desarrolladores web.

Ante cualquier duda o error que veáis, no dudéis en publicar un comentario.

[ACTUALIZACIÓN]

Aptana Studio

Aptana Studio es un plugin para Eclipse, aunque también tiene una versión standalone, o sea, un Eclipse modificado solo para ejecutar Aptana Studio y no os interesa meteros en el mundo de Eclipse, que es un IDE muy poderoso, pero un tanto complejo de usar.

Podéis descargar Aptana Studio desde aquí, sin duda una buen alternativa si NetBeans no os convence, aparte que Aptana es más completo.


[ACTUALIZACIÓN 2]

Pure-FTP

Bueno, debido a los problemas que he tenido (yo y otros muchos) con VSFTPD en OpenSuse 12.3, he encontrado otro servidor de FTP menos potente, pero que quizá se ajuste algo más a los propósitos del desarrollo web, se llama Pure-FTP (pure-ftpd como nombre de servicio al menos en OpenSuse), que lo comento en esta publicación.

Comentarios

  1. Muy interesante articulo. E intentado usar Krita, pero simplemente los programas de diseño no se me dan, intentaré con algunos video tutoriales, a ver si puedo paquetar un sitio sencillo.

    Para programar en html/php Netbeans no me termina de convencer, había estado utilizando sublime text, pero este no es libre, aun asi, tiene una versión de prueba gratis y es un excelente editor. Ahorita utilizo Bluefirsh, este si es libre y funcionaría como una alternativa a Dreamweaver, aunque no es WYSIWYG, sí tiene muchos botones para agregar elementos fácilmente.

    ResponderEliminar
    Respuestas
    1. Krita es un poco más difícil que Gimp, pero cuando le coges el gusto verás que lo puedes dejar como quieras, su interfaz es muy personalizable y como no, sirve para diseñar, a Gimp tienes que apoyarlo de otra aplicación, como Inkscape.

      Sobre NetBeans, a mi me encanta porque puedo trabajar HTML5, Twig (aunque ahí apenas he empezado) y Smarty sin problemas, vamos, no solo reconoce marcado, estilo y lenguajes, sino también puedo trabajar con plantillas. Aparte, NetBeans soporta las propiedades CSS más recientes.

      Yo es que lo trabajo todo con CMS y claro, ahí un WYSIWYG es poco más que inútil, con Dreamweaver estaría tocando código todo el rato y para eso hay alternativas en mi opinión mejores que la aplicación de Adobe para tocar código a pelo y que encima no cuestan nada.

      Yo antes usaba Bluefish, pero cuando la cantidad de proyectos empezó a desbordarme tuve que buscarme una alternativa gratuita (ya que no me gusta piratear) para poder seguir trabajando de forma más organizada.

      Estuve entre NetBeans y Aptana y me quedé con el primero porque su interfaz es mucho más limpia y está mucho más actualizado que Aptana, que lleva parado ya un montón de tiempo.

      Eliminar
  2. Hola :)

    Me llamo Ana María y soy administradora de un sitio web. Tengo que decir que me gusto mucho su pagina y le felicito por hacer un buen trabajo.

    Le cuento que me encuentro construyendo alianzas con webs amigas para así mejorar nuestros posicionamientos en Google. Por ello, me encantaría contar con tu sitio en mis sitios amigos, consiguiendo que mejoren nuestras ubicaciones en el buscador.

    Mis sitios amigos son http://www.aeurus.cl/sitios-amigos/
    Tenemos un Page Rank de 4, que es un buen nivel para Google.

    Me gustaría un enlace en cualquier página de su sitio, si no dispone de una sección especial.

    Espero que podamos realizar esta alianza.

    Saludos.
    Ana Maria

    ResponderEliminar
    Respuestas
    1. Hola, sin ánimo de ofender, no estoy interesado en estas alianzas por ahora, ya que no dispongo de demasiado tiempo.

      Eliminar
  3. Hola Eduardo!

    Le he echado un vistazo a tu blog y quedé fascinado (soy un usuario que dejó Windows por Kubuntu en su PC de casa), en especial por este post en el que das herramientas para el diseño web. Te cuento mi experiencia: tuve la mala fortuna de aprender lo poco que se de HTML/CSS y un ápice de PHP mediante Dreamweaver (el CS6, para ser exacto). Un día, me pregunté ¿cómo es que primero estoy aprendiendo a manejar el Dw si no tengo conocimientos más o menos sólidos de HTML/CSS? ¿No debería primero aprender HTML/CSS? y es hasta el día de hoy que voy descubriendo eso de los WYSIWYG y ahora quiero aprender bien las bases del HTML/CSS. Ya voy revisando algo de documentación en Mozilla Web Developer y algunos PDF's que me encuentro por ahí.

    Saludos y felicitaciones por este blog desde Ciudad de México

    ResponderEliminar
    Respuestas
    1. Bueno, mi blog tiene un buen puñado de meteduras de pata y no las rectifico porque tampoco es un blog puramente informativo, aun así, me alegra que te haya gustado.

      Yo dentro del mundo de la programación soy un rebelde. Defiendo las tecnologías multiplataforma (en especial Java) sobre las tecnologías "nativas", ya que creo que estas son el futuro ante la cada vez mayor cantidad de plataformas. Mientras la mayoría de los programadores prefieren seguir programando en "nativo" y tener que hacer más de media decena de versiones de una aplicación, yo ya programando una vez puedo ejecutar en cualquier sitio, aunque habrá que ver si Oracle porta su máquina virtual a dispositivos móviles, cosa que dudo conociendo a esta empresa y su actitud déspota.

      También apoyo a HTML5 como lenguaje de interfaz de aplicaciones.

      Curiosamente ayer tuve una discusión sobre los WYSIWYG, ya que por desgracia mucha gente se cree que con la programación gráfica manejar el código no tiene sentido, pero si no entiendes el código y se surge un problema, ¿cómo lo solventas?

      Gracias a la explosión de los CMS, en el mundo web los programadores hemos ganado al pulso a los diseñadores, ya que con ellos los WYSIWYG son prácticamente inútiles, aparte que considero este tipo de aplicaciones herramientas para diseñadores que se quieren hacer pasar por programadores y, sinceramente, los pintores digitales mejor que se queden con su Photoshop y que dejen a los programadores hacer nuestro trabajo.

      Han sido muchos los intentos de jubilar el código por gráficos, pero el paso del tiempo siempre nos ha terminado dando la razón porque trabajar sobre código es mucho mejor, más preciso y más flexible, aparte, WYSIWYG como Dreamweaver tienden a meter mucho código basura y si ese código basura es HTML, eso puede repercutir directamente en el posicionamiento de tu web.

      Yo en Java por ejemplo si uso WYSIWYG, pero ahí este solo se encarga de pintar la ventana y eliminar la parte más fea y repetitiva de la programación, luego lo que haga internamente la aplicación lo tengo que hacer a mano.

      Y aunque quizá se desvíe un poco, también te digo que Microsoft ha dejado la puerta abierta a instalar Windows Server 2008 sin interfaz gráfica, todo para poder competir mejor con Linux a través de servidores que requieran menos hardware.

      Por mucho que digan algunos, al código le queda todavía mucha vida por delante.

      Eliminar
    2. "Si no entiendes el código y surge un problema ¿cómo lo solventas?" Es algo muy difícil y me pasó frecuentemente al usar Dreamweaver (sobre todo si había PHP de por medio). Por eso lo mejor es aprender primero a codificar a la vieja usanza y luego, ver que te puede hacer más fácil la vida.

      Por cierto, ya vi tu comment en MuyLinux donde dices que tu netbook va muy bien con Debian 7. Yo estoy en el limbo tratando de decidir si mi netbook Toshiba con un AMD K125 a 1.6 GHz, 4 GB de ram y 160 GB de disco duro, sigue con Kubuntu o me cambio a otra distro (OpenSUSE es la que lleva la mano levantada) o con entorno más ligero, aunque tenga que dejar a KDE (al cual mi esposa y yo ya nos acostumbramos y bueno... de ver a XFCE y LXDE de inicio, mi mujer les va a rehuir cuando use la netbook, pues KDE es de cierto modo "parecido" al Windows y no tiene gran curva de aprendizaje para el uso básico). Ya pasado este lío, para empezar a codificar en HTML/CSS ¿recomiendas NetBeans o Bluefish? Por lo que entiendo, con este último fue con el que iniciaste.

      Saludos una vez más!!!

      Eliminar
    3. Tu no tienes un netbook, tu tienes una laptop por lo que veo.

      Los netbook son los portátiles de 10/11 pulgadas que llevan CPU Atom y un Giga de RAM, aunque veo que esa CPU AMD no es muy allá. Mi netbook, aparte de limitado, es de lo más malo que hay, ya que fue comprado con el fin de experimentar, o sea, es un juguete, no es ningún ordenador de producción. Si ves en esa misma noticia, verás que en mis ordenadores potentes uso Fedora y Ubuntu.

      Por lo que se, LXDE también tiene una disposición similar a la de Windows aunque es mucho más limitado y XFCE depende de la distribución, ya que en OpenSuse si se parece un poco a Windows, pero con un skin a lo Gnome 2, en Xubuntu tiene un aspecto similar a Gnome 2, aunque sustituyendo la barra inferior por un dock.

      Sobre NetBeans y Bluefish, depende de dónde quiere llegar. La verdad es que NetBeans está mejorando a pasos agigantados y se está convirtiendo en un IDE muy potente. Bluefish es un editor de código bastante bueno, aunque con el paso del tiempo he visto que ha ido a peor.

      Yo manejo decenas de miles de ficheros y necesito tener orden, así que a mi NetBeans me va mejor ya que me permite gestionar proyectos, mientras que con Bluefish me tengo que contentar con navegar entre todas las carpetas, lo que puede terminar siendo caótico.

      Si empiezas por cosas básicas, quizá Bluefish te sirvan para empezar a amoldar el cerebro y luego puedes dar el sato a NetBeans que, si vas a programar webs y cómo he puesto en el artículo, con el módulo para PHP te debería bastar (ahora se llama PHP/HTML5, creo), que no requiere JDK ya que no vas a pseudocompilar Java.

      Eliminar

Publicar un comentario

Entradas populares