Entre las cosas que creo que preocupan a quien tiene un servidor y que da servicios como el web, es el tiempo que tardan en cargar las aplicaciones, que en la mayoría ahora son de tipo dinámicas, en este caso, páginas hechas en el tan usado lenguaje PHP, que para algunos no les gusta nada, pero que le haremos.
No me meteré en detalles si PHP es un lenguaje interpretado o no, en algunos casos quienes tenemos una pequeña máquina casera como servidor, me imagino que más de uno ha de haber experimentado algún síntoma de cuello de botella, esto dado que cada página que se solicite se tiene que compilar, por así decirlo, en PHP y despúes ejecutarse.
Entonces, si hay diferentes peticiones a diferentes páginas hechas en PHP, la máquina tendrá que tomar tiempo de más, para poder compilarlas y así poder ejecutarlas, lo que haría que el servidor tuviera picos de procesamiento y las demás aplicaciones que se tengan que ejecutar tienen que encolarse para ser compiladas y ejecutadas.
Navegando por internet, encontré algunos métodos o mejor dicho aplicaciones, que permiten, acelerar el tiempo de carga de las aplicaciones hechas en PHP, una manera, espero que fácil de explicarlo, es que en cache se mantiene una copia de la aplicación hecha en PHP pero en un estado compilado, por lo que la máquina no tendría que recompilar la aplicación en PHP en cada petición, si no que solo la ejecuta procesando los datos y enviándolos al cliente. También puede que estos métodos tengan su desventaja, pero por el momento se ve que son una buena forma de ayudar a nuestro servidor web.
Si se busca en internet se pueden encontrar muchos métodos posibles, checando algunos, pude ver que algunas de esas aplicaciones, por ejemplo, ya son proyectos abandonados, otros en cambio, no son muy viables de aplicar a todo un servidor por completo, si no que solo se pueden aplicar a las aplicaciones que ya están pensadas para usar esos métodos de cache, un ejemplo de ese método es memcache, que solo he visto que la aplicación que ya esta pensada para usarlo es el mediawiki.
Por lo que encontré un método o mejor dicho aplicación, llamada eAccelerator bajo licencia GPL, el cual solo es un agregado para PHP, con el cual, si usamos GNU/Linux Debian, con un simple apt-get, tendríamos esa aplicación funcionando. En el sitio oficial de eAccelerator, podemos ver un pequeño extracto, que explica que es eAccelerator.
eAccelerator is a free open-source PHP accelerator, optimizer, and dynamic content cache. It increases the performance of PHP scripts by caching them in their compiled state, so that the overhead of compiling is almost completely eliminated. It also optimizes scripts to speed up their execution. eAccelerator typically reduces server load and increases the speed of your PHP code by 1-10 times.
Ahora lo siguiente es buscar si ya existe un paquete hecho con esta aplicación, como era por lógica es muy posible, ya que muchos buscan de alguna forma acelerar sus aplicaciones en PHP, cuando no se tiene acceso a hardware más robusto. No había encontrado nada sobre un paquete debianizado, tampoco lo había encontrado en los repositorios oficiales de GNU/Linux Debian.
Ya que por lo que pude leer, antes si se podía encontrar eAccelerator en los repositorios oficiales de GNU/Linux Debian, pero al ser la licencia de eAccelerator incompatible con la licencia de PHP, fue por lo que se saco el paquete de los repositorios oficiales, leyendo un poco más, encontré que trataron de contactar con el autor original de la aplicación de la cual eAccelerator tomó como base.
eAccelerator was born in December 2004 as a fork of the Turck MMCache project. Turck MMCache was created by Dmitry Stogov and much of the eAccelerator code is still based on his work.
Paso un tiempo, despúes de eso contactaron al autor y le explicaron lo que sucedía, comentándole que si podía cambiar la licencia de su aplicación, para que fuera compatible con la licencia de PHP, así se podría reingresar a eAccelerator a los repositorios oficiales de GNU/Linux Debian, pero al parecer, no acepto el cambiar la licencia y la dejó tal cual estaba como licencia GPL.
Al leer eso yo ya estaba pensando muy seriamente en tratar de hacer el paquete desde cero para GNU/Linux Debian, pero en un googlazo, encontré un paquete ya debianizado de eAccelerator, solo había un detalle que este paquete estaba compilado solamente para php5.
Paquete: php5-eaccelerator
Maintainer: Andrew McMillan
Sitio web: http://mcmillan.net.nz/
Repositorio: http://debian.mcmillan.net.nz/
Al principio pensé que no había problema, así que en mi máquina de pruebas, cambie todos los paquetes hacia php5, despúes de eso instale este paquete de eAccelerator, y al probarlo se notaba una diferencia muy significativa en las aplicaciones que tengo, claro, en mi máquina de prueba, por lo que al intentar ponerlo en un servidor en producción, ahí fue donde estuvo el problema, ya que en ese servidor solo se puede usar por el momento php4, por lo que traté de ponerme en contacto con el maintainer de ese paquete, para preguntarle si no tenía algún paquete compilado para php4.
Escribí un correo electrónico, el cual no sabía si me respondería, ya que sucede que a veces las personas están muy ocupadas y nosotros no lo sabemos, así que lo deje por un momento esperando la respuesta, al día siguiente cual fue mi sorpresa, que Andrew McMillan se tomo la molestia de contestar muy amablemente mi correo electrónico, en el cual me comentaba que al ser php4 retirado de lenny la próxima release de GNU/Linux Debian, por eso había compilado eAccelerator bajo php5, y que como el ya no tenia acceso a alguna máquina con php4, no podría compilar un paquete para esa versión de PHP, lo que me comento que con unos cambios y recompilando sería suficiente para que funcionará con php4.
Por lo que apenas repasando y cambiandolé algunas cositas al paquete de Andrew McMillan, he recompilado el paquete de eAccelerator, para que pueda funcionar con php4, por lo que se agradecerán, comentarios, sugerencias, zapes, claro todo por correo electrónico 😀 , para que el paquete funcione bien, ya que como le metí mano, espero no haber cambiado algo de más.
Si usan php4 y si quieren probar este paquete, solo visiten: http://deb.tuxsoul.com, ahí encontrarán más información de como usar el repositorio que he colocado 🙂 .