Hace poco, instalando un servidor Ubuntu me encontré con el siguiente error al tratar de instalar un paquete:


Package libapache2-mod-fastcgi is not available, but is referred to by another package.
This may mean that the package is missing, has been obsoleted, or
is only available from another source

E: Package 'libapache2-mod-fastcgi' has no installation candidate

Aunque había configurado aparentemente bien los repositorios de Ubuntu para la versión que estaba instalando, ese error indicaba que necesitaba corregirlos de alguna forma.

La solución pasó simplemente por pasar los repositorios de restricted a multiverse.

Más

Hace poco estaba trabajando sobre un Ubuntu 14.04 LTS Desktop cuando empezó a darme errores icomprensibles: MySQL dejó de funcionarme, no podía levantarlo de nuevo, y otros servicios de la máquina fueron cayendo poco a poco. Decidí reiniciarlo y al hacerlo, empezó mi calvario. Me mostraba la pantalla de logado, era capaz de reconocer si la contraseña era o no correcta, pero no terminaba de arrancar. Después de chequear sistema, HD, arrancar modificando el Grub y todo lo que se me ocurrió y no encontrar nada reseñable, logré arreglarlo y recuperar el sistema intacto haciendo lo siguiente:
Reiniciamos el sistema y mantenemos pulsadas Ctrl + Alt + F3 hasta que podemos logarnos en la shell.
Hacemos un ls -ld /tmp. Así obtenemos los permisos del directorio /tmp.Si todo es correcto, debe salir algo parecido a esto:
drwxrwxrwt 15 root root 4096 Aug 22 09:17 /tmp.

En mi caso lo que realmente tenía era:
d——–T 15 root root 4096 Nov 30 04:17 /tmp

Así que lo que tuve que hacer es darle permisos a /tmp (con un chmod tenemos de sobra) y reiniciar. Y todo volvió a la normalidad. El por qué del error, probablemente fueron las actualizaciones, o algún error puntual en la copia de seguridad que dejó el directorio /tmp con permisos cambiados.

Más

En Moodle, cambiar el tamaño máximo del archivo subido en el sitio o en los cursos no es complicado, pues la propia plataforma nos indica los ajustes que hay que modificar en el php.ini y en Apache.

tamano_maximo_sitioPero a veces ocurre que, a pesar de haberse propagado el cambio por toda la plataforma Moodle, el tamaño máximo del archivo subido en las tareas sigue siendo el antiguo (1 MB, 2 MB, etc.). Esto se debe a que en el caso de las tareas este ajuste hay que realizarlo a ese nivel, y para ello hay que acceder a otra parte de Moodle. El menú desplegable tiene un aspecto similar, pero se encuentra en Administración del sitio > Extensiones > Extensiones de tarea > Extensiones de entrega > Archivos enviados. Una vez allí, modificaremos el valor del tamaño máximo de las entregas en el menú desplegable pertinente.

tamano_maximo_tarea

 

 

Más

Recientemente montamos un LAMP con las últimas versiones de ISPConfig, Apache 2 y Mysql, y al probar un desarrollo propio, nos dió este error al intentar subir una imagen pequeña por código:

HTTP request length 132228 (so far) exceeds MaxRequestLen (131072)

Si en ese momento miramos el límite del servidor para subida de imágenes, seguramente ese límite sea mayor que el tamaño de la imagen, por lo que no será ese el problema. ¿Qué hacemos en este caso?

En nuestro caso, y dado que había un IPSConfig, la solución es irnos a

/etc/apache2/mods-available

y editar fcgid.conf, añadiendo «FcgidMaxRequestLen 51200000» o un valor mayor, de esta forma

<IfModule mod_fcgid.c>
  AddHandler    fcgid-script .fcgi
  FcgidConnectTimeout 20
  FcgidMaxRequestLen 51200000
</IfModule>

Y después reiniciamos Apache con la instrucción

/etc/init.d/apache2 restart

 

Más

Si en un Moodle recién instalado, cuando intentamos añadirle un módulo, plugin o plantilla:

  1. se nos queda en blanco la pantalla,
  2. nos da un error de permisos no válidos,
  3. en el error.log de nuestros logs nos encontramos con este error:

[error]  FastCGI: server «/var/www/XXX/cgi-bin/php5-fcgi-*-80-dominio.com» stderr: PHP message: PHP Fatal error:  Uncaught exception ‘invalid_dataroot_permissions’ with message ‘Invalid permissions detected in $CFG->dataroot directory, administrator has to fix permissions.’ in /var/www/XXX/lib/setuplib.php:1278

Lo único que tenemos que hacer es irnos a la carpeta moodledata, y mirar los permisos de las carpetas que están dentro de ésta. Los permisos de estas subcarpetas y sus archivos deben ser de 777 (según recomiendan en Moodle.org).

Si los permisos son los correctos, o no nos da ese error de permisos no válidos, podemos hacer lo siguiente:

  1. quitamos el plugin, plantilla o módulo.
  2. nos logamos y activamos el modo debug en Moodle
  3. volvemos a colocar el plugin, plantilla o módulo a instalar
  4. volvemos a cargar la web. Nos devolverá un error. Lo más probable es que haya un error de tiempo de ejecución demasiado corto.

Para corregir ese error, lo mejor es ir a php.ini y ampliar el parámetro

max_execution_time = 360 

 

Más

Las plataformas de elearning basadas en código abierto serán el centro de atención del próximo evento OpenExpo que se celebrará el próximo martes 11 de junio de 2013 en Madrid.

El evento, que se celebrará en el Centro de Innovación Alvarado (C/ Bravo Murillo, 133 de Madrid) el próximo 11 de junio de 2013 a las 17:30, contará con un máximo de 30 asistentes que podrán aprender y resolver sus dudas sobre las soluciones de elearning open source así como ver las ventajas e inconvenientes de cada una durante las dos horas de duración del evento.

Las plataformas que se analizarán en el evento serán:

  • Dokeos”, con Raúl Hijosa de OpenSistemas
  • Mooc”, con Enrique Sánchez de Soft
  • Moodle”, con Silvia Suria de Esencial Sistemas

Tras estas intervenciones, llegará el turno de una mesa redonda entre ellos en la que discutirán sobre las diferentes soluciones concluyendo los puntos fuertes y débiles de cada una de ellas así como para responder a las preguntas de los asistentes.

La inscripción el evento es totalmente gratuita hasta completar el aforo, si bien además también es posible registrarse para poder ver la emisión en streaming del evento.

¿Qué es OpenExpo?

OpenExpo es un evento mensual sobre tecnologías open source que se celebra en Madrid y Barcelona y que además se emite vía streaming. En él se presentan diferentes soluciones sobre una temática distinta cada mes: ecommerce, ERP, elearning, sistemas operativos…

openexpo

Más

Seguro que más de una vez habeis tenido una web con su certificado SSL, y os ha dado el error de que hay elementos no seguros en ella.

Este error es muy sencillo de corregir y se da cuando en una página que va sobre HTTPS, tiene referencias a elementos HTTP.

Para no tener que revisar cada una de las líneas de nuestro código buscando las referencias erróneas, podemos ir a la web http://www.whynopadlock.com y darle la URL de la página que nos devuelve ese error de elementos no seguros, y nos dará un informe de cada elemento no seguro, incluidas imágenes de la hoja de estilo, enlaces no seguros, etc.

Más

En esta ocasión explicaremos cómo montar campos desplegables (o selects, como querais llamarlos) en formularios en Drupal 7.

Hasta la versión 6, había dos soluciones, o programarlos tú, o montar el módulo Hierarchical Select. En la versión 7, este módulo ya no puede utilizarse para esta versión porque los desarrolladores han abandonado indefinidamente el proyecto. Pero no hay problema, porque hay un nuevo módulo, incluso más completo que el anterior: Conditional Fields for Drupal 7.

¿Cómo utilizamos el módulo? Tiene muchas formas de utilizarse, os explico la más sencilla: creais una taxonomía con los elementos del desplegable principal y una taxonomía por cada desplegable hijo que necesitemos. A continuación, bien en la colección de campos, bien en el propio apartado del módulo, definimos la dependencia:fielddependence1

 

Primero elegimos el desplegable secundario y después el principal. A continuación defines qué comportamiento va a tener el conjunto y pulsas sobre Add dependency. Yo defino siempre que el secundario sea visible cuando el principal tenga el valor… y al darle al botón, elijo qué valor debe tener el principal. Es decir, si en el principal tengo una taxonomía «Periódicos, revistas, libros», y quiero que cuando elija periódicos me muestre un desplegable con la taxonomía «abc, el país, público», pondría como Dependent la taxonomía que tenga «abc, el país, público», y el Dependee será «Periódicos, revistas, libros».

Al darle a Add Dependency, iremos al siguiente apartado:

fielddependence4

 

 

Y aquí elegimos Periódicos del desplegable que nos muestra. Grabamos… y ya tenemos una pareja de selects dependientes.

Más

Probablemente muchos de vosotros habréis tenido dificultades para acceder a los enlaces del footer de Magento. Esto se debe, una vez más, a la particular distribución/dispersión de los archivos en esta plataforma. A grandes rasgos, los enlaces del pie de Magento pueden estar en dos lugares bien diferentes: en un bloque estático del back-end, o repartidos por una serie de archivos XML.

Bloque estático Footer links

Para acceder al contenido de este bloque estático, ingresamos en el back-end de Magento y nos vamos a CMS > Bloques estáticos.

magento - bloques estaticos

Dentro de la lista de bloques aparecerá uno llamado Footer links. Hacemos doble clic sobre su fila para acceder al código HTML que contiene.

magento - footer links

Esto nos llevará a una pantalla que en su parte inferior tiene un editor WYSIWYG que nos permitirá editar el código de los enlaces a nuestro gusto.

Pero no todos los enlaces se encuentran aquí. Probablemente también tengamos que acceder a otros enlaces que se encuentran repartidos en varios archivos XML.

Archivos XML

El número de los archivos implicados puede variar según la versión de Magento, aunque en general suelen ser casi siempre los mismos, y deberemos acceder a ellos por FTP. Su ruta de acceso es app/design/frontend/default/default/layout.

En nuestro caso (nosotros estamos trabajando con la 1.7.0.2), los archivos que hemos tocado son los siguientes:

  • sales.xml
  • catalogsearch.xml
  • catalog.xml
  • contacts.xml

Si lo que queremos es eliminar los enlaces del pie (bien porque queremos prescindir de alguno, bien porque vamos a crearlos manualmente en el editor del back-end que vimos en el punto anterior), deberemos localizar la etiqueta <reference name=”footer_links”> y marcarla (desde su apertura hasta su cierre) como comentario, para desactivarla. Procederemos del mismo modo con todas las etiquetas con el mismo atributo name de estos archivos.

Como comentamos, los archivos a editar pueden variar según el caso, por lo que puede que también aparezcan etiquetas similares en los archivos rss.xml, page.xml, cms.xml y customer.xml.

Más
Instalas un Moodle 2.3.4, importas algunos cursos y los modificas ligeramente, adaptándolos a las nuevas necesidades. Y de repente, al borrar un elemento del curso (etiqueta, chat o cualquier recurso o actividad), nos devuelve el siguiente error:
Detectado un error de codificación, debe ser corregido por un programador: PHP catchable fatal error
Y no nos deja acceder al curso, ni ver nada de él. ¿Cómo lo arreglamos?.
Bueno, está la opción rápida que te saca del apuro: irte a la base de datos de Moodle y localizar la tabla _course. En ella vereis vuestros cursos. Localizais el que os da el error y editais el registro. Sólo tendreis que borrar el contenido del campo sectioncache y lo habreis arreglado.
La opción «para que no de más problemas» es irse al archivo lib/modinfolib.php y sobre la línea 1096, localizar el código


if ((!$this->visible or !$this->available) and
!has_capability('moodle/course:viewhiddenactivities', $modcontext, $userid)) {

$this->uservisible = false;

y sustituirlo por

if ($modcontext != "") {
if ((!$this->visible or !$this->available) and !has_capability('moodle/course:viewhiddenactivities', $modcontext, $userid))
{ $this->uservisible = false; }
}
else
{ $this->uservisible = false; }

 

Más

Primero explicamos brevemente qué es wget. Según la definición de la Wikipedia:

GNU Wget es una herramienta libre que permite la descarga de contenidos desde servidores web de una forma simple.

Una vez lo tenemos claro, vamos a ver cómo instalamos esta herramienta en nuestro Mountain Lion. Lo primero que tenemos que tener instalado en nuestro sistema operativo es el Command Line Tools for Xcode. Para ello necesitamos tener una cuenta de desarrollador (developer) en Apple. Para ello nos damos de alta en Apple’s developer page y descargamos la herramienta. La instalamos como cualquier otro paquete de aplicaciones y comprobamos que funciona. Para comprobarlo, abrimos una ventana de Terminal y escribimos

gcc -v
Si os sale algo parecido a

Using built-in specs.
Target: i686-apple-darwin11
Configured with: {ignore long text…}
Thread model: posix
gcc version 4.2.1 (Based on Apple Inc. build 5658) (LLVM build 2336.9.00)

quiere decir que está todo el paquete de herramientas de Apple instalado correctamente.
Bien, a partir de aquí, seguimos en la ventana de Terminal y escribimos los siguientes comandos:
Primero nos vamos a la carpeta de Descargas, para bajarnos el archivo de instalación de wget:

cd ~/Downloads

Descargamos el paquete

curl -O http://ftp.gnu.org/gnu/wget/wget-1.14.tar.gz

Lo descomprimimos

tar -zxvf wget-1.14.tar.gz

Vamos a la carpeta

cd wget-1.14/

Lo configuramos

./configure --with-ssl=openssl

Hacemos la instalación

make

sudo make install

Y borramos el directorio de instalación

rm -rf ~/Downloads/wget*

Y listo, ya podemos hacer un wget del archivo que necesitemos.

Más

Llega tu cliente y no quiere que le generes un PDF, sino un archivo DOC para abrirlo cómodamente con su Word o herramienta similar. ¿Cómo se hace eso? Muy fácil, este código os genera un archivo con texto dentro y lo descarga a tu equipo.

<?php
header(«Content-type: application/vnd.ms-word»);
header(«Content-Disposition: attachment;Filename=documento.doc»);

echo «<html>»;
echo «<meta http-equiv=\»Content-Type\» content=\»text/html; charset=Windows-1252\»>»;
echo «<body>»;
echo «<b>Mi primer documento</b><br />»;
echo «Aqu&iacute; va todo el texto que querais, en formato HTML</body>»;
echo «</html>»;
?>

 

** El conjunto de caracteres o charset puede ser también UTF-8, si esa es nuestra codificación en la web, claro

Más

Hemos terminado la instalación, aparentemente todo ha ido bien y cuando entramos en la administración de Magento, nos aparece el mensaje: «Your web server is configured incorrectly. As a result, configuration files with sensitive information are accessible from the outside. Please contact your hosting provider».

La solución es sencilla: en el directorio app crearemos una .htaccess y dentro escribiremos:

Order deny,allow
Deny from all

También vereis soluciones en las que os dicen de tocar la configuración de Apache, pero suele ser más fácil y estar a la alcance de todos crear y modificar un archivo .htaccess.

 

 

Más

Cuando afronteis un proyecto en Magento u otra plataforma de comercio electrónico, podeis usar todos los módulos que se os apetezcan, pero cuando llegue la hora de configurar la parte de forma de pago, si os piden configurarlo para un banco, olvidaos de todo e id a los módulos que os ofrecen los chicos de Zhenit. En su web de módulos de pago teneis todo lo necesario para montar el módulo de pago y olvidarse de problemas, incompatibilidades, etc. Y si teneis alguna duda, os atenderán muy amablemente y os guiarán en todo.

El proceso completo es el siguiente, compras el módulo, lo descargas, lo instalas, lo configuras,… y te olvidas.

Más

¿Qué ocurre cuando has hecho una web y una de las capas tiene un posicionamiento absoluto y el resto es relativo y miras la web con Internet Explorer 7 u 8? Pues que tienes casi todas las papeletas de que el orden de las capas no sea el mismo que en el resto de navegadores y se vea un churro, o sea, la capa que debe ir por debajo, resulte que al final tapa a la que debería ir por encima, y no se vea correctamente.

La solución para esto es sencilla, y no es exáctamente lo que cuentan en algunas webs. Yo lo he arreglado en la hoja de estilos para IE poniendo en la capa que agrupa al elemento que está en posicionamiento absoluto (pero que no engloba al elemento que tapa al absoluto) un z-index a 900. Ojo, el truco está en poner ese z-index en la capa relativa que engloba a esa capa en posicionamiento absoluto (por ejemplo, si ocurre en la cabecera, poner ese z-index al div que comprende toda la cabecera), no como pone en muchos sitios, poner el z-index en la capa de posicionamiento absoluto.

A mí me ocurría que la capa de posicionamiento absoluto estaba en la cabecera, y la que se superponía erróneamente estaba en el mega menú.

Ejemplo con posicionamiento correcto:

z-index correcto

 

 

 

 

 

 

 

 

 

Ejemplo con posicionamiento erróneo:

 

 

Más

Una vez que tenemos lista nuestra flamante lista de usuarios a los que le vamos a hacer un mailing y tenemos el contenido del mailing, se supone que sólo tenemos que darle al botón de enviar y listo, ¿no?. Pues realmente no es así. Aparte de la lista de mails, necesitamos tener una forma para que los usuarios puedan darse de baja con comodidad, y una forma alternativa de ver el correo que hemos creado si éste tiene imágenes, porque hay clientes de correo que no descargan las imágenes, y por lo tanto, no se ve el correo.

¿Cómo hacemos esto? Bueno, un correo electrónico con formato HTML es realmente una página en HTML. Podemos colgarla en la web en un sitio e insertar esa url en el correo, de forma que la gente pueda ver el correo en una web.

Vale, tenemos la lista, la forma de darse de baja correctamente y la página HTML. ¿Le damos ya al botón de enviar?. Bueno, tienes que comprobar que las direcciones de correo no están visibles, y que tu servidor te deja enviar de una tacada los tropecientosmil correos que quieres enviar.

Ok, ¿y ahora? Un momento, voy a hacer una prueba a ver cómo se ve mi correo en Outlook, en Thunderbird (uy, hay que corregir algo), en Gmail (anda, se ve mal), en Yahoo (¿por qué se ve así?)… Para que esto no te ocurra, sigue estas directrices, y podrás tener éxito en tu campaña.

De todas formas, nosotros siempre recomendamos el uso de herramientas como PHPList para la correcta gestión de los mailings, para que tú sólo tengas que preocuparte del contenido del mailing. El resto lo gestionará la herramienta. Puedes preguntarnos sin compromiso sobre la herramienta.

 

 

Más
Esta web utiliza cookies propias para su correcto funcionamiento. Puede consultar nuestra política de cookies, política de privacidad y aviso legal. Al hacer clic en el botón Aceptar, acepta el uso de estas tecnologías y el procesamiento de tus datos para estos propósitos. Configurar y más información    Configurar y más información
Privacidad