Mostrando entradas con la etiqueta webmaster. Mostrar todas las entradas
Mostrando entradas con la etiqueta webmaster. Mostrar todas las entradas

viernes, 18 de septiembre de 2020

Servidor VPS básico, sencillo y gratis

En woomhost.com tenemos además de otros planes de web hosting dos tipos de servidores virtuales disponibles para usar de forma indefinida y totalmente gratis. Tienen unas prestaciones justas pero para según que proyectos pueden resultar adecuados.


Más información: https://www.woomhost.com/vps-hosting.php

Si lo preferís podéis revisar otros proveedores de servicios VPS entre los siguientes:

Espero que os resulten útiles.


lunes, 4 de febrero de 2013

RAM Disk para Windows, que es y que aporta

RAM Disk es una tecnología que nos permite crear una unidad de disco virtual en la memoria RAM y trabajar con ella como si de un disco duro normal se tratara. Solo que a velocidades brutales, impensables para un disco duro convencional o incluso un SSD. 

Para hacernos una idea de las ventajas en rendimiento de las que estamos hablando, simplemente hay que decir que un RAM Disk multiplica por 10 la velocidad de un SSD de última generación.

Ejemplo de velocidad de un SSD (SANDISK Extreme)

Velocidad de un RAM Disk (Memoria CORSAIR Vengeance DDR3-1600)
Test realizado usando crystalmark



Este software se puede usar en servidores web Windows Server por ejemplo para cargar todo un sitio web en RAM y de esta forma acelerar dramáticamente el rendimiento del sitio y alargar la vida de los discos duros o mejorar el rendimiento y bajar el degradado de discos SSD. Aunque también es adecuado para estaciones de trabajo.

Aunque en principio, generalizando y simplificando mucho, suele ser recomendable para la mayoría de sistemas Windows con más de 8 GB de memoria RAM instalada, ya que raramente se suele usar toda ella durante el trabajo y de esta forma se le da un aprovechamiento mejor a la misma. Aunque cada uno puede ver cuanta memoria usa habitualmente en su sistema simplemente usando el Administrador de tareas de Windows y echando un vistazo de vez en cuando cuando el equipo esté trabajando y a partir de ahí decidir si puede dedicar parte de la memoria RAM a este disco o no.

Lo aconsejable es crear una unidad RAM y desplazar a ella los archivos temporales del sistema, navegador y otros programas que hagan uso intensivo del disco duro. Sobre el archivo de paginación de Windows hay opiniones controvertidas sobre si meterlo en RAM o no, y todas ellas con bastante sentido por lo que lo mejor es que cada uno se informe y decida por si mismo.

lunes, 6 de agosto de 2012

Reindexar Magento de forma manual desde el shell


Magento, desde el panel de control, en ocasiones da problemas a la hora de indexar las bases de datos grandes.

Con Putty en el shell de linux podemos hacerlo de forma manual, para ello simplemente deberemos teclear:

php /home/admin/public_html/.magento/shell/indexer.php reindexall

Paso a paso nos dará los mensajes de la confirmación de la reindexación
Product Attributes index was rebuilt successfully
Product Prices index was rebuilt successfully
Catalog Url Rewrites index was rebuilt successfully
Product Flat Data index was rebuilt successfully
Category Flat Data index was rebuilt successfully
Category Products index was rebuilt successfully
Catalog Search Index index was rebuilt successfully
Stock status index was rebuilt successfully

Si queremos programar una tarea con cron para que realice esto de forma periódica podemos encontrar más información en este tutorial:  http://www.yireo.com/tutorials/magento/magento-administration/663-magento-14-cronjobs 

lunes, 30 de julio de 2012

Migrar una base de datos grande entre dos servidores sin usar phpMyAdmin

En ocasiones necesitamos importar bases de datos con un gran volumen de datos a un nuevo servidor. Si con phpMyAdmin (que suele ser la forma más cómoda) tenemos problemas por su tamaño o por cualquier otro motivo,  podemos usar el método alternativo que a continuación voy a detallar.



En primer lugar haremos una copia de la base de datos original desde el shell con el siguiente comando:

mysqldump -h localhost -u usuario -pcontraseña basededatos > archivodesalida.sql

Luego si queremos podemos comprimirlo con el siguiente comando:

gzip archivodesalida.sql.gz

Luego descargaremos el script bigdump y lo descomprimimos en el raiz de nuestro sitio web

http://www.ozerov.de/bigdump/ 

Crearemos una nueva base de datos, nuevo usuario y nueva contraseña en el servidor nuevo y anotaremos esos datos para usarlos a continuación.

Editamos el archivo bigdump.php y lo configuramos al gusto. Generalmente suele ser necesario cambiar las siguientes variables del archivo con nuestros datos:

$db_server   = "localhost";
$db_name     = "basededatosnueva";
$db_username = "usuario";
$db_password = "contraseña";   


$linespersession  = 3000;
$delaypersession  = 100; 


$db_connection_charset = 'utf8'; 

Por último subimos a nuestro nuevo servidor la base de datos mediante ftp o como sea en la misma carpeta que está bigdump.php y lo ejecutamos accediendo a la página:

http://www.tusitio.com/bigdump.php

Y desde la página que se nos abrirá ya podremos cargar la antigua base de datos en nuestro nuevo servidor.

Con estos sencillos pasos podemos migrar cualquier base de datos sin tener que usar phpmyadmin

miércoles, 11 de abril de 2012

¿Tienes problemas con la caché de PHPList?

Cuando enviamos un mailing conteniendo html cargado desde una página web ( usando [URL:http://website/file.html] en el contenido del mensaje ) podemos tener problemas si no tenemos en cuenta que PHPList realiza una copia en su caché del primer archivo que usamos y la mantiene  el tiempo establecido en la variable 'REMOTE_URL_REFETCH_TIMEOUT'

Por lo que si por cualquier motivo lo modificamos e intentamos reenviar el nuevo, el sistema seguirá usando el primer archivo hasta que haya pasado el tiempo definido en la variable que se establece en el archivo config.php

Para modificar los parámetros por defecto, simplemente buscaremos en el archivo config.php de nuestra instalación de PHPList la línea:
define('REMOTE_URL_REFETCH_TIMEOUT',3600);

Y reemplazaremos los 3600 segundos por el tiempo que consideremos oportuno.

miércoles, 15 de febrero de 2012

Magento: Borrar Custom Admin URL si nos equivocamos al poner la URL

Si nos equivocamos al poner la URL de administración personalizada, ya no podremos acceder al panel de control y por lo tanto no podremos corregirla. Por lo que nos encontraremos con que hemos perdido por completo el acceso a la administración de la tienda.

Este problema se soluciona de una forma muy sencilla. Simplemente accederemos a la base de datos, con phpMyAdmin por ejemplo, y buscaremos en la tabla core_config_data el campo que contiene el path web/secure/base_url y lo editaremos cambiando el valor por la URL correcta.

Luego, en el sistema de ficheros donde está instalado Magento, buscaremos la carpeta de la caché /magento/var/cache/ y borraremos todos los archivos que contiene.

Luego ya podremos acceder al panel de control con la URL normal.

Nota: Esto funciona en versiones posteriores a la 1.4.0.0.

Para versiones anteriores en vez de modificar el campo web/secure/base_url en la tabla core_config_data tendremos que borrar los siguientes campos:
admin/url/use_custom 
admin/url/custom 
web/secure/base_url 
web/unsecure/base_url 

Espero que esta información le sea útil a alguien...

jueves, 26 de mayo de 2011

Optimizar MySQL para Magento en XAMPP

El archivo de configuración de MySQL en XAMPP for Windows lo podemos encontrar en la ruta "\xampp\mysql\bin\my.ini"

Basandonos en las recomendaciones que podemos encontrar en el blog oficial de Magento unos parámetros adecuados serían los siguientes:

key_buffer = 256M
max_allowed_packet = 32M
table_cache = 256
sort_buffer_size =2M
net_buffer_length = 64K
read_buffer_size = 2M
read_rnd_buffer_size = 1M
myisam_sort_buffer_size = 32M

Cambiar la forma en que Magento guarda la sesión

Para cambiar la forma en que magento guarda la sesión después de haberlo instalado tenemos que editar el archivo "magento\app\local.xml"

Para que se guarde en base de datos deberá tener lo siguiente:
<session_save><![CDATA[db]]></session_save>

Y para que se gurarde en ficheros:
<session_save><![CDATA[files]]></session_save>

Generalmente el mejor rendimiento lo obtendremos si se guarda la sesión en base de datos pero esto puede no ser válido para según que configuraciones de servidor. Lo recomendable es realizar pruebas de performance personalizadas. 

Blogger: Como mostrar fragmentos de código correctamente

El editor WYSYWG de Blogger está muy limitado y no tiene la posibilidad de incluir fragmentos de código de una forma cómoda y que luego estos se vean de forma correcta.

Para esto hay cientos de soluciones, pero las que más me han gustado han sido las siguientes:


  1. Usar una página web para generar el código que luego incluiremos en la edición HTML de nuestra entrada del blog.
    Un par de sitios interesantes para esto son:
    http://quickhighlighter.com/
    http://www.simplebits.com/cgi-bin/simplecode.pl

  2. Usar un script como SyntaxHighlighter

  3. O modificar la plantilla añadiendo un estilo para esto. Como por ejemplo el que se explica en este otro blog (chanflee.com) y que básicamente requiere modificar la plantilla que usamos añadiendo justo antes de:  ]]></b:skin> lo siguiente:
    .code {color: #006AB0; border : 1px solid #DADADA;padding : 5px 5px;font-family : Consolas, "Courier New", Courier, mono, serif;font-size : 12px;background-color : #fAfAfA; width : 90%;overflow : auto;margin : 10px 0 10px 10px; border-left : 20px solid #DADADA;max-height : 500px;min-height : 16px;line-height : 16px;}
    .code:hover {background-color : #f3f3f3;}
    y que luego podremos llamar cada vez que lo requiramos según lo siguiente:
    <div class="code"><br />TEXTO O CODIGO AQUI<br /></div>

miércoles, 25 de mayo de 2011

Magento - Optimizar Apache para aumentar la velocidad

En el archivo de configuración de apache "\apache\conf\httpd.conf" tenemos que asegurarnos de que se carga el módulo mod_expires.so y mod_deflate.so por lo que si lo siguiente aparece comentado lo tenemos que descomentar quitando las almoadillas.



  1. LoadModule expires_module modules/mod_expires.so
  2. LoadModule deflate_module modules/mod_deflate.so


Luego en el servidor virtual "\apache\conf\extra\httpd-vhosts.conf " deberemos aplicar esta configuración: 

  1. # Turn on Expires and set default to 0
  2.                 ExpiresActive On
  3.                 ExpiresDefault A0
  4.                 # Set up caching on media files for 1 year (forever?)
  5.                         ExpiresDefault A29030400
  6.                         Header append Cache-Control "public"
  7.                 # Set up caching on media files for 2 weeks
  8.                         ExpiresDefault A1209600
  9.                         Header append Cache-Control "public"
  10.                 # Set up 1 week caching on commonly updated files
  11.                         ExpiresDefault A604800
  12.                         Header append Cache-Control "proxy-revalidate"
  13.                 # Force no caching for dynamic files
  14.                         ExpiresActive Off
  15.                         Header set Cache-Control "private, no-cache, no-store, proxy-revalidate, no-transform"
  16.                         Header set Pragma "no-cache"


En cuanto reiniciemos el servidor ya tendremos el módulo cargado y funcionando en nuestro servidor virtual de apache.

Luego también es recomendable activar KeepAlive lo cual podemos hacer incluyendo en la sección correspondiente del servidor virtual que encontraremos en el archivo "\apache\conf\extra\httpd-vhosts.conf " las siguientes lineas:

  1. KeepAlive On
  2. KeepAliveTimeout 2

Fuente: http://www.gxjansen.com/101-ways-to-speed-up-your-magento-e-commerce-website/

Magento - Optimizar .htaccess para aumentar la velocidad

La configuración aconsejada  en el archivo .htaccess para maximizar la velocidad de nuestra tienda online es la siguiente:


############################################

## enable resulting html compression


php_flag zlib.output_compression on





############################################

## enable apache served files compression

## http://developer.yahoo.com/performance/rules.html#gzip


# Insert filter on all content

SetOutputFilter DEFLATE

# Insert filter on selected content types only

AddOutputFilterByType DEFLATE text/html text/plain text/xml text/css text/javascript


# Netscape 4.x has some problems...

BrowserMatch ^Mozilla/4 gzip-only-text/html


# Netscape 4.06-4.08 have some more problems

BrowserMatch ^Mozilla/4\.0[678] no-gzip


# MSIE masquerades as Netscape, but it is fine

BrowserMatch \bMSIE !no-gzip !gzip-only-text/html


# Don't compress images

SetEnvIfNoCase Request_URI \.(?:gif|jpe?g|png)$ no-gzip dont-vary


# Make sure proxies don't deliver the wrong content

Header append Vary User-Agent env=!dont-vary






############################################
## Add default Expires header
## http://developer.yahoo.com/performance/rules.html#expires

ExpiresActive On
ExpiresDefault "access plus 1 month"





Deberemos de asegurarnos que los parámetros de nuestro archivo .htaccess se corresponden con los anteriores. Estos parámetros son válidos al menos para la versión 1.5.0.1 de Magento

Apache Friends olvidaron incluir eAccelerator en su última versión de XAMPP for Windows 1.7.4

Si hemos instalado la última versión de XAMPP para Windows y no conseguimos activar eAcelerator es por la sencilla razón de que por algún error de bulto se les olvidó incluir la dll en XAMPP 1.7.4.

Lo cierto es que todas las versiones de este conjunto de aplicaciones que vengo usando desde hace más de 5 años tienen siempre sus peros...

Podemos descargar el dll necesario pinchando aquí y luego para instalarlo solo lo tenemos que copiar en la carpeta xampp\php\ext\

Y para activar eAccelerator hay más información en otra entrada de este blog.

martes, 24 de mayo de 2011

XAMPP - Activar eaccelerator para mejorar el rendimiento

Un pequeño truco que hará aumentar el rendimiento de nuestro servidor XAMPP de forma importante es activar eaccelerator.



Para ello solo tenemos que quitar el punto y coma inicial (descomentar) del archivo "php.ini" la siguiente linea:

;zend_extension = "\xampp\php\ext\php_eaccelerator.dll"

Después de reiniciar el servidor ya tendremos activada esta cache para scripts PHP que puede mejorar el rendimiento de nuestro sitio web de forma notable.  Para comprobarlo solo tenemos que verificar en la información del servidor que aparece eAccelerator tal y como se muestra en esta captura.



Nota: Para la versión 1.7.4 de XAMMP para Windows tendremos que tener en cuenta que hay un problema ya que los chicos de Apache Friends "olvidaron" poner el archivo php.eacelerator.dll. Puedes encontrar más información en esta otra entrada de este mismo blog.

jueves, 19 de mayo de 2011

Navegación por capas en Magento

Si queremos que los productos aparezcan agrupados por precios, fabricantes o cualquier otro atributo que definamos para ello deberemos tener en cuenta lo siguiente:


  1. La categoría en la que queremos que se agrupen los productos debe tener la cualidad: "Is Anchor" en Sí
  2. El atributo que queramos usar como filtro debe ser de tipo "Desplegable" o "Selección múltiple" y tener la propiedad para el frontend de "Filtrable con resultados"
Cumpliendo estos requisitos y si la plantilla que usamos lo permite ya tendremos los productos agrupados en el frontend de Magento.

martes, 10 de mayo de 2011

phplist: Añadir de forma manual usuarios a la lista negra o "blacklist"

La aplicación para la gestión de listas de correo phplist tiene en todas sus versiones una carencia importante que es la de poder incluir en su blacklist de forma manual direcciones de email.

Oficialmente eso se puede hacer desde el formulario de des-suscripción del usuario pero el sistema notifica al usuario la baja por email y esto puede no interesar al administrador de la lista para determinados usuarios de tipo competencia, etc.

También hay que tener en cuenta otra carencia importante que es el que no se puedan añadir direcciones en masa a la lista negra, ya que solo hay la posibilidad de hacerlo una a una.

Con esta pequeña modificación del archivo /admin/massunconfirm.php podemos hacer que desde el menú de gestión de usuarios manage users > mass uncorfirm users se pueda además de des-confirmar usuarios incluirlos en la lista negra.

Hay que tener en cuenta que según la configuración del sistema, pueden tardar un tiempo en aparecer en la blacklist los usuarios, por lo que la revisión la deberemos hacer pasados unos minutos.

Esto es lo que tendrá que contener el archivo /admin/massunconfirm.php

<?phprequire_once dirname(__FILE__).'/accesscheck.php';
//userlib for blacklist functioninclude_once dirname(__FILE__).'/commonlib/lib/userlib.php';$massblacklist = $_POST["massblacklist"];
if (!$_SESSION['logindetails']['superuser']) {  print $GLOBALS['I18N']->get('Sorry, this page can only be used by super admins');  return;}
if ($_POST['unsubscribe']) {  $emails = explode("\n",$_POST['unsubscribe']);  $count = 0;  $unsubbed = 0;  $blacklisted = 0;     foreach ($emails as $email) {    $email = trim($email);    $count++;
   if ($massblacklist == true) {       //added user to the blacklist if massblacklist checkbox is true;       addUserToBlackList($email, 'Admin Blacklisted');       $blacklisted++;         }      else {      Sql_Query(sprintf('update %s set confirmed = 0 where email =                  "%s"',$GLOBALS['tables']['user'],$email));    $unsubbed += Sql_Affected_Rows();   }
  }  printf($GLOBALS['I18N']->get('All done, %d emails processed, %d emails marked unconfirmed, %d emails blacklisted<br/>'),$count,$unsubbed,$blacklisted);  return;}?>
<form method=post action=""><h1><?php echo $GLOBALS['I18N']->get('Mass unconfirm email addresses')?></h1><p><?php echo $GLOBALS['I18N']->get('Paste the emails to mark unconfirmed in this box, and click continue')?></p><p><?php echo $GLOBALS['I18N']->get('MassBlacklist:')?><input type="checkbox" value="massblacklist" name="massblacklist[]"></p><input type=submit name="go" value="<?php echo $GLOBALS['I18N']->get('Continue')?>"><br/><textarea name="unsubscribe" rows=30 cols=40></textarea></form>


Esta modificación ha sido probada y funciona correctamente al menos en las siguientes versiones de esta aplicación:

  • phplist 2.10.9 
  • phplist 2.10.10
  • phplist 2.10.11
  • phplist 2.10.12
  • phplist 2.10.13