Mod_wsgi en Apache

PythonNo sé bien bien porqué (en realidad sí lo sé, pero no viene a cuento), me he visto peleando con instalando mod_wsgi en un servidor Apache (LAMP, para más señas).

Apache, para quién no lo conozca, es uno de los servidores web más populares que existen; es de código abierto y consta de un núcleo, y de varios módulos que le añaden funcionalidades (conexiones ssl, soporte para perl, php, asp, etc.). Así pues, cuando instalamos un servidor Apache, podemos instalar, además, únicamente los módulos que necesitemos, teniendo así, un servidor más seguro (al tener únicamente lo que necesitamos) y con mejor rendimiento.

Mod_wsgi es uno de estos módulos para Apache, que en este caso «permite servir aplicaciones hechas en Python, que tengan soporte para la interfaz WSGI». (Fuente).

Continuar leyendo «Mod_wsgi en Apache»

Teclado en Ubuntu Server 11

TecladoHoy estaba instalando Ubuntu Server 11.04, y he seleccionado el teclado español durante el asistente inicial. Sin embargo, algo no debe haber ido bien, puesto que algunas teclas no se corresponden, al teclear en la terminal.

Después de buscar en algunos posts como éste, he intentado buscar directamente en el sistema, y he podido solucionar mi problema con el teclado, con el siguiente comando:

sudo dpkg-reconfigure keyboard-configuration

Este comando lanzará un pequeño asistente que permitirá volver a establecer los parámetros de configuración para el teclado.

 

Flickr! Foto por LinaMon

Intel VPro, AMT, ME, MEBx

Intel VPRO
Cuando te pones a investigar sobre VPro, aparecen muchos otros términos relacionados, y no acabas (por lo menos yo) de entender exactamente a qué hace referencia cada uno de ellos. Por esta razón, he decidido escribir este post, a ver si así me aclaro un poco los conceptos con lo que voy recogiendo de Internet.

Primero, ¿de qué estamos hablando?

Hablamos de una tecnología que permite maximizar la seguridad y mejorar la gestión del PC, recopilando información de inventario, diagnosticando problemas y ofreciendo diversos servicios de forma remota (encendido y apagado del PC, acceso a la BIOS, protección frente a amenazas, etc.).

Fuente: http://download.lenovo.com/ibmdl/pub/pc/pccbbs/thinkservers/00685mst_sp.pdf

Tal y como se lee en la página oficial de Vpro, ésta tecnología ofrece las siguientes funcionalidades:

  • Permitir a los técnicos de IT, desplegar rápidamente parches de seguridad, desbloquear remotamente discos cifrados, y gestionar configuraciones de seguridad de los datos.
  • Proporcionar al personal de Helpdesk, control completo sobre un PC, con funcionalidades como el KVM Remote Control.
  • Permitir de forma remota, solucionar problemas y reparar PCs.
  • Acelerar el cifrado/descifrado de datos, mejorando la productividad del usuario, mediante Intel® AES New Instructions (Intel® AES-NI).
  • Reducir significativamente, el acceso no autorizado a datos sensibles en portátiles extraviados usando Intel® Anti-Theft Technology (Intel® AT).

Continuar leyendo «Intel VPro, AMT, ME, MEBx»

Reenviadores en DNS Server

JediEsta semana hemos estado montando un servidor de Directorio Activo, para un nuevo dominio en una red. Tecnología punta: Windows 2000 server.

Durante la instalación de Directorio Activo, se nos da la posibilidad de instalar también el servicio de Servidor DNS en la misma máquina, que es lo habitual, y es lo que hemos hecho.

Sin embargo, al acabar las instalaciones y empezar con las configuraciones, hemos querido añadir un reenviador al servidor DNS, para que pueda resolver cualquier dirección de Internet, y que no sólo se encargue de la resolución de nombres de la red local (léase, de los nombres definidos dentro de la zona o zonas configuradas en el servidor DNS).

El problema, es que nos hemos encontrado, tanto la sección de reenviadores, como la sección de «root hints», deshabilitadas, puesto que además de la zona con el dominio definido, aparecía la zona raíz (.) en el propio servidor DNS. Básicamente, esto ocurre cuando al instalar un servidor DNS, éste no encuentra ningún otro servidor DNS. En ese caso, se configura a sí mismo como servidor raíz.

Símplemente eliminando la zona raíz (.), y refrescando (F5), se consigue habilitar la sección de reenviadores, y además se listan de forma automática los «root hints».

Fuente: http://www.petri.co.il/no_forwarding_or_root_hints_on_dns_server.htm

Flickr! Foto por PhillipWest

Mensaje de bienvenida

Portal

Esto, más que una entrada, es un recordatorio, de cómo he conseguido configurar el mensaje de bienvenida a una máquina de test desde Directorio Activo en Windows 2000 Server. Dudo que a estas alturas le pueda ser útil a alguien, pero si es así, mejor que mejor.

Este es el proceso que podríamos seguir:

  1. Abrimos la consola de «Usuarios y Equipos de Directorio Activo»
  2. Seleccionamos la OU a la que queremos aplicarle el mensaje de bienvenida > click derecho > propiedades.
  3. Desde la pestaña «Group Policy», creamos una nueva GPO (o editamos una existente).
  4. En la nueva GPO, expandimos Computer Configuration > Windows Settings > Security Settings > Local Policies > Security Options.
  5. Aquí, encontraremos las dos directivas que necesitaremos configurar para establecer el mensaje de bienvenida:
    • Message text for users attempting to log on
    • Message title for users attempting to log on
  6. Introduciendo el texto correspondiente en las directivas anteriores, quedará configurado el mensaje.
  7. Una vez configurados, moveremos la máquina en la que queremos mostrar el mensaje de bienvenida, a la OU en la que hemos configurado la GPO.
  8. Para forzar la aplicación de la directiva, desde el mismo servidor de AD podremos ir a inicio > ejecutar e introducir el comando anterior al «gpupdate» de 2003 Server:
    • secedit /refreshpolicy machine_policy /enforce (Fuente)
  9. Finalmente, deberemos reiniciar la máquina donde se desea ver el mensaje de bienvenida, para que pueda aplicar la nueva directiva.

Magento: más configuraciones

Mirando los borradores del blog, me he encontrado con este, que no sé porqué no llegué a publicar en su día (es de Septiembre del 2010). Lo recupero y publico, esperando que sea de utilidad.

A base de pelearme con Magento, he descubierto algunas opciones muy muy básicas pero que me vienen de maravilla (aviso, este es un post para los que como yo, son principiantes con Magento):

Mostrar productos fuera de stock

Si queremos que nuestros productos se muestren en nuestra web aún cuando no tenemos existencias, podemos hacerlo, asegurándonos de que no se van a poder comprar.
En la versión 1.4.1.1 esto se hace desde Sistema -> Configuración -> Catálogo -> Inventario, desde donde además de poder poner a «Si» la opción «Display Out of Stock Products», podremos gestionar la cantidad máxima de productos permitidos en un mismo carrito de la compra (que vendrá muy bien si tienes unos gastos de envío variables que has subido con un csv).

Mostrar productos por defecto en línea en lugar de en cuadrícula

La verdad, no me gusta nada la vista por defecto de Magento, que muestra los productos ordenados en cuadrícula. Queda mucho más elegante, por lo menos con mi tema y mis productos, la vista en lista. Desde Sistema -> Configuración -> Catálogo -> Catálogo -> frontend, podremos cambiar este punto en la opción «Modo de la lista».

Permitir pagos con Paypal para el producto de menor peso

Un problema que me he encontrado, es que he trabajado con «tablerates» para definir los gastos de envío en función del peso y el destino (explicado en este post, en el apartado «Gastos de envío»). Pues bien, como cada producto tiene asociado un peso, se debe definir el coste de los gastos de envío para todos y cada uno de los destinos para el producto de peso menor (o para peso cero), ya que si no podemos tener problemas en las ventas. Por ejemplo, si tengo definidos 2 gastos de envío (Barcelona y Madrid) y tengo un producto de 0,5kg, no podré vender si tengo los siguientes gastos de envío:

  • Barcelona: 0 kg = 5€, 10kg = 10€
  • Madrid: 10kg = 10€

No podré vender mi producto de 0,5kg aún cuando el destino sea Barcelona (y por tanto tenga definidos los gastos de envío correctamente). Necesitaré definir también los gastos para Madrid.

Tienda multilenguaje

Finalmente, me he decidido a hacer mi tienda en varios idiomas, aprovechando la poténcia de Magento, y siguiendo los pasos aquí descritos, y que resumo a continuación:

  1. Descargar y descomprimir los idiomas para nuestra web del sitio oficial. http://www.magentocommerce.com/langs/list/
  2. Subir a Magento los idiomas descomprimidos. Cada idioma ya viene con la estructura creada, así que únicamente deberemos subir el directorio «app» del idioma a la raíz de nuestra instalación de Magento en el servidor. Esto nos creará para cada idioma, un directorio en app\design\frontend\default\default\local y otro en app\locale.
  3. Desde la administración de Magento, desde Sistema -> Gestionar tiendas, crearemos una nueva «Vista de tienda» para cada uno de los nuevos idiomas. Cada vista de tienda, deberá tener los siguientes parámetros:
    • Store: Main Store
    • Name: Idioma
    • Code: idioma (NOTA: Existen algunas aplicaciones extra que muestran banderas en lugar del nombre del idioma. Para ello, es necesario usar como código el código del idioma. P.ej. US para inglés americano).
    • Status: Enabled
    • Sort order: 0 (Opcional. Si todos los idiomas se dejan a 0, se ordenarán por orden alfabético)
  4. Finalmente, desde Sistema > Configuración, cambiaremos el alcance de la configuración actual (el desplegable de arriba a la izquierda, justo encima del menú izquierdo) para acceder a la vista del uno de los idiomas. Desde General -> General, desmarcaremos el checkbox «usar sitio web» y posteriormente seleccionaremos el País para el idioma. Deberemos hacer esto para cada idioma.
  5. Seguramente, hará falta refrescar la caché para que funcione. Esto podremos hacerlo desde Sistema -> Gestor de la cache -> Flush Magento Caché.

Además de estas opciones, creando nuevas vistas para los diferentes idiomas podremos:

  1. Con el ámbito de la vista de idioma seleccionado en el «scope», desde Sistema -> Configuración -> General -> Diseño, especificar un diseño personalizado para cada uno de los idiomas, si por ejemplo queremos dar la sensación de tener diferentes webs según el idioma.

Lo más importante, sin embargo, es que con el cambio de idioma, no únicamente cambie el idioma de la tienda, si no que además cambien los títulos de las categorías, así como las descripciones de los diferentes productos. Esto se podrá hacer tal y como sigue:

  1. Desde Catálogo -> Gestionar las categorías, seleccionando el ámbito de la vista del idioma que queremos, en el desplegable de vistas de la esquina superior izquierda, podremos ver los valores definidos para la Categoría en la vista actual. Símplemente desmarcando el checkbox «Usar el valor por defecto», podremos dar un nuevo valor, por ejemplo, a el nombre o la descripción de la categoría, para que corresponda con el idioma de la vista.
  2. Exactamente igual, desde Catálogo -> Gestionar los productos, y usando el selector de la vista actual, podremos cambiar las textos de cada producto, así como adaptar su coste,

La información está sacada de este fantástico vídeo.

¿Qué páginas tiene mi tienda?

Desde la opción CMS -> Páginas, se tiene acceso a un listado completo de las páginas que conforman nuestra tienda. Y cuando hablo de páginas me refiero a las páginas y los templates que usa cada una de ellas. Esto es ideal para editar la información de cada página de forma sencilla, a la vez que proporciona un listado de los templates usados, por si se quieren hacer modificaciones más drásticas (como cambiar todos los pies de página de la tienda o eliminar banners).

Más información sobre Magento: https://helloit.es/?tag=magento

VMWare y los USB

Llevaba tiempo peleándome con una máquina virtual, que no me reconocía el dispositivo USB, aun cuando mi host sí que me lo reconocía.

El host era un Ubuntu Server 6.06 (sin modo gráfico), mientras que mi máquina virtual era un sistema Windows XP.

Con el host, realicé lo siguiente con tal de comprobar el correcto funcionamiento del disco USB externo:

  1. Busqué el dispositivo USB conectado al PC con el siguiente comando (siguiendo estas instrucciones)
  2. sudo fdisk -l

  3. Una vez encontrado, lo metí en el fstab para su montaje automático (habiéndo creado anteriormente la carpeta /mnt/usb con mkdir)
  4. /dev/sdb1 /mnt/usb vfat defaults 0 0

  5. Forzé el montaje
  6. sudo mount -a

  7. Una vez montado, pude comprobar como mi disco duro externo estaba correctamente montado en mi host
  8. ls -la /mnt/usb

Antes, en mi máquina virtual, le había instalado las VMWare Tools, y le había añadido un Controlador USB como parte del hardware virtual (con la máquina virtual apagada, desde Summary -> Commands -> Add Hardware).

Aún así, no había manera de conseguir detectar el USB.

Finalmente, aquí encontré la solución.

Resulta que desde el panel de administración de VMWare, se debía desplegar el icono de los USB (en VMWare Server 2, está en el menú superior, junto a los botones de encendido y apagado de la máquina virtual), para habilitar el USB conectado en el host.

Tan fácil como esto.

Actualizar VMWare Server 1 a 2

VMWareEsta semana me ha tocado actualizar mi VMWare Server 1, al nuevo VMWare Server 2.0.1. Lo he hecho, de la siguiente forma:

  1. He descargado el último fichero .tar.gz de la página oficial de VMWare, y lo he descomprimido con el comando «tar -zxvf«
  2. He parado todas las máquinas virtuales de mi servidor desde la interfaz gráfica VMWare Server Console.
  3. He ejecutado el instalador de vmware con el comando «./vmware-install.pl«, pero me ha dado el siguiente error: «The following VMware kernel modules have been found on your system that were not installed by the VMware Installer», mostrándome vmnet y vmmon como los módulos erroneos.
  4. Para solucionar el error anterior, he tirado de la recomendación de este foro donde recomiendan usar «find /lib/modules/ | grep vmnet» para encontrar el módulo vmnet (lo mismo para vmmon).
  5. Una vez encontrados, los he eliminado con el comando «rm«, tal y como ha sugerido el mismo instalador de VMWare.
  6. Finalmente he conseguido ejecutar el instalador de VMWare, que se encarga (según la documentación oficial) de actualizar de la versión 1 a la 2.
  7. Una vez finalizados los pasos del asistente (indicando, en la mayoría de ocasiones, los parámetros por defecto de configuración) ha quedado actualizado mi servidor VMWare.
  8. Desde la dirección https://ipservidor:8333 he podido acceder a la interfaz web de administración del servidor VMWare actualizado, previo reinicio del sistema.

NOTA: En el caso de querer lanzar de nuevo el asistente para la configuración, se podrá hacer ejecutando el comando «/usr/bin/vmware-config.pl«

Magento: pago contra reembolso

Contra reembolsoUno de los métodos de pago más sencillos y seguros, es el pago contra reembolso. Prácticamente no tienes que configurar nada en tu e-commerce (puesto que no necesitas integraciones para pagos con tarjetas de crédito) y el usuario paga únicamente cuando recibe el paquete (lo que da seguridad).

Las pegas:

  1. El usuario pagará una pequeña cantidad por usar el pago contra reembolso (en torno a un 3% más, en función del transportista).
  2. Esta opción no viene de forma nativa con Magento 1.4.1

Como es lógico, la segunda pega es la que más me preocupa.

Sin embargo, según he visto aquí, existe una utilidad llamada Cash on Delivery que permite introducir este método de pago en Magento.

Voy a explicar los pasos que he seguido para introducir esta funcionalidad:

  1. Realizamos una copia de seguridad TOTAL de nuestro e-commerce.
  2. Preparamos la instalación para el uso de Magento Connect (cambiando los permisos de la estructura de ficheros de Magento a 777).
  3. Vamos a la página de la extensión «Cash on Delivery» y pulsa sobre «Get Extensio Key» (solo podrás verlo si estás logueado en la página. El registro es gratuito).
  4. Seleccionamos la versión de Magento Connect apropiada (la 1 si usas la versión de Magento de la Comunidad 1.4.1.1 o inferior).
  5. Copiamos la Key.
  6. Entramos al panel de administració de Magento de tu e-commerce.
  7. Vamos a Sistema -> Magento Connect -> Magento Connect Manager.
  8. Introducimos de nuevo las credenciales de administración de Magento.
  9. Pegamos la Key que hemos copiado en el punto 5, y pulsar sobre «Instalar».
  10. Al finalizar, veremos el mensaje «Procedure completed. Please check the output frame for useful information and refresh the page to see changes.» justo debajo de la ventana negra que simula un shell de linux.
  11. Pulsamos sobre «refresh» para ver como efectivamente aparece listada la extensión instalada.
  12. Si lo queremos, mediante el enlace «Return to admin» podremos volver al panel de administración de Magento para gestionar la nueva extensión.
  13. Si lo queremos, podemos descargar el archivo csv con la traducción, tal y como comentan los amigos de elblogdemagento.
  14. Descomprimimos el archivo csv y lo subimos a app/locale/es_ES
  15. Refrescamos la caché para ver la extensión en español, desde Sistema > Gestor de la cache > Control de la cache > Seleccionamos «Seleccionar Todo» > Refrescar.
  16. Ahora ya tendremos la extensión de pago contra reembolso instalada, y en español.
  17. Desde Sistema > Configuración > Ventas > Métodos de pago, podremos ver el nuevo pago «Contrareembolso».
  18. Desde aquí, cambiaremos el nombre del método para adecuarlo a nuestro idioma, y nos aseguraremos de que únicamente se acepten pagos desde «Todos los países permitidos».
  19. Al pulsar sobre «Guardar la configuración» aplicaremos los cambios y tendremos listo el pago contra reembolso, a falta de aplicar los gastos del servicio.
  20. Desde Ventas > Reglas de pago contrareembolso > Envíos nacionales, añadiremos una nueva regla donde especificaremos, por ejemplo, que «aplique desde» 0 (entiendo que es el coste del pedido), y el coste (se deberá usar el punto como separador decimal).
  21. Con esto quedará finalmente, configurado el pago contra reembolso en nuestra web.
  22. Una vez acabado el proceso de instalación y configuración de la extensión, deberemos volver a cambiar los servicios de nuestro sistema de ficheros, a su estado anterior, tal y como se explica aquí.

Flickr! Foto por borman818

Magento Connect: permisos

Magento tiene una utilidad llamada «Magento Connect» que nos permite instalar extensiones de forma automática. Ahora bien, esta utilidad tiene el inconveniente de que requiere cambiar todos los permisos de nuestra estructura de directorios de nuestra instalación Magento, a «todos los permisos», es decir, +777 (permisos totales, también de escritura, para el grupo «todos»).

Esto es un problema de seguridad, puesto que se está dando acceso tanto de lectura, como de escritura y ejecución de todos los archivos y carpetas de nuestro e-commerce a cualquier persona.

Para remediarlo, he encontrado esta entrada que explica de forma muy clara cómo proceder cuando se usa Magento Connect.

Básicamente, lo que propone es lo siguiente:

  1. Queremos instalar una extensión mediante Magento Connect
  2. Para ello, cambiamos todos los permisos de nuestra estructura de ficheros a 777 (puedes usar tu cliente FTP favorito, como FileZilla). Esto suele durar un buen rato si lo haces así.
  3. Una vez cambiado, instalamos la aplicación con Magento Connect
  4. Finalmente, y ya acabada la instalación, reseteamos los permisos, ya sea de forma manual, o mediante la aplicación Magento Cleanup Tool. Con esta última aplicación, haríamos lo siguiente:
    • Descomprimir la aplicación en la raíz de nuestro e-commerce (por ejemplo, justo en el directorio «magento» si nuestro e-commerce está ahí).
    • Navegar a http://yourdomain.com/magento/magento-cleanup.php (si como antes, nuestro e-commerce se encuentra dentro del directorio magento), para restablecer los permisos iniciales.