Archivo de la etiqueta: web

Límite de variables enviadas por POST en PHP

Esta mañana me comentaba un amigo que tenía problemas a la hora de añadir nuevos campos en su aplicación de facturación en PHP.

Después de muchas pruebas, descubrimos que la variable $_POST de PHP contenía sólo las primeras 200 variables que se le enviaban al PHP.

Me puse a buscar y el problema estaba en que la versión de PHP que está usando su proveedor de hosting está parcheada con Suhosin, y este parche por defecto limita el número de variables enviadas por POST a 200.

La solución, poner esta directiva en el php.ini:

suhosin.post.max_vars = 2048

Por supuesto, se puede poner más, pero con eso nos era suficiente.

Más información sobre las opciones de configuración de este parche.

Cómo llegué al Proyecto Cherokee

Camiseta de CherokeeTrabajo por las mañanas, de 8:00 a 15:00, y las tardes las puedo dedicar a lo que quiera; pero estaba desperdiciando el tiempo más que nada leyendo blogs en Google Reader, aunque también me servía para aprender muchas cosas que nunca llevaba a la práctica; o pensando que tenemos muchos proyectos en mente (proyectos de negocios) que podemos hacer y que no hacemos.

Es por esto que hace unos meses le comenté a David que me gustaría involucrarme y colaborar en algún proyecto Open Source. Ya estaba harto de pensar “hay que ver lo que podría hacer y no hago nada”, pero es de estas cosas que las piensas y ya las harás.

Un día me harté de mi anterior empresa de hosting (Webhostingbuzz) y decidí buscarme otra. Contraté un servidor dedicado y como me dejaban elegir el sistema operativo, les dije que un Linux a pelo y yo me encargaría de montar el servidor web.

El caso es que ya que tenía que cambiar de servidor, pensé en cambiar también de servidor web en sí y abandonar Apache, que consume bastante memoria. No sé si fue el día anterior, pero coincidió el cambio de servidor con la publicación en Barrapunto de la noticia del lanzamiento de la versión 0.8.0 de Cherokee. Ya había leído en el pasado sobre Cherokee, el servidor web libre más rápido, programado desde cero por Álvaro López Ortega, un español que trabajaba en Irlanda para Sun Microsystems.

Tengo que reconocer que al principio todo fueron problemas:

  • Para empezar, el programa se configura usando una interfaz por web, que me pareció más un estorbo que una ayuda.
  • La filosofía de funcionamiento era totalmente distinta a la que yo estaba acostumbrado en Apache. Nada ficheros .htaccess, por ejemplo.
  • No había forma de hacer andar WordPress, y me hacía falta para hacer andar este blog sobre Cherokee.

Estuve a nada de pasarme a usar Nginx, pero después de unos correos en la lista de distribución de Cherokee, y otros cuantos correos con Álvaro, me encabezoné en apoyar el proyecto de un español. Sin duda la ayuda que me dieron en la lista, y la ayuda personal que me dio Álvaro, sirvieron de mucho para decidirme a usar el programa.

Conforme iba configurando cosas, a la vez reportaba los errores que me iba encontrando tanto en el servidor en sí como en el configurador. Una cosa llevó a la otra y un día detecté un error y me puse a intentar arreglarlo yo. Después de pelearme con el C que ya lo tenía bastante oxidado, le mandé un parche a Álvaro y me ayudó a pulir un par de cosillas más.

Después de unos días ya le había enviado unos cuantos parches, y supongo que se hartó de recibir correos míos, porque me propuso el crearme una cuenta en el repositorio de Subversion donde están los fuentes del programa. Al principio le dije que no, que no me atrevía a meter la pata enviando parches yo directamente, pero insistió y me dio una cuenta. Este es el primer parche que envié yo. Aunque no empecé muy bien, porque me cargué el fichero de log de cambios por culpa del UTF-8. :D

Del parche que estoy más orgulloso es del que permite hacer funcionar perfectamente WordPress en Cherokee. El que no sea programador a lo mejor no lo entiende, pero saber que algo así funciona gracias a ti, pues la verdad, te hace sentir muy bien. ;)

En fin, poco a poco he ido colaborando, más que nada puliendo cosillas pero sobre todo APRENDIENDO. Estoy aprendiendo un montón de Python, que tenía ganas de meterle mano desde hace mucho, y ahora poco a poco voy aprendiendo. También estoy refrescando mucho mi C, que ya casi ni me acordaba; y sobre todo en técnicas de programación: se aprende mucho viendo el código de otros, y el de Cherokee a mi me parece muy bueno.

Hace unos días recibí un correo electrónico de Álvaro diciéndome que por haber colaborado bastante, desde Octality me iban a enviar una camiseta, y es la que podéis ver en la foto de esta entrada cubriendo mi pedazo de cuerpo serrano. :D La camiseta es guapísima, y me llegó también con 5 pegatinas, una de las cuales ya ha ido directamente a la parte trasera de la pantalla del portátil. :-)

Octality es la empresa que ha fundado Álvaro al dejar Sun, y se dedica a montar infraestructuras web de alto rendimiento para sitios que tengan mucho tráfico. Evidentemente sus soluciones están basadas en Cherokee, de ahí que últimamente su desarrollo esté avanzando tanto.

Así que sin haberlo planeado he hecho lo que pretendía: meterme en la comunidad de desarrollo de un proyecto Open Source, ¡y muy contento que estoy!. La última versión de Cherokee, la 0.10.0, es la más estable hasta ahora. Y se nota.

Internauta 2.0

Condiciones que debes cumplir (EMHO) para ser lo que yo llamo un Internauta 2.0 y molar hoy en día en Internet:

  • Ser blogger.
  • Usar twitter.
  • Usar muuuuchos servicios 2.0 (del.icio.us, flickr, digg, meneame…), cuantos más mejor.
  • Tener un Mac, un iPod y todos los productos de Apple que puedas.
  • Adorar los Starbucks. Si no te gusta el café, al menos haz como que te gusta. Por cierto, pide siempre el que tenga el nombre más complicado o molón que veas en la carta. Por supuesto, intenta que la primera vez no vean que estás mirando la carta para hacer ver que controlas y que molas mogollón. Los Starbucks son tu segunda casa.
  • Ser republicano. Al menos públicamente.
  • Ser anti-PP. No importa sólo que votes a otro partido, sino que debes ser anti-PP. Al menos públicamente.
  • Ser anti-USA, pero sobre todo, sobre todo, sobre todo… métete con Bush todo lo que puedas.
  • Ser anti-taurino. Al menos públicamente.
  • Respeta todas las religiones, pero no dudes en hacer chistes y darle caña a la Iglesia Católica, que esto mola un montón y a la mayoría les hará mucha gracia.

Si las cumples, ¡enhorabuena!, estás en la onda, serás superpopular, tendrás un montón de visitas en tu blog, muchísimos comentarios, promoverán tus noticias… ¡La caña tío!. :-)

Como yo no las cumplo todas… ¿Me puedo considerar al menos un Internauta 1.5?. Si es que ya me estoy haciendo viejo… :)

Como poner tu web o blog en modo mantenimiento

Seguro que os ha surgido la necesidad de poner vuestro blog o página web en modo mantenimiento. La idea es poder tocar los ficheros del sitio sin que los usuarios puedan acceder a ninguna parte del sitio hasta que todo esté correcto.

Yo hasta hace poco símplemente ponía un index.html que decía eso de: “En mantenimiento, perdonen las molestias”, de forma que todo el que intentaba entrar en la página principal del sitio se encontraba con dicho mensaje. Eso está bien para la portada, pero ¿y el resto de páginas?, evidentemente el resto seguirá accesible si ponemos la url completa en el navegador, por ejemplo: http://misitio.com/otrapagina.html

Para solucionar este problema (en servidores que usen Apache) vamos a usar .htaccess, que es un fichero de texto que contiene una serie de directivas de Apache para configurar cómo se comportará el servidor web, permitiéndonos a los usuarios un mayor control sobre él. Buscando por Google se puede encontrar mucha información sobre .htaccess y qué podemos hacer con él. Hay incluso generadores de .htaccess.

Lo primero que vamos a hacer es crear un programa en PHP que se llame por ejemplo mantenimiento.php y cuyo contenido será el siguiente:


<?php
header("HTTP/1.1 503 Service Unavailable");
echo "En mantenimiento, perdonen las molestias";
?>

Eso lo que hace es mandar una cabecera HTTP con el código de respuesta 503 al navegador diciéndole que el servicio no está disponible actualmente, y además muestra el texto: “En mantenimiento, perdonen las molestias”.

A continuación creamos un fichero .htaccess_mant con el siguiente contenido:


Options -Indexes
<ifmodule mod_rewrite.c>
RewriteEngine On
RewriteRule !mantenimiento.php /mantenimiento.php [L]
</ifmodule>

La primera línea le dice que no muestre el contenido de los directorios que no contengan un index.html o index.php. Esto es opcional, pero yo lo dejaría como medida de seguridad.

El resto de código lo que hace es decirle al Apache que a cualquier petición que hagan los visitantes, responda con el mantenimiento.php.

Ahora lo único que quedaría por hacer sería enviar el fichero mantenimiento.php al servidor web y sustituir el fichero .htaccess que tengamos en nuestro sitio por .htaccess_mant, renombrándolo a .htaccess cuando quereamos poner el sitio en modo mantenimiento. La idea es tener dos ficheros .htaccess, uno para cuando el sitio está funcionando de forma correcta, y otro para cuando queramos ponerlo en mantenimiento.

Eso es todo, espero no haberme liado mucho con la explicación y que le sirva a alguien de ayuda.

¿Por qué sigue usando la gente Internet Explorer?

Logo de Internet ExplorerLa verdad es que este tema es curioso.

Internet Explorer es un navegador antiguo, que se ha quedado estancado, con muchos, muchísimos fallos de seguridad que pueden poner tu equipo y tus datos en riesgo, pero aún así, la gente lo sigue usando.

La respuesta más clara a la pregunta podría ser: “porque viene con Windows y la gente no se calienta la cabeza”. Pues sí, estoy de acuerdo en que mucha gente —la mayoría— lo usa porque viene con Windows. Además, esa mayoría de gente es la misma que piensa que sólo existe Windows y que Internet es el Internet Explorer… Vamos, que pueden llegar a decirte: “No me funciona Internet”, y es que en realidad no le funciona el IE…

Pero luego hay otro tipo de gente… Esa que sabe que hay algo más allá de Windows y de IE, pero que símplemente no prueban otras cosas porque les va bien lo que tienen.

Logo FirefoxEl otro día, una de esas personas, cuyo nombre no revelaré, pero que seguro que lee esto, leyó mi entrada en el blog sobre el calor que hacía en mi pueblo. En esa entrada puse una captura de la información del tiempo que me proporciona ForecastFox, una extensión para el navegador Firefox.

Bien, le dije que era una extensión del navegador que él no usaba y además le invité para que viniese a mi ordenador para mostrarle las maravillas de Firefox y sus extensiones.

Después de un rato explicándole todo, pronunció una frase que quedará resonando en mi cabeza durante mucho tiempo…

Sí, todo eso está muy bien… ¿pero y lo del tiempo?

Cinco segundos más tarde cerré la boca y reaccioné… Entonces me dijo que no había probado Firefox, porque no le hacía falta, que le iba bien con IE, que no echaba nada en falta.

Evidentemente no va a echar en falta algo de lo que no ha disfrutado, pero las cosas están ahí para probarlas, y más siendo un producto como Firefox, del cuál está más que demostrada su potencia.

Moraleja: Tú podrías usar Firefox porque es más seguro que IE, porque te ayuda a desarrollar webs, porque te da muchas facilidades para la navegación, etc, etc… Y otros símplemente lo usarían porque pueden ver el tiempo. Cada uno tiene sus razones.

Ah!, esa persona me ha confesado que ha instalado Firefox en casa para probarlo y darle una oportunidad… :)