Preparando tu server Apache2 para una alta demanda. ( Ubuntu Server 12.04 )

Existen muchas maneras de preparar tu servidor, unas mejores que otras. Simplemente haremos la más sencilla. Todo servidor Apache viene configurado por defecto con la versión prefork, y para una cantidad máxima de 150 usuarios concurrentes. Para un servicio con muchos usuarios esto no puede ser posible. OJO: Todo cambio para tener mayor cantidad de usuarios en … Leer más

Como cambiar la hora en un servidor Linux

Tengo varios servidores andando sin ningún problema ( La Mayoría en EC2). Actualmente me di cuenta que no los tenía a la hora correcta así que decidí arreglarlo. La solución más sencilla es unas un paquete llamado tzdata. Si quieren corroborar su hora en el sistema a través de línea de comandos simplemente usen «date». … Leer más

Crear un Widget en Yii + Botón Volver

Crear un widget en Yii es muy sencillo, y nos sirve para rehusar código de una manera muy fácil. En este caso no veremos ningún ejemplo complejo, ni si quiera pasaremos parámetros. Simplemente crearemos un botón volver que podremos insertar en cualquier parte de nuestra página. Para este ejemplo se crea la carpeta ext/data dentro de protected. Aquí … Leer más

Extendiendo YII – Usando PHPExcel como librería externa.

Existen muchas maneras en las que se puede extender un FrameWork y utlizar librerías externas. En este caso usaremos la técnica utilizada en el libro de «Yii 1.1 Application Development Cookbook»

OJO: No es que haga publicidad al libro, simplemente a mi me ha servido bastante como referencia.

PHPExcel es una librería que permite la escritura y lectura de formatos como excel, excel 2007, Office Open XML, CSV, OpenOffice Calc, Gnumeric, PDF, HTML, entre otros. Si te interesa ver todas las caracteristicas revisa la página de features de PHPExcel. ( No es la idea de este tutorial explicar más sobre esta librería.)

Que es lo que necesitamos:

  1. Una aplicación en YII
  2. La librería PHPExcel.
Que debemos hacer:
  1. Primero creamos la carpeta vendors bajo la carpeta protected (protected/vendors).  Asumiendo que tu carpeta de archivos restringida es llamada protected.
  2. Copiamos la carpeta PHPExcel y el archivo PHPExcel.php a la carpeta vendors. ( Estos están bajo la carpeta Classes en el archivo descargado )
  3. En el controlador que queremos utilizar la librería importamos la librería. En nuestro caso :

    Yii::import('application.vendors.*');
  4. Requerimos la clase de PHPExcel :
    require_once(‘PHPExcel.php’);
  5. Y ahora simplemente utilizamos la librería como explicita el proveedor :).

El siguiente es un ejemplo de método para probar que la librería esté funcionando:

 public function actionExcel() {
        Yii::import('application.vendors.*');
        require_once('PHPExcel.php');

        $objPHPExcel = new PHPExcel();

        $objPHPExcel->setActiveSheetIndex(0)
        ->setCellValue('A1', 'Hello')
        ->setCellValue('B2', 'world!')
        ->setCellValue('C1', 'Hello')
        ->setCellValue('D2', 'world!');

        $objPHPExcel->setActiveSheetIndex(0)
        ->setCellValue('A4', 'Miscellaneous glyphs')
        ->setCellValue('A5', 'eaeuaeioueiuyaouc');

        $objPHPExcel->getActiveSheet()->setTitle('Simple');

        $objPHPExcel->setActiveSheetIndex(0);

        ob_end_clean();
        ob_start();

        header('Content-Type: application/vnd.ms-excel');
        header('Content-Disposition: attachment;filename="test.xls"');
        header('Cache-Control: max-age=0');
        $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
        $objWriter->save('php://output');
}

Este es el ejemplo que viene con la librería. No se asombre si ven el mismo en más de un lugar. Esto puedo apostar que le salvará la vida a más de una persona. Para descargar el ejemplo haz click a continuación.

Descargar actionExcel

¡Mantengamos el contacto!

Me encantaría que te mantuvieras al día con el contenido que estoy generando. Recuerda que no es solo el blog, son las redes sociales, libros, y distintos pódcast 😎.

Hago todo lo posible para no hacer Spam,

Solucionando problema Ubuntu 12.04 PHP5 y APACHE2

En general todas las versiones de Ubuntu al instalar php5 y apache2 al mismo tiempo asumían todas las dependencias necesarias para que estos funcionaran. En este caso en Ubuntu 12.04 no es así, al menos en la versión de Server. Para solucionarlo simplemente instalamos el paquete conector: sudo apt-get install php5 libapache2-mod-php5 Con esto debería … Leer más