Todo Sacoroto

Mover un joomla de carpeta o directorio al raiz de tu sitio

HRtuWeb No Comments

En ocasiones nos vemos obligados a desarrollar nuestro cms en una carpeta o subdominio para que la web anterior no deje de estar activa mientras trabajamos en la nueva.

Vamos a explicar, brevemente, como mover todo al raíz del dominio.  En el caso de joomla resulta muy sencillo. Antes de comenzar, como siempre, recomendamos realizar una copia de seguridad y dejar el raíz limpio para que no se mezclen los archivos nuevos con los anteriores.

Suponemos que el joomla esta instalado en /joomla/ y lo queremos pasar al raíz:

  1. Copiamos o movemos todos los archivos de tu sitio web Joomla del subdirectorio en el directorio raíz mediante una herramienta FTP o, si el panel de control del hosting nos lo ofrece, con el gestor de archivos.
  2. Buscamos  el archivo configuration.php en el directorio raíz  y lo editamos con un editor de texto como el edit, gedit, Textedit o el que nos proporcione el panel.
  3. Buscamos la variable var $log_path = ‘/home/username/tudominio.tld/public_html/joomla/logs’; y la modificamos por var $log_path = ‘/home/username/tudominio.tld/public_html/logs’;
  4. Localizamos la variable var $live_site = ‘http://www.tudominio.tld/joomla’;  y la modificamos por  var $live_site = ‘http://www.tudominio.tld/;.
  5. Buscamos la variable var $ftp_root = ‘public_html/joomla)’; y  la modificamos por var $ftp_root = ‘public_html’;
  6. Iniciamos sesión en el administrador de joomla con los datos de usuario y contraseña,  vamos a “Herramientas/Limpiar caché” y borramos todos los archivos de caché.

En cada caso “tudominio.tld” es el nombre de tu dominio, “username” sera el usuario de tu hospedaje o servidor y “joomla” corresponde con tu subcarpeta donde tengas instalado el joomla.

Crear iso compatible con windows desde Mac

HRtuWeb No Comments

En ocasiones nos podemos encontrar con la necesidad de crear una imagen ISO compatible con sistema windows o pc desde nuestro mac.  Vamos a ver como realizar esto con las herramientas que trae mac por defecto. La prueba la hemos realizado con Yosemite pero las herramientas vienen en las versiones anteriores.

Creamos una carpeta, por ejemplo, en el escritorio para tenerla a mano.  En esta carpeta vamos a meter todo el contenido que queremos grabar en nuestra imagen ISO para windows.

Nos vamos a  Utilidad de Discos y en el menú Archivo seleccionar “Nueva” > “Imagen de Disco a partir de carpeta”. Elegimos la carpeta contenedora y en “Formato de la imagen” DVD/CD maestro, “Encriptación” ninguna. Asignamos nombre y guardamos en el escritorio.

Una vez generada la imagen, la guarda con extensión .cdr, nos vamos al terminal y tecleamos:

cd ~/Desktop (el símbolo ~ suele salir usando la tecla alt y ñ del teclado de mac)

Estos nos coloca en el Escritorio del usuario. Si la imagen .cdr esta guardada en otra ubicación tenemos que usar el comando cd hasta llegar a dicha ubicación. Solo nos queda lanzar esta linea desde el terminal:

hdiutil makehybrid -iso -joliet -o imagen.iso imagen.cdr

No te olvides de cambiar imagen.iso y imagen.cdr por el nombre real de tu imagen. Después de un poco de tiempo, dependiendo el tamaño de la ISO, ya tendremos todo listo y nuestra imagen ISO compatible con windows y mac creada.

 

WordPress, limite elementos de los menús.

HRtuWeb No Comments

Usando wordpress nos podemos encontrar, si usamos menús con muchos subelementos, que llegado a un numero determinados de elementos ya no podemos guardar mas. El valor máximo depende, pero nos hemos encontrados casos que a partir de unos 70 ya comienza a dar estos fallos.

Esto, en la mayoria de las ocasiones y como podemos encontrar por internet, se soluciona aumentado o pidiendo a los administradores del servidor u hospedaje, que nos aumenten unos valores en nuestro php.ini.

suhosin.request.max_vars = 9400
suhosin.post.max_vars = 9400

Podemos probar con este valor o con alguno superior hasta que se solucione nuestro problema. Como hemos mencionado en otras ocasiones, sobre todo en servidores compartidos, es posible que no tengamos acceso al php.ini, por lo que tenemos que solicitar que lo modifiquen.

Otra opción seria tener ese menú divido en varias partes. Si un elemento de menú tiene mucho subelementos, podríamos crear un menú que cargue esos subelementos y que se muestre desde un widget de menú.

Imágenes con fecha de caducidad en la caché

HRtuWeb No Comments

La velocidad de carga de la web es uno de los parámetros de posicionamiento que debemos tener en cuenta para SEO. Por esto usar la cache del navegador es  importante, tanto para SEO como para mejorar la experiencia de los visitantes.

Cuando el navegador usa la cache con  las imágenes, o cualquier otro elemento,  lo que está haciendo es descargarlas en nuestro ordenador, físicamente,  este contenido. Ademas de la información que descarga va añadiendo una cabecera con el tiempo de vida TTL o fecha de expiración. De esta manera, cuando el usuario vuelve a esta determinada página, los elementos que hemos especificado que se cacheen se tomaran del equipo del cliente y no de la web, mejorando la velocidad, reduciendo el consumo de ancho de banda,  haciendo que el proceso de carga sea mas rápido.

Vamos a especificar cuando expiran las imágenes, css,  javascript, etc…

Los servidores con apache suelen traen el mod_expires instalado y activo, de manera que no habrá que tocar nada en este sentido, sólo indicar las directivas de expiración en el archivo .htaccess:

<ifmodule mod_expires.c>
ExpiresActive On
ExpiresDefault A3600
<filesmatch ".(jpg|JPG|gif|GIF|png|css|ico|js)$">
ExpiresDefault "access plus 7 day"
</filesmatch>
</ifmodule>

Esto lo podemos complicar todo lo que queramos, por ejemplo, especificando diferentes caducidades para cada grupo de archivos:

<ifmodule mod_expires.c>
 ExpiresActive On
 ExpiresDefault A3600
 <FilesMatch ".(gif|jpg|jpeg|png|swf)$">
 # dos semanas
 ExpiresDefault A1209600
 Header append Cache-Control "public"
 </FilesMatch>
 <FilesMatch ".(xml|txt|html)$">
 # dos horas
 ExpiresDefault A7200
Header append Cache-Control "public"
</FilesMatch>
<FilesMatch ".(js|css)$">
# tres dias
ExpiresDefault A259200
Header append Cache-Control "public"
</FilesMatch>
</ifmodule>

Tenemos que tener en cuenta que el valor de ExpiresDefault  viene en segundos, por lo que tenemos que calcular este valor dependiendo del tiempo que deseemos especificar. En caso de que no tengamos configurado el mod_expires en nuestro apache, no nos dará ningún error, aunque no conseguiremos especificar una fecha de cacheo.

habilitar mod_rewrite apache

En caso de que el mod_expires no esté activo en el apache, normalmente en servidores compartidos no podremos modificar esto y tendremos que solicitar a los administradores que lo activen.  En caso de tener acceso al servidor por consola y la configuración del mismo, habrá que ir a: /etc/httpd/conf/httpd.conf y descomentar o introducir la linea correspondiente para activar dicho módulo en vuestro servidor.

oscommerce 2.2 cambios mínimos de seguridad.

HRtuWeb No Comments

Hay algunos  bugs en  oscommerce 2.2 que pueden afectar gravemente a la seguridad de nuestra tienda online. Modificando la url del admin se pueden ver las cuentas de correo de los usuarios registrados. Y usando el filemanager  pueden escribir en nuestros archivos.

Con un par de cosas paramos en seco estos ataques.

Renombrar la carpeta admin por algo como Fd43ad y ocultarlo a los buscadores y robots con ROBOTS.TXT, para  que los bots no lo encuentre.

Para que la página puede seguir encontrando la carpeta hay que cambiar en el Fd43ad/includes/configure.php

 define('DIR_WS_ADMIN', '/tienda/catalog/Fd43ad/');
 define('DIR_FS_ADMIN', '/web/htdocs/www.lalala.com/home/tienda/catalog/Fd43ad/');

Puede que en vuestro caso solo salga /tienda/, o las rutas cambien algo ya que depende del hospedaje y donde lo tengas instalado, pero lo que importa es quitar admin y poner otro nombre diferente como en el ejemplo Fd43ad.

Borrar el archivo catalog/admin/filemanager.php  y  su mención en admin/includes/boxes/tools.php borrando la linea ‘<a href=”‘ . tep_href_link(FILENAME_FILE_MANAGER) . ‘” class=”menuBoxContentLink”>’ . BOX_TOOLS_FILE_MANAGER . ‘</a><br>’ .

Borrar el archivo el admin/define_language.php y  la linea que le menciona en admin/includes/boxes/tools.php

Las carpetas  tienen que ser con permisos 755 y los archivos 644 aunque puede variar según que hosting tengamos. Los archivos de Fd43ad/includes/configure.php e includes/configure.php como mucho 444 o 400.

Hay otras maneras que se metan, pero instalando http://addons.oscommerce.com/info/5752 y http://addons.oscommerce.com/info/6044 tenemos el 95% hecho.

Instalar Windows 7 desde un disco USB

HRtuWeb No Comments

Vamos a suponer el siguiente escenario:

Disponemos de una instalación de Windows XP o Windows Vista y de un disco USB de 4 GB (o más, al menos tan grande como la imagen de Windows 7, que es de 2.5 GB en el caso de la de 32 bits).

Lo primero es conectar el disco USB a nuestro ordenador. Una vez detectado este, abrimos la línea de comandos (Inicio » Ejecutar » cmd) y, desde ella, ejecutamos la aplicación diskpart. Aquí debemos tener cuidado, pues vamos a jugar con las particiones y los discos y, si nos equivocamos, podemos eliminar todos nuestros datos.

La aplicación diskpart nos permite crear particiones en nuestros discos. No es la única, pero es suficientemente sencilla y está disponible en ambos sistemas. Una vez arrancada, debemos comprobar cual es el nuestro disco USB con la orden list disk, que nos mostrará una lista de todos los conectados a nuestro ordenador.

 
DISKPART> list disk
Disco ### Estado Tamaño Libre Din. Gpt
———— ————— ———- ———- —- —-
Disco 0 En pantall xx GB 0 B
Disco 1 En pantall xxx MB xxx MB (corresponderá con los mb de nuestra memoria usb)

En este caso es el disco 1, como vemos por la capacidad que tiene. Una vez identificado lo seleccionamos con:

select disk 1

Eliminamos todo lo que hay en él con la orden: (muy importante estar seguros de eliminar el disco usb y no el principal u otro importante del equipo)

clean

 Una vez que tenemos el disco vacío, procedemos a crear una partición  y la activamos:

create partition primary
select partition 1
active

Hecho esto  ya podemos formatearlo directamente y le asignamos un nombre. Por ultimo salimos:

format fs=fat32
assign
exit

 Ya estamos listos para copiar todos los datos al USB. Para ello, debemos montar la imagen ISO como otra unidad, lo cual podemos hacer con alguna aplicación como Virtual CD-ROM, Daemon Tools o MagicIso.

Vamos a suponer que la unidad de DVD es la D: y la unidad del disco USB es la E: Lanzamos la siguiente orden:

 xcopy d:\*.* /s/e/f e:\

Si las unidades fueran otras cambiamos las letras de la unidad por las correctas en cada caso. Con este método ya tenemos nuestro usb  con la imagen de windows 7.

Fatal error al acceder al Plugin Manager

HRtuWeb No Comments

Hace unos dias, a la hora de intentar modificar unos de los plugin que tenia en mi Joomla 1.5 me tope con ese error:

Fatal error: Access level to PluginsModelPlugins::_getList() must be public (as in class JModel) in 
/administrator/components/ com_plugins/ models/ plugins.php on line 20

Por lo que puede ver en varios foros en ingles, el error es ocurre por un fallo en una de las actualizaciones que desabilita el manager de plugin, quedan sin acceso desde el panel de administración de nuestro Joomla. La solucione es editar uno fichero y cambiar una de las lineas. Es sencillo, solo debemos fijarnos un poco para no modificar nada que no debamos.

Solo tenemos que buscar la cadena “function _getList” y cambiar o modificar “protected” por “public”, de esta forma volveremos a tener acceso al administrador de plugin de nuestro joomla. El fichero a modificar es el que se nos indica en el error, linea 20.
Nos vemos…

Cambiar el tamaño logo cabecera prestashop

HRtuWeb No Comments

En ocasiones queremos usar un logo mas grande en la cabecera de Prestashop en nuestra plantilla por defecto y nos encontramos que no es posible.  Aunque subamos ficheros de otros tamaños estos no los coge correctamente, se cortan o se desplazan.  Aqui os dejamos un pequeño tutorial para hacerlo, probado en prestashop 1.5.x con la plantilla por defecto.

Sube tu logo del tamaño que necesites o creas que pueda encajar mejor. Una vez lo tengas tienes que ir al fichero global.css y editarlo:

/sacoroto.net/themes/default/css/global.css/ (la ruta varia según tu dominio y la ruta donde lo tengas instalado)

Busca esta linea dentro y reduce los pixeles del top:

#header_logo { position: absolute; top: 20px; z-index: 1; }

Luego busca este otro fichero y edítalo:   modules/blocktopmenu/css/superfish-modified.css

Buscamos esta linea y  añade un padding-top:

.sf-contener {
clear: both;
}

Quedaría de esta forma (los 40px son aproximados, puedes calcular el valor que mejor se adapte a tu logo)

.sf-contener {
clear: both;
padding-top: 40px;
}

Esperamos que te sirva y puedas poner tu logo correctamente. Recuerda que en hrtuweb te gestionamos y diseñamos tus webs.

Fatal error: Allowed memory

HRtuWeb No Comments

Uno de los errores mas habituales después de actualizar joomla  o wordpress o a la hora de hacer nuevas instalaciones es este:

Fatal error: Allowed memory size of 33554432 bytes exhausted (tried to allocate 7680 bytes)

Esto ocurre por que la nueva versión instalada consume mas memoria de la que se le asigna en nuestro sistema. Esto tambien puede ocurrir despues de instalar algun plugin nuevo en nuestro wp.

Solución:

Lo único que hay que hacer es editar el fichero php.ini

Modificar la linea memory_limit = 32M  y cambiar el valor por 64M

Si se trata de un servidor propio o uno donde tengamos acceso por ssh, seguramente tendremos acceso a este fichero sin problema. Debemos editar el del usario afectado o el valor global para todo el servidor.  En todo caso y si no estamos seguros de lo que hacemos, es mejor que esto nos lo realice el administrador del sistema.

En servidores compartidos no siempre tenemos acceso al fichero de configuración del php, el php.ini, por lo que tendremos que pedir al administrador del sistema que nos aumente este limite para que todo funcione con normalidad de nuevo.

Este mismo error se puede presentar en otras configuraciones en php como, joomla, prestashop, moodle o, incluso, en programaciones propias. La solución siempre es la misma. No se recomienda aumentar a mas de 256 Mb este valor.

Cambiar wordpress de directorio o dominio y no morir en el intento.

HRtuWeb No Comments

wordpress_logoMuchas veces nos encontramos con la necesidad de cambiar nuestro wordpress de dominio o de directorio, ya sea por usar un nuevo dominio, mover de un subdirectorio al principal, haber realizado el desarrollo en nuestro equipos (localhost) o por cualquier otro motivo.

Antes de nada, y como recomendación general para cualquier modificación importante, recomendamos realizar (siempre) una copia de seguridad o backup completo, sin olvidar la base de datos.

Primer paso y el mas sencillo:

Tras hacer la copia de seguridad  tenemos que modificar el archivo wp-config.php. Este fichero se encuentra en la raíz de la instalación de WordPress. Lo abrimos y buscamos las siguientes líneas:

define('DB_NAME', 'basededatos');
define('DB_USER', 'usuario');
define('DB_PASSWORD', 'contraseña');
define('DB_HOST', 'Localhost');

Debemos sustituir los valores “basededatos, usuario, contraseña y servidor” por los nuevos valores. Si es un cambio de domino o de directorio dentro del mismo servidor, normalmente, estos valores no varían y no es necesario modificarlos.

Modificar o  actualizar las urls de WordPress

WordPress no se puede mover a otra ruta o cambiar de dominio directamente, ya que las rutas siguen almacenadas con las antiguas url en la base de datos. Por lo que este paso es fundamental.  En muchos artículos que he visto dicen que con ir al administrador y modificar en la configuración la url de la web y la del blog por los nuevos valores ya servía, pero esto no es cierto.

Es necesario editar o modificar las siguientes tablas dentro de la base de datos. Esto lo puedes hacer editando el fichero .sql antes de volcar el backup o, directamente, desde el servidor con phpmyadmin. En esta guía vamos a explicarlo usando phpmyadmin. Las tablas a modificar son:

wp_options
wp_posts
wp_postmeta

Las entradas son muchas, miles dependiendo de lo desarrollado que tengamos el wordpress. Por lo que debemos lanzar estos comandos de mysql:

UPDATE wp_options
SET option_value = REPLACE(option_value,'dominio_viejo','dominio_nuevo');

UPDATE wp_posts
SET post_content = REPLACE(post_content,'dominio_viejo','dominio_nuevo');

UPDATE wp_posts
SET guid = REPLACE(guid,'dominio_viejo','dominio_nuevo')
UPDATE wp_postmeta
SET meta_value = REPLACE(meta_value,'dominio_viejo','dominio_nuevo');

 

Hecho!!

Normalmente con esto ya debería funcionar con normalidad tu wordpress en la nueva ruta o dominio. En ocasiones, dependiendo de los plugin que uses o los themes, es necesario ajustar alguna ruta mas. Para estar seguro que el cambio está realizado completamente, puedes lanzar una búsqueda desde phpmyadmin del antiguo dominio o el antiguo directorio y, en caso de encontrar alguno, modificarlo manualmente.