Asier Marqués

Hablando sobre tecnologías web y otras cosas que me interesan

Archivo de la categoría 'UNIX / Linux'...

Archivado bajo Desarrollo, Desarrollo Web, Sistemas, UNIX / Linux

To UUID or not to UUID ? de MySQL Performance Blog

CRUD with PHP Doctrine de ProDevTips

PHP Rest Server de Lorna Jane

imified.com, servicio para crear bots para interactuar con tu aplicación web a través de servicios de mensajería instantánea (messenger, gTalk..)

Cortafuegos dinámicos con iptables, documentación de Gentoo linux

php-fpm: PHP FastCGI Process Manager, parche para php que nos permite gestionar procesos fastcgi de una forma más óptima (en teoría) que spawncgi (gracias Txarly!)

Repositorio para yum con la versión de php 5.2.5 (a día de hoy)

Comentarios (0) Posted by Asier Marqués on Miércoles, Septiembre 10th, 2008

Archivado bajo Desarrollo, Microsoft, Sistemas, Trucos, UNIX / Linux

Windows Vista SP1, al igual que Windows 2003 R2 y Windows 2008 Server, dispone de una característica poco conocida pero que es muy conveniente conocer, sobre todo para desarrolladores y administradores de UNIX.

Se trata de SUA (Subsystem for UNIX Applications), un subsistema basado en Interix que permite correr nativamente aplicaciones para UNIX/Linux en los sistemas operativos windows que lo implementen.

Para activarlo, basta con ir a agregar programas y características, del panel de control y activarlo allí.

activar sua

Comentarios (2) Posted by Asier Marqués on Sábado, Septiembre 6th, 2008

Archivado bajo Desarrollo Web, Innovación, PHP, Sistemas, UNIX / Linux

A veces tenemos que generar sintetizar texto a voz en nuestras aplicaciones web para usuarios con problemas de visión, mejorar la experiencia del usuario en general o realizar cualquier otra tarea.

En Linux/UNIX tenemos una serie de herramientas que nos pueden ayudar a realizar esta tarea. En este tutorial de Tony Bhimani podemos ver como usar el sintetizador de voz Festival con un encoder MP3 para generar archivos dinámicamente desde texto, con una aplicación web php.

Necesitamos tener instalado Festival y Lame MP3 Encoder para que todo esto funcione. Tony ha dejado un ejempo de cómo sería un frontend básico pero funcional para conseguirlo.

Comentarios (0) Posted by Asier Marqués on Lunes, Agosto 25th, 2008

Archivado bajo Desarrollo Web, How-To, PHP, Servidores Web, Sistemas, UNIX / Linux

NginxNewsNginx es un servidor web de alto rendimiento y proxy escrito en c por Igor Sysoev.

Ha sido diseñado para escenarios muy concretos en los que hay mucha carga de peticiones simultáneas (se han llegado a reportar 50.000 peticiones de éste tipo) y funciona extremadamente bien como proxy de balanceo de carga y de correo.

En post anteriores he comentado cómo instalarlo, ahora comentaré como servir php en fastcgi con él. Usaré la librería spawn-cgi del servidor web lighttpd para levantar el servidor fastcgi que se comunicará con nginx.

  1. Instalar php
    apt-get install php5-cgi
  2. Instalar los paquetes siguientesnecesarios para nginx
    apt-get install zlib1g-dev libssl-dev libpcrecpp0 libpcre3-dev
  3. Bajar lighttpd, descomprimirlo, configurarlo pero no instalarlo.
    tar -xvzf lighttpd-veriónquesea.tar.gz
    cd lighttpd-descomprimido
    ./configure
    make
  4. Copiar la librería spawn-fcgi de lighttpd al directorio de binarios del sistema
    cp src/spawn-fcgi /usr/bin/spawn-fcgi
  5. Bajar nginx, descomprimirlo, configurarlo e instalarlo..
    tar -xvzf nginx-veriónquesea.tar.gz
    cd nginx-descomprimido
    ./configure
    make
    make install
  6. Arrancar el cgi de php con spawn-fcgi en el puerto 9000, por ejemplo (en ocasiones es necesario especificar el grupo, además del usuario con el que se arranca spawn-fcgi, de lo contrario, puede dar el error “no input file specified”
    /usr/bin/spawn-fcgi -a 127.0.0.1 -p 9000
    -u www-data -g www-data -f /usr/bin/php5-cgi
  7. Crear el archivo fastcgi-params con los siguiente

    fastcgi_param GATEWAY_INTERFACE CGI/1.1;
    fastcgi_param SERVER_SOFTWARE nginx;
    fastcgi_param QUERY_STRING $query_string;
    fastcgi_param REQUEST_METHOD $request_method;
    fastcgi_param CONTENT_TYPE $content_type;
    fastcgi_param CONTENT_LENGTH $content_length;
    fastcgi_param SCRIPT_NAME $fastcgi_script_name;
    fastcgi_param REQUEST_URI $request_uri;
    fastcgi_param DOCUMENT_URI $document_uri;
    fastcgi_param DOCUMENT_ROOT $document_root;
    fastcgi_param SERVER_PROTOCOL $server_protocol;
    fastcgi_param REMOTE_ADDR $remote_addr;
    fastcgi_param REMOTE_PORT $remote_port;
    fastcgi_param SERVER_ADDR $server_addr;
    fastcgi_param SERVER_PORT $server_port;
    fastcgi_param SERVER_NAME $server_name;
    # si hemos configurado php con el parámetro --enable-force-cgi-redirect, debemos añadir:
    #fastcgi_param REDIRECT_STATUS 200;
  8. Configuramos nginx con lo siguiente

    location ~ \.php$ {
    fastcgi_pass 127.0.0.1:9000;
    fastcgi_index index.php;
    fastcgi_param SCRIPT_FILENAME /directorio_al_html$fastcgi_script_name;
    include /usr/local/nginx/conf/fastcgi_params;
    }
  9. Arrancamos nginx
    /usr/local/nginx/sbin/nginx
Comentarios (0) Posted by Asier Marqués on Martes, Enero 29th, 2008

Archivado bajo How-To, Servidores Web, Sistemas, UNIX / Linux

En el post anterior comentaba una forma de instalar nginx sobre debian mediante la utilidad apt, por la cual se obtenía una instalación final inestable, tal y cómo comentaba Alberto.

En éste post gracias a éste enlace que me ha enviado Álvaro Ortiz, he realizado una instalación compilando el paquete a mano.

  • Descargar el paquete (nginx-0.5.35.tar.gz)
  • Descomprimirlo (tar -xvzf nginx-0.5.35.tar.gz)
  • Añadir los siguientes repositorios para apt, en /etc/apt/sources-list
  • deb http://ftp.us.debian.org/debian/ etch main
    non-free contrib
    deb-src http://ftp.us.debian.org/debian/ etch main
    non-free contrib
  • Instalar los compiladores apt-get install build-essential
  • Instalar las dependencias
    apt-get install zlib1g-dev
    apt-get install libssl-dev
    apt-get install libpcrecpp0
    apt-get install libpcre3-dev
  • Lanzar script de configuración especificando el directorio para el ejecutable binario y el uso del módulo ssl (podemos hacer un ./configure –help para ver más parámetros como por ejemplo, los que nos permiten indicar dónde guardamos los logs o los archivos de configuración)
    ./configure --sbin-path=/usr/local/sbin
    --with-http_ssl_module
  • Hacemos un make
  • y después un make install
  • Finalmente arrancamos nginx con /usr/local/sbin/nginx
Comentarios (0) Posted by Asier Marqués on Martes, Enero 22nd, 2008

Archivado bajo How-To, Servidores Web, Sistemas, UNIX / Linux

Al implementar un servidor web nginx 0.5.x sobre Debian nos podemos encontrar con que al intentar instalarlo mediante apt-get, éste nos instala una versión 0.4x que es la que él considera estable.

Debemos decirle a Apt que nos busque preferentemente el paquete en los repositorios de testing. Para ello debemos crear (en el caso de que no exista) o modificar el archivo /etc/apt/preferences añadiendo éstas líneas:

Package: nginx
Pin: release a=testing
Pin-Priority: 1000

Si no tenemos los repositorios de testing deberemos añadirlos

deb http://ftp.debian.org/debian/ testing main contrib
deb-src http://ftp.debian.org/debian/ testing main contrib

Por último hacemos un apt-get update antes de hacer un apt-get install nginx

Comentarios (2) Posted by Asier Marqués on Martes, Enero 22nd, 2008

Archivado bajo Sistemas, Trucos, UNIX / Linux

Cuando un sistema Linux se quede congelado podemos reiniciarlo activando el modo SysRq (con ALT+Imprimir Pantalla) y tecleando después RSEIUB.

Ésta combinación de teclas ejecuta las siguientes ordenes:

  • R devuelve el control al teclado.
  • S sincroniza.
  • E manda a los procesos la señal term.
  • I manda a los procesos la señal kill.
  • U desmonta los sistemas de ficheros.
  • B reinicia el sistema.
Comentarios (3) Posted by Asier Marqués on Jueves, Septiembre 13th, 2007

Archivado bajo Gadgets, Hardware, Sistemas, UNIX / Linux

Unicon Systems dispone de un kit para el desarrollo libre de dispositivos móviles. Hasta la fecha no existía un kit que nos permitiera crearnos un dispositivo móvil de una forma similar. 

El kit incluye:

CPU

  • ARM9 S3C240A embedded CPU at 266 MHz

Memory

  • 32 MB SDRAM
  • 32 MB flash

Screen

  • Pantalla de color TFT LCD QVGA 3.5” 16M  (También disponibles pantallas LCDs de 4.3″ y 7″)
  • Pantalla táctil de alta resolución

Puertos

  • 2 x  USB 2.0

Interfaces

  • WiFi 802.11b
  • IrDA
  • RS232
  • JTAG

Audio

  • Entrada y salida estereo
  • Auriculares

Otros

  • Sensor de movimiento 2D 
  • Ranuras de expansión para tarjetas SD, XD, MMC, MS

Sistema operativo

  • Linux 2.6.19

Interfaz gráfica de usuario:

  • Nano-X graphics
  • FLTK graphics toolkit

mkit

Comentarios (0) Posted by Asier Marqués on Martes, Agosto 14th, 2007

Archivado bajo Sistemas, UNIX / Linux

Ésta lista está recogida de un post de Circo Linux, una traducción de un post publicado en Pimp Your Linux.

#1. hostname
Imprime el nombre del local host en donde estás trabajando.

#2. whoami
Imprime el nombre de usuario en la pantalla, y puede resultar extremandamente útil cuando se cambia de usuario con su.

#3. id username
Imprime el UID del usuario y su GID, effective ID y grupos suplementarios.

#4. date
Imprime o cambia la fecha y la hora del sistema operativo. También se podria utilizar un servidor ntp para tener todos los sistemas con el mismo horario cada vez que se encienden.

#5. time
Determina la cantidad de tiempo que le toma a un proceso completarse + otra información. El ejemplo que se dá es:

* time ls

Para ver el tiempo que toma hacer un listado con ls.

#6. who
Determina los usuarios logueados en el sistema.

#7. rwho -a
Determina todos los usuarios logueados en la red. El servicio debe estar activado para ejecutar el comando o se debe ser usuario root.

#8. finger user_name
Información del sistema sobre un usuario.

#9. last
Muestra un listado de los últimos usuarios logueados en el sistema.

#10. history | more
Muestra los últimos ( 1000 aprox ) comandos ejecutados desde la línea de comandos. El “| more” hace que pare la salida por pantalla cada vez que se completa la salida. Redireccionar un comando hacia “more” resulta sumamente útil para diferentes propósitos, como se explica, para listados largos y para otras actividades corrientes en cualquier Gnu/Linux.

(more…)

Comentarios (6) Posted by Asier Marqués on Miércoles, Julio 11th, 2007

Archivado bajo Sistemas, Trucos, UNIX / Linux

SwapBoost es un script de Bash que nos permite utilizar el espacio libre que tengamos en nuestra memoria usb, para utilizarlo como memoria Swap incrementando en algunos casos el rendimiento del sistema.

swapb

Se podría decir que funciona de una forma similar al ReadyBoost en Windows Vista.

Comentarios (0) Posted by Asier Marqués on Viernes, Julio 6th, 2007