El software libre y la educación, según Richard Stallman

Algunos le querrán ver como un bicho raro, loco, fanático… pero el caso es que dice cosas con bastante fundamento (y aquí se ha quedado bastante corto).

Publicado en Sin categoría | Deja un comentario

Un poco de humor

Metáfora para comprender la informática

Metáfora para comprender la informática

¿Humor? ¿Filosofía? Da que pensar. Algo marcha mal

¿Humor? ¿Filosofía? Da que pensar. Algo marcha mal

 

Publicado en Sin categoría | Deja un comentario

Tracker store

Hoy he tenido un problema con mi ordenador. Había un proceso llamado tracker-store que no paraba de consumir un gran porcentaje de CPU, y que no paraba de acceder al disco duro, con lo que todo me funcionaba más despacio, y tenía miedo de que se acortara la vida del disco duro con tanta actividad. Al parecer, tracker-store se encarga de indexar los archivos y directorios en el sistema de archivos, para facilitar las busquedas. La verdad es que yo no hago muchas busquedas en el disco duro, porque tengo toda la información (que es mucha) bastante bien organizada, y sé más o menos donde encontrar cualquier cosa, así que lo primero que he pensado es desactivar o desinstalar el tracker store. Después he visto que se puede configurar escribiendo en el terminal: tracker-preferences desde cada usuario que queramos modificar ( o sudo tracker-preferences si queremos cambiar la configuración para el usuario root) y seleccionando qué y cómo queremos que indexe. También supongo que funcionaría editar el siguiente archivo de configuración: sudo nano /etc/xdg/autostart/tracker-store.desktop y poner el X-GNOME-Autostart-enabled=false P.D. – La solución expuesta anteriormente debería haber funcionado, pero el tracker-store no hacía caso de la configuración que yo le ponía y me seguía tocando las narices, así que por fin lo he desinstalado desde el gestor de paquetes synaptic, junto con otros paquetes con dependencias (lo indica automáticamente synaptic). En lugar de tracker se ha instalado, también por sugerencia de synaptic (todo muy fácil), otro paquete para búsquedas (gnome-search-nosequé, o algo así). Ya he visto en bugs.debian.org que ya había notificado este bug más gente, con lo que supondremos que se resolverá en no mucho tiempo.

Publicado en Sin categoría | Deja un comentario

Organizacion del sistema de archivos en Linux

Hace algún tiempo que quería escribir algo sobre la estructura de archivos que se suele utilizar en linux. Sin embargo, he encontrado un texto que está bastante completo, y lo reproduzco aquí (son las ventajas del software libre / cultura libre : compartir nos permite ahorrarnos el trabajo de hacer lo que ya ha hecho alguien antes):

En este articulo intentaremos explicar lo mas brevemente posible, como los directorios de un sistema Linux/Unix están organizados y para que se usan. Uno de los problemas que tienen los nuevos usuarios de un sistema Linux/Unix es el no saber que significan y para que se utilizan los diferentes directorios del sistema. No preocuparos, en un principio puede pareceros difícil y sin lógica, pero una vez que empecéis a usarlos os acostumbráis pronto.

Existe un estándar, el «Estándar de jerarquía de ficheros» (FHS – Filesystem Hierarchy Standard) que intenta definir unas bases, para que tanto los programas del sistema, como los usuarios y administradores, sepan donde encontrar lo que buscan. Este estándar se encuentra en su versión 2.3 y el documento del mismo se puede encontrar en su totalidad en esta dirección: http://www.pathname.com/fhs/pub/fhs-2.3.html. Se recomienda su lectura a los deseen profundizar en el tema.

Este estándar esta mantenido por la ‘Free Standards Group’, una organización sin fines de lucro constituida por compañías de hardware y software como AMD, Computer Associates, Debian, Dell, Fujitsu, Google, HP, IBM, Intel, MySQL, NEC, Novell, Red Flag, Red Hat, Sun Microsystems, Veritas y otros muchos. La mayoría de las distribuciones de Linux, inclusive las que forman parte de Free Software Standards, no aplican de forma estricta y al 100% el estándar, aunque las diferencias son mínimas.

Existen dos tipos de distinciones cuando hablamos del tipo de contenido de un directorio: Estáticos/dinámicos y compartibles/no compartibles.

Estáticos: Contiene binarios, bibliotecas, documentación y otros ficheros que no cambian sin intervención del administrador. Pueden estar en dispositivos de solo lectura (read-only) y no necesitan que se hagan copias de seguridad tan a menudo como con ficheros dinámicos
Dinámicos: Contiene ficheros que no son estáticos. Deben de encontrase en dispositivos de lectura-escritura (read-write). Necesitan que se hagan copias de seguridad a menudo
Compartibles: Contiene ficheros que se pueden encontrar en un ordenador y utilizarse en otro
No compartibles: Contiene ficheros que no son compartibles

A continuación tenéis algunos ejemplos para aclarar ideas:

Estáticos: /bin, /sbin, /opt, /boot, /usr/bin
Dinámicos: /var/mail, /var/spool, /var/run, /var/lock, /home
Compartibles: /usr/bin, /opt
No compartibles: /etc, /boot, /var/run, /var/lock

Todos los ficheros y directorios aparecen debajo del directorio raíz «/» (El equivalente en el mundo Unix al C:\ de Windows) aunque se encuentren en discos/dispositivos distintos. En Linux/Unix no existen letras de discos (C:, D:, etc) Los dispositivos se ‘montan’ (empiezan a formar parte) del árbol de directorios del sistema, pero esto lo explicaremos en otra ocasión.

A continuación tenéis una lista con los directorios mas importantes del sistema y para que se usan. Para acceder a los mismos podéis usar el comando cd ‘nombre del directorio’. Para ver el contenido de los mismos podéis usar el comando ls -l ‘nombre del directorio’.

Directorio Descripción
—————————————————————————————–
/bin/ Comandos/programas binarios esenciales (cp, mv, ls, rm, etc.),
/boot/ Ficheros utilizados durante el arranque del sistema (núcleo y discos RAM)
/dev/ Dispositivos esenciales, discos duros, terminales, sonido,
vídeo, lectores dvd/cd, etc

/etc/ Ficheros de configuración utilizados en todo el sistema y que
son específicos del ordenador

/etc/opt/ Ficheros de configuración utilizados por programas alojados dentro
de /opt/

/etc/X11/ Ficheros de configuración para el sistema X Window (Opcional)
/etc/sgml/ Ficheros de configuración para SGML (Opcional)
/etc/xml/ Ficheros de configuración para XML (Opcional)

/home/ Directorios de inicios de los usuarios (Opcional)
/lib/ Bibliotecas compartidas esenciales para los binarios de /bin/, /sbin/ y
el núcleo del sistema.

/mnt/ Sistemas de ficheros montados temporalmente.
/media/ Puntos de montaje para dispositivos de medios como unidades lectoras
de discos compactos.

/opt/ Paquetes de aplicaciones estáticas.
/proc/ Sistema de ficheros virtual que documenta sucesos y estados del
núcleo. Contiene principalmente ficheros de texto.

/root/ Directorio de inicio del usuario root (super-usuario) (Opcional)
/sbin/ Comandos/programas binarios de administración de sistema.
/tmp/ Ficheros temporales
/srv/ Datos específicos de sitio servidos por el sistema.
/usr/ Jerarquía secundaria para datos compartidos de solo lectura (Unix system
resources). Este directorio puede ser compartido por
múltiples ordenadores y no debe contener datos específicos del
ordenador que los comparte.

/usr/bin/ Comandos/programas binarios.
/usr/include/ Ficheros de inclusión estándar (cabeceras de cabecera utilizados
para desarrollo).

/usr/lib/ Bibliotecas compartidas.
/usr/share/ Datos compartidos independientes de la arquitectura del
sistema. Imágenes, ficheros de texto, etc.

/usr/src/ Códigos fuente (Opcional)
/usr/X11R6/ Sistema X Window, versión 11, lanzamiento 6 (Opcional)
/usr/local/ Jerarquía terciaria para datos compartidos de solo lectura
específicos del ordenador que los comparte.

/var/ Ficheros variables, como son logs, bases de datos, directorio raíz
de servidores HTTP y FTP, colas de correo, ficheros temporales, etc.

/var/cache/ Cache da datos de aplicaciones.
/var/crash/ Depósito de información referente a caidas del sistema (Opcional)

/var/games/ Datos variables de aplicaciones para juegos (Opcional)
/var/lib/ Información de estado variable. Algunos servidores como MySQL y
PostgreSQL almacenan sus bases de datos en directorios subordinados de éste.

/var/lock/ Ficheros de bloqueo.
/var/log/ Ficheros y directorios de registro del sistemas (logs).
/var/mail/ Buzones de correo de usuarios (Opcional)
/var/opt/ Datos variables de /opt/.
/var/spool/ Colas de datos de aplicaciones.
/var/tmp/ Ficheros temporales preservados entre reinicios.

Espero que esta información os sirva para comprender un poco mas donde encontrar información en vuestro sistema.
(Este texto se ha sacado de http://www.linux-es.org/node/112 , donde se indica que tiene Licencia Creative Commons – Reconocimiento-NoComercial-CompartirIgual 2.5)

Publicado en Sin categoría | Deja un comentario

Manual de bolsillo de .htaccess

En un articulo anterior comentamos un poco por encima lo que es el servidor web Apache.

En esta ocasión quería hablar sobre una herramienta de configuración muy potente para el servidor Apache: los archivos .htaccess para la configuración de directorios, y para ello nada mejor que un pequeño tutorial para hacerse una ligera idea de sus posibilidades (un manual completo sería muy extenso).

Notas de traducción

Si a alguien se le ocurre algo para agregar/modificar/corregir al tutorial sólo deje un comentario y vemos cómo hacemos.

La traducción

En este tutorial mejoraremos nuestro sitio web modificando el archivo .htaccess.¿Por qué escribí este artículo? Porque en la red encontré un montón de artículos sobre esta pequeña bestia pero cada uno de ellos englobaba un problema en particular y no el uso general del archivo, o eran demasiado grandes cuando uno necesitaba algo en poco tiempo. Por lo que estoy intentando recopilar todas los datos útiles en un tutorial sencillo pero monolítico, que será actualizado a medida que consiga más información. Primero sin embargo, veamos qué es un archivo .htaccess.

Esto es lo que dice la definición de la wikipedia [en inglés]:

.htaccess (Acceso de Hiper-Texto) es el nombre por defecto del archivo de configuración de directorios de Apache. Provee de la habilidad para personalizar la configuración de las directivas definidas en el archivo de configuración principal. Las directivas de configuración necesitan estar en el contexto de .htaccess y el usuario necesita los permisos apropiados.

Ahora veamos los problemas más comunes.

Índice (Última actualización: 28 de Febrero de 2006)

  1. Control de acceso a carpetas
  2. Listado de carpetas
  3. Activación de compresión
  4. Escondiendo archivos
  5. Páginas de error HTTP 404 personalizadas
  6. Bloqueo de referers maliciosos – Nada de hotlinking
  7. Bloqueo de robots maliciosos
  8. No mostrar ‘wwww’
  9. Escondiendo la extensión del lenguaje de scripting
  10. Consejos y trucos varios
  11. Protección con contraseña mediante htpasswd
  12. Activando SSI
  13. Cambiando la página por defecto
  14. Evitando el error 500
  15. Directiva CheckSpelling [Control de Ortografía]
  16. Agregar sumario MD5
  17. Fuentes
  18. Herramientas

Control de acceso a carpetas

Podrías querer deshabilitar totalmente el acceso a una carpeta (por ejemplo, una carpeta con librerías de programación que se incluyen en los archivos principales. En este caso sólo los archivos principales accederána ellos mediante el sistema de archivos, pero no se podrán acceder via web). Bueno, simplemente crea un archivo .htaccess en esa carpeta que contenga:

#deny all access
deny from all

Si se quiere permitir el acceso desde una IP específica

#deny all access
deny from all
allow from 10.0.0.1

o para un rango específico de IPs (forzado mediante la máscara de red)

allow from 192.168.0.0/24

también se puede bloquear el acceso a un archivo específico

<Files privado.html>
Order allow,deny
Deny from all

Volver al índice

Listado de carpetas

Si se quiere hacer las carpetas navegables, entonces necesitamos agregar esta línea al archivo .htaccess

Options +Indexes +MultiViews +FollowSymlinks

Y esta si se tiene el módulo apropiado en el servidor web


IndexOptions FancyIndexing

También se podría querer prevenir el listado de carpetas

IndexIgnore *

Volver al índice

Activar compresión

Se puede habilitar la compresión de datos inherente de PHP para ahorrar ancho de banda


php_value zlib.output_compression 16386

Volver al índice

Escondiendo archivos

Para deshabilitar el acceso a un archivo en particula se puede utilizar una expresión regular y la directiva Files para denegar acceso a cualquier archivo que comience con .ht

Se puede modificar esto para restringir un archivo en particular (como archivos de configuración, robots.txt, archivos de logs o lo que se desee).


Order allow,deny
Deny from all
Satisfy All

Volver al índice

Páginas de error HTTP 404 personalizadas

Si se quisiera redireccionar los visitantes cada vez que se encuentran con una página de error HTTP 404, utiliza éste código:

ErrorDocument 404 /errores/noencontrado.html

Esto redirije el usuario hacia /errores/noencontrado.html cada vez que sucede un error 404. Obviamente, se puede redefinir para que capture otros errores http (403, 5000, etc). Sigue leyendo para ver lo que encontré

Consejo: Internet Explorer tiene una “funcionalidad” poco documentada que previene la utilización de cualquier página de error 404 personalizada que sea menor a 512 bytes de largo. Los visitantes serán enviados, en cambio, a la página propia de IE, que es genérica y sugiere que utilizen una búsqueda en MSN para buscar la información en internet. ¡Esa es una forma de perder visitantes! Asegúrate que tu página personalizada esté por sobre este límite – algo así como 10 líneas completas de texto y HTML deberían ser suficientes.

Volver al índice

Bloqueo de referers maliciosos – Nada de hotlinking

Si se desea bloquera algunas partes del sitio de cualquier referer malicioso:


RewriteEngine on
RewriteCond %{HTTP_REFERER} ejemplo\.com [NC,OR]
RewriteCond %{HTTP_REFERER} otroejemplo\.com
RewriteRule .* - [F]

Utilizando el motor rewrite [de reescritura] se denegará el acceso al sitio a cualquier visitante que venga de chicomalo.com u otrositiodesagradable.com. Para evitar el robo de ancho de banda, se puede bloquear el acceso a un archivo en particular (o extensión de archivos).


RewriteEngine on
RewriteCond %{HTTP_REFERER} !^$
RewriteCond %{HTTP_REFERER} !^http://([-a-z0-9]+\.)?example\.com[NC]
RewriteRule .*\.(zip|mp3|avi|wmv|mpg|mpeg)$ http://www.example.com/images/nohotlink.gif [R,NC,L]

Esto dice: “si el visitante no proviene de misitio.net, entonce redirije todos los pedidos de archivos (zip,mp3,avi,wmv,mpg,mpeg) a una imagen que dice “No permitimos hotlinking” De esa forma, puedes redirigir a una página, o lo que desees, o p uedes modificar la lista de extensíones de archivo para incluir/quitar otros archivos. Cuidado: cuando se decide bloquera el hotlinking de imágenes recuerda que puedes estar bloqueando todo tráfico fuera del alcance de tu dominio. Por ejemplo, si se posee un archivo de sindicación tomado por bloglines necesitarás modificar la regla para permitirles a los lectores obtener las imágenes – o el RSS se verá mal.

Volver al índice

Bloqueo de robots maliciosos

En algunos casos se querrá bloquear algunos robots maliciosos, como spiders o descargadores. Para ello utilizaremos mod_rewrite nuevamente. Normalmente los robots maliciosos ignoran el archivo de directivas robots.txt por lo que se podría querer forzar un error 403 cada vez que quieran recorrer o descargar tu sitio:


RewriteEngine On
RewriteCond %{HTTP_USER_AGENT} ^BlackWidow [OR]
RewriteCond %{HTTP_USER_AGENT} ^Bot\ mailto:craftbot@yahoo.com [OR]
RewriteCond %{HTTP_USER_AGENT} ^ChinaClaw [OR]
RewriteCond %{HTTP_USER_AGENT} ^Custo [OR]
RewriteCond %{HTTP_USER_AGENT} ^DISCo [OR]
RewriteCond %{HTTP_USER_AGENT} ^Download\ Demon [OR]
RewriteCond %{HTTP_USER_AGENT} ^eCatch [OR]
RewriteCond %{HTTP_USER_AGENT} ^EirGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailSiphon [OR]
RewriteCond %{HTTP_USER_AGENT} ^EmailWolf [OR]
RewriteCond %{HTTP_USER_AGENT} ^Express\ WebPictures [OR]
RewriteCond %{HTTP_USER_AGENT} ^ExtractorPro [OR]
RewriteCond %{HTTP_USER_AGENT} ^EyeNetIE [OR]
RewriteCond %{HTTP_USER_AGENT} ^FlashGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetRight [OR]
RewriteCond %{HTTP_USER_AGENT} ^GetWeb! [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go!Zilla [OR]
RewriteCond %{HTTP_USER_AGENT} ^Go-Ahead-Got-It [OR]
RewriteCond %{HTTP_USER_AGENT} ^GrabNet [OR]
RewriteCond %{HTTP_USER_AGENT} ^Grafula [OR]
RewriteCond %{HTTP_USER_AGENT} ^HMView [OR]
RewriteCond %{HTTP_USER_AGENT} HTTrack [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^Image\ Stripper [OR]
RewriteCond %{HTTP_USER_AGENT} ^Image\ Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} Indy\ Library [NC,OR]
RewriteCond %{HTTP_USER_AGENT} ^InterGET [OR]
RewriteCond %{HTTP_USER_AGENT} ^Internet\ Ninja [OR]
RewriteCond %{HTTP_USER_AGENT} ^JetCar [OR]
RewriteCond %{HTTP_USER_AGENT} ^JOC\ Web\ Spider [OR]
RewriteCond %{HTTP_USER_AGENT} ^larbin [OR]
RewriteCond %{HTTP_USER_AGENT} ^LeechFTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mass\ Downloader [OR]
RewriteCond %{HTTP_USER_AGENT} ^MIDown\ tool [OR]
RewriteCond %{HTTP_USER_AGENT} ^Mister\ PiX [OR]
RewriteCond %{HTTP_USER_AGENT} ^Navroad [OR]
RewriteCond %{HTTP_USER_AGENT} ^NearSite [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetAnts [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Net\ Vampire [OR]
RewriteCond %{HTTP_USER_AGENT} ^NetZIP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Octopus [OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline\ Explorer [OR]
RewriteCond %{HTTP_USER_AGENT} ^Offline\ Navigator [OR]
RewriteCond %{HTTP_USER_AGENT} ^PageGrabber [OR]
RewriteCond %{HTTP_USER_AGENT} ^Papa\ Foto [OR]
RewriteCond %{HTTP_USER_AGENT} ^pavuk [OR]
RewriteCond %{HTTP_USER_AGENT} ^pcBrowser [OR]
RewriteCond %{HTTP_USER_AGENT} ^RealDownload [OR]
RewriteCond %{HTTP_USER_AGENT} ^ReGet [OR]
RewriteCond %{HTTP_USER_AGENT} ^SiteSnagger [OR]
RewriteCond %{HTTP_USER_AGENT} ^SmartDownload [OR]
RewriteCond %{HTTP_USER_AGENT} ^SuperBot [OR]
RewriteCond %{HTTP_USER_AGENT} ^SuperHTTP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Surfbot [OR]
RewriteCond %{HTTP_USER_AGENT} ^tAkeOut [OR]
RewriteCond %{HTTP_USER_AGENT} ^Teleport\ Pro [OR]
RewriteCond %{HTTP_USER_AGENT} ^VoidEYE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web\ Image\ Collector [OR]
RewriteCond %{HTTP_USER_AGENT} ^Web\ Sucker [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebAuto [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebCopier [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebFetch [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebGo\ IS [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebLeacher [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebReaper [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebSauger [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website\ eXtractor [OR]
RewriteCond %{HTTP_USER_AGENT} ^Website\ Quester [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebStripper [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebWhacker [OR]
RewriteCond %{HTTP_USER_AGENT} ^WebZIP [OR]
RewriteCond %{HTTP_USER_AGENT} ^Wget [OR]
RewriteCond %{HTTP_USER_AGENT} ^Widow [OR]
RewriteCond %{HTTP_USER_AGENT} ^WWWOFFLE [OR]
RewriteCond %{HTTP_USER_AGENT} ^Xaldon\ WebSpider [OR]
RewriteCond %{HTTP_USER_AGENT} ^Zeus
RewriteRule .* - [F]

(La lista se obtuvo de aquí)

Volver al índice

No mostrar ‘wwww’

Para hacer esto, basta con una simple regla de re-escritura:


Options +FollowSymlinks
RewriteEngine on
RewriteCond %{http_host} ^www\.example\.com[nc]
RewriteRule ^(.*)$ http://example.com/$1 [r=301,nc]

¿Por qué querría quitar ‘www’? En ese link los fundamentos

Volver al índice

Escondiendo la extensión del lenguaje de scripting

Se puede aumentar la seguridad cambiando la extensión de los scripts para que los visitantes desconozcan qué lenguaje estás utilizando:

# Make PHP code look like unknown types
AddType application/x-httpd-php .cool

De esta forma, los archivos .cool serán tratados como si fuesen archivos PHP. Se deben renombrar los archivos que se quiera con esta nueva extensión.

Volver al índice

Consejos y trucos varios

  • Mantiene el archivo .htaccess pequeño: este archivo es procesado por el servidor web en cada pedido (pudiendo causar problemas de performance).
  • Mantiene tu archivo .htaccess organizado. Utiliza comentarios (líneas que comienzan en #) y se lógicamente consistente. Es complicado entender un archivo .htaccess desorganizado una vez que crece lo suficiente.
  • Cuando se utilicen reglas de reescritura de URLs, agrega la opción [L] a aquellas páginas finales (como la de hotlinking y demás). Esto le dirá al servidor que no procese más reglas (aumentando la performance).
  • Cuidado con la herencia: el archivo .htaccess a nivel raíz es aplicado también en las carpetas, cuaquier regla .htaccess en la carpeta puede reemplazar las reglas de la carpeta raíz.

Volver al índice

Protección con contraseña mediante .htpasswd

Esto es útil cuando se quiere agregar una contraseña a ciertas páginas y/o archivos

  • Crea un archivo .htpasswd en la carpeta a protejer.
  • El archivo contendrá la información de registro de la forma usuario:contraseña. El nombre de usuario es en texto plano. La contraseña debe de estar encriptada o no funcionará. Utiliza esta herramienta para saber qué texto agregar.
  • Si se crea el archivo en la PC local, acuérdate de subirlo al servidor en modo ASCII.
  • Normalmente, se puede modificar el archivo .htaccess. La autenticación se aplicará a la carpeta en la que se encuentre y las subcarpetas.AuthUserFile /home/pathto/.htpasswd
    AuthType Basic
    AuthName "Mi Carpeta Secreta"
    require valid-user Se puede protejer un sólo archivo incluyendo este código dentro de una directiva
  • Asegúrate de protejer el acceso al archivo .htaccess utilizando el primer consejo.

Volver al índice

Activando SSI

Utiliza éstas instrucciones para activar la interpretación SSI

AddType text/html .html
AddType text/html .shtml
AddHandler server-parsed .html
AddHandler server-parsed .shtml

Volver al índice

Cambiando la página por defecto

Se puede utilizar esta instrucción para cambiar la página por defecto (el orden es importante)

DirectoryIndex inicio.html index.htm index.html index.php

Volver al índice

Evitando el error 500

Pasando el juego de caracteres se evita el mostrar un error 500

AddDefaultCharset utf-8

Volver al índice

Directiva CheckSpelling [Control de Ortografía]

Esta directiva puede ser útil para auto-corregir errores de ortografía simple en la URL


CheckSpelling On

Volver al índice

Agregar sumario MD5

Si no se está preocupado por problemas de performance, se peude agregar un cálculo de llave MD5 para agregar un MIC [Control de Integridad de Mensaje en inglés] en cada pedido. Esto es útil para controlar la integridad del mensaje.

ContentDigest On

Volver al índice

Fuentes

Volver al índice

Herramientas

  • Generador de contraseñas .htaccess

Volver al índice

Publicado en Sin categoría | Deja un comentario

El Software Libre no es cosa de hippies

Algunos piensan que no suelen utilizar software libre. No les gusta, no les parece serio, creen que es para hippyes,… Sin embargo desconocen que, sin quererlo, utilizan software libre diariamente, por ejemplo la mayor parte de las veces que acceden a una página web. Entre los servidores de páginas web, uno de los más utilizados con grandísima diferencia es el servidor Apache. Lo más habitual, además, es encontrarse servidores web Apache corriendo sobre máquinas con sistema operativo linux. También es muy-muy habitual que dichos servidores dispongan también de bases de datos MySQL, y que permitan la ejecución de programas escritos en el lenguaje de programación php. A ese tipo de entornos de servidor se le suele conocer como LAMP (Linux, Apache, MySQL, PHP). Esas cuatro potentísimas herramientas, que se usan ampliamente en los ámbitos más exigentes, son proyectos de Software Libre. Existen otros muchos que también se utilizan muy habitualmente, aunque para la gran mayoría de sus usuarios pasen desapercibidos. Y recordad que no es lo mismo Software Libre que Software Gratis. El software libre nos da la libertad de hacer lo que queramos con él (sea gratis o no), pero podemos encontrarnos con Software Gratis que no nos permite más que dejar que se ejecute en nuestros ordenadores tal y como su autor haya querido (sea de buena, o de mala fe).

Publicado en Sin categoría | Deja un comentario

Métodos de compresión y descompresión de archivos desde terminal

Existen diferentes métodos para comprimir archivos. A continuación pongo un listado con ejemplos de los más utilizados. Por supuesto, deberemos tener instalados dichos comandos en nuestro sistema para poderlos utilizar, y los parámetros que aparecen en los ejemplos podrían modificarse para otros usos.

Ficheros tar (empaquetar varios archivos o directorios en un solo archivo, sin comprimir):

Empaquetar: tar -cvf archivo.tar /dir/a/comprimir/
Desempaquetar: tar -xvf archivo.tar
Ver contenido: tar -tf archivo.tar

Ficheros gz (comprimir un solo archivo):

Comprimir: gzip -9 fichero
Descomprimir: gzip -d fichero.gz

Ficheros bz2 (comprimir un solo archivo):

Comprimir: bzip fichero
Descomprimir: bzip2 -d fichero.bz2

Ficheros tar.gz (empaquetar varios archivos o directorios en un solo archivo con tar, y después comprimirlo con gz):

Comprimir: tar -czfv archivo.tar.gz ficheros
Descomprimir: tar -xzvf archivo.tar.gz
Ver contenido: tar -tzf archivo.tar.gz

Ficheros tar.bz2 (empaquetar varios archivos o directorios en un solo archivo con tar, y después comprimirlo con bz2):

Comprimir: tar -c ficheros | bzip2 > archivo.tar.bz2
Descomprimir: bzip2 -dc archivo.tar.bz2 | tar -xv
Ver contenido: bzip2 -dc archivo.tar.bz2 | tar -t

Ficheros zip

Comprimir: zip archivo.zip ficheros
Descomprimir: unzip archivo.zip
Ver contenido: unzip -v archivo.zip

Ficheros rar

Comprimir: rar -a archivo.rar ficheros
Descomprimir: rar -x archivo.rar
Ver contenido: rar -l archivo.rar
Ver contenido: rar -v archivo.rar

Ficheros arj

Comprimir: arj a archivo.arj ficheros
Descomprimir: unarj archivo.arj
Descomprimir: arj -x archivo.arj
Ver contenido: arj -v archivo.arj
Ver contenido: arj -l archivo.arj

Ficheros lha

Comprimir: lha -a archivo.lha ficheros
Descomprimir: lha -x archivo.lha
Ver contenido: lha -v archivo.lha
Ver contenido: lha -l archivo.lha

Ficheros zoo

Comprimir: zoo a archivo.zoo ficheros
Descomprimir: zoo -x archivo.zoo
Ver contenido: zoo -L archivo.zoo
Ver contenido: zoo -v archivo.zoo

Publicado en linux | Deja un comentario

Comandos básicos de linux por la terminal

Aunque existen multitud de herramientas gráficas que nos permiten hacer casi todo en los sistemas operativos GNU/linux, a veces puede ser más sencillo utilizar comandos desde una terminal. Aquí va una lista de comandos básicos que pueden ser de utilidad para los que se inician en el uso de linux:

Para poder trabajar como root (osea, como superadministrador del sistema):

Para trabajar como root de continuo:

su

Para dejar de ser root:

su nombredeusuario

Para trabajar como root solamente para ejecutar el comando que aparece a continuación:

sudo elcomando

Para trabajar como root cuando nuestro usuario tiene permisos de administración (algunos sistemas linux actuales han eliminado la figura de root, y cambiado por esta forma de administrar):

sudo su

Para instalar y desinstalar software (paquetes que están en los repositorios del sistema):

sudo apt-get install programa
sudo apt-get uninstall programa

Manejo de directorios:

Para moverse entre los directorios:

cd ruta del directorio

Es importante tener en cuenta lo siguiente:
~ es nuestro directorio personal

/ es el directorio de raíz

.. es el directorio padre del actual

Para listar el contenido de un directorio:

ls larutadeldirectorio
En el comando ls, al igual que en casi todos los demás, se pueden poner parámetros: -a muestra todos los archivos (incluidos los ocultos) -l muestra información más completa de cada archivo (ls -al mostraría ambas cosas).

Para borrar archivos:

rm archivo

Para borrar directorios:

rm -r directorio

Para crear un directorio:

mkdir nombredeldirectorio

Para copiar:

cp rutaorigen rutadestino

Para mover o renombrar:

mv rutaorigen rutadestino

Importante: Si el nombre del archivo contiene espacios, hay que escribirlo entre comillas:

Video de prueba.avi se escribiría como “Video de prueba.avi” en una terminal.

 

Si alguien desea que vaya añadiendo otros comandos básicos a este listado, o más detalles sobre algún comando concreto, que me lo haga saber a través de los comentarios.

Publicado en Sin categoría | Deja un comentario

Conversión de archivos de audio y vídeo

Hoy me ha tocado cambiar el formato de unos cuantos vídeos. Como es algo que no tengo que hacer muy a menudo, he ido a mirar a mi chuletilla particular para ver qué aplicaciones había usado otras veces.

En alguna ocasión había usado ffmpeg desde una terminal. No es muy difícil utilizar ffmpeg por línea de comando. Sin embargo, había oído comentar algo de una aplicación gráfica llamada Winff que, usando el mismo ffmpeg, nos facilita el trabajo al seleccionar las diferentes opciones de una forma muy cómoda, y sin tener que conocer o buscar los parámetros de ffmpeg.

He instalado y probado Winff, disponible en los repositorios de debian, y me ha resultado muy fácil de usar. Desde Winff se seleccionan todos los archivos que queramos convertir, y se ajustan todas las opciones que queramos dar al archivo convertido. Cuando pulsamos el botón «convertir», se abre otra ventana con una terminal donde en realidad se ejecuta el comando ffmpeg, con los parámetros necesarios, automáticamente.

Como nota para quienes lean esto algún tiempo después de haberlo escrito, al abrirse la terminal para ejecutar la conversión, aparece un mensaje advirtiendo que se usa ffmpeg transitoriamente, pero que se sustituirá en próximas revisiones por avconv. Por tanto, aunque hasta ahora parece que para que funcionara winff debía estar instalado previamente ffmpeg, en el futuro próximo lo que será necesario tener instalado de antemano será el avconv.

Un uso que se le puede dar a este programa cuando no necesitamos vídeos de mucha calidad, aparte del cambio de formato o tamaño de la imagen, puede ser el reducir el volumen del archivo convirtiéndolo en el mismo formato y tamaño de imagen, pero con otros valores de refresco de imagen por ejemplo.

Espero que a alguien le sea de utilidad esta información.

Publicado en Sin categoría | Deja un comentario

Instalando Rasbian en la raspberry pi

Cada vez que instalo un sistema operativo en una tarjeta SD para la raspberry pi, pienso en que tengo que escribir aquí algo para tratar de facilitar las cosas a quien quiera hacerlo por primera vez, ya que existen unos cuantos programas, tanto para sistemas operativos GNU/LINUX como para otros sistemas operativos, que permiten copiar imágenes completas de la tarjeta SD de nuestro raspberry pi, y habrá a quien le cueste decidirse por una opción.
Tras probar unos y otros, y sintiéndolo mucho por los que odian la terminal, no he encontrado ninguna que sea más sencilla y segura que teclear en una terminal de linux (como root):
dd bs=4M if=/ruta_al_archivo_imagen/nombre_del_archivo_imagen_de_raspbian.img of=/dev/sdx

Cambiando los nombres por lo que corresponda, y donde la x de /dev/sdx se cambiará por la letra que corresponda a la tarjeta SD que queramos usar. Eso sí, mucho cuidado de que se corresponda con la de la tarjeta en la que queremos escribir porque sino podemos borrar todo el contenido de algún disco duro, o quién sabe qué.
Para asegurarnos de que se trata de la tarjeta SD que tenemos destinada a nuestro raspberry pi, podemos teclear en una terminal, antes de conectar la tarjeta, df -h para ver qué dispositivos están conectados. Después se conecta la tarjeta SD y se vuelve a ejecutar df -h para ver qué elemento ha aparecido nuevo. Ese es el dispositivo sobre el que tenemos que actuar, pero no sobre una partición del mismo, sino sobre todo el dispositivo (osea, no sobre por ejemplo /dev/sdc1 , sino sobre /dev/sdc ).

Espero que disfrutéis de vuestra raspy tanto como yo.

Publicado en Raspberry pi | Deja un comentario