Archivo de la categoría: Programación

migrate database

Como migrar tu base de datos a Amazon RDS

Paso 1: Cree una nueva base de datos en Amazon RDS

Comience por crear una nueva base de datos en Amazon RDS, como se describe a continuación:

  • En la página «Seleccionar motor», seleccione «MySQL» como motor de base de datos. Luego, haga clic en el botón «Seleccionar» para continuar.
  • Sobre la resultante «¿Producción?» página, elija entre escenarios de uso de producción o no producción. Tenga en cuenta que el nivel de uso gratuito de AWS solo se aplica a las instancias que no son de producción. Luego, haga clic en el botón «Siguiente paso» para continuar.
  • En la página resultante «Especificar detalles de la base de datos», ingrese los detalles de la base de datos que desea crear, especialmente la clase de instancia, el tipo de almacenamiento y el tamaño de almacenamiento asignado.
  • En la misma página, especifique un nombre exclusivo para la instancia de la base de datos, junto con un nombre de usuario y una contraseña. Luego, haga clic en el botón «Siguiente paso» para continuar.
  • En la página resultante «Configurar ajustes avanzados», deje todos los valores en su configuración predeterminada y seleccione la opción «Crear nuevo grupo de seguridad» en el campo «Grupos de seguridad de VPC». O, si tiene un grupo de seguridad existente que permite conexiones remotas al puerto MySQL (3306), seleccione ese grupo de seguridad en su lugar.
  • En la misma página, en la sección «Opciones de base de datos», especifique un nombre para la nueva base de datos. En este ejemplo, la nueva base de datos se llama wordpress. Esta base de datos se creará automáticamente una vez que se inicie la instancia de la base de datos.
  • Haga clic en el botón «Iniciar instancia de base de datos» para continuar.

Ahora se lanzará su nueva instancia de base de datos.

Haga clic en el botón «Ver sus instancias de base de datos» para ver la lista de instancias en ejecución.

Paso 2: habilite el acceso del grupo de seguridad

Una vez que su instancia de base de datos se esté ejecutando, el siguiente paso es permitir el acceso remoto al servidor de base de datos MySQL. Para hacer esto:

  • Inicie sesión en el Amazon RDS dashboard.
  • Seleccione el elemento de menú «Instancias».
  • Seleccione y expanda el registro de la instancia de base de datos MySQL recién lanzada.
  • Seleccione el grupo de seguridad actual. Esto abrirá una nueva ventana del navegador que contiene la sección «Grupos de seguridad» del panel de EC2 y con el grupo de seguridad actual preseleccionado.
  • Seleccione la pestaña «Entrante» del grupo de seguridad.
  • Haga clic en el botón «Editar».

En la ventana emergente «Editar reglas de entrada», haga clic en el botón «Agregar regla» y especifique una nueva regla de la siguiente manera:

  • Tipo: MySQL
  • Protocolo: TCP
  • Rango de puertos: 3306
  • Fuente: IP personalizada
  • Dirección IP: la dirección IP pública de su servidor de aplicaciones Bitnami en formato CIDR. Por ejemplo, si la dirección IP pública de su servidor de aplicaciones Bitnami es 101.102.103.104, especifique la dirección IP como 101.102.103.104/32.
  • Haga clic en «Guardar» para guardar sus cambios.

Paso 3: deshabilite el acceso de escritura a la aplicación

Ahora puede migrar la base de datos de su aplicación a Amazon RDS. Sin embargo, antes de hacer esto, debe deshabilitar el acceso de escritura a la aplicación para que la base de datos original y la nueva permanezcan sincronizadas.

El método para hacer esto varía de una aplicación a otra. En algunos casos, la propia aplicación ofrece un «modo de mantenimiento» que se puede activar durante la migración de datos. En otros, es posible que deba descargar un complemento de modo de mantenimiento para este propósito. Si ninguna de estas opciones está disponible, debe deshabilitar manualmente el acceso de inicio de sesión redirigiendo a los usuarios a una página de mantenimiento estática.

Step 4: Export The Application Database From Your Bitnami Stack

El siguiente paso es exportar la base de datos de la aplicación. Puede hacerlo utilizando la herramienta de línea de comandos mysqldump o la aplicación phpMyAdmin basada en navegador.

Using PhpMyAdmin

También puede lograr esto con la aplicación phpMyAdmin basada en navegador incluida de forma predeterminada con las pilas de Bitnami.

  • Inicie sesión en la aplicación phpMyAdmin.
  • Seleccione la base de datos de la aplicación en el menú de navegación izquierdo. En este ejemplo, la base de datos se llama bitnami_wordpress.
  • Seleccione el elemento de menú «Exportar».
  • En la página resultante, seleccione el método de exportación «Rápido» y el formato de salida «SQL».
  • Haga clic en «Ir».

Se creará un archivo de exportación SQL y se descargará en su escritorio. Guarde este archivo con cuidado, ya que lo necesitará en el próximo paso.

Paso 5: Importe la base de datos de la aplicación a Amazon RDS

El siguiente paso es importar la base de datos de la aplicación a su instancia de base de datos RDS. Nuevamente, puede lograr esto utilizando la herramienta de línea de comandos o la aplicación phpMyAdmin basada en navegador.

Using PhpMyAdmin

También puede lograr esto con la aplicación phpMyAdmin basada en navegador incluida con la pila de Bitnami. Sin embargo, primero es necesario configurar phpMyAdmin para conectarse a su instancia de base de datos RDS, como se describe a continuación:

  • Inicie sesión en la consola de su servidor a través de SSH.
  • Edite el archivo de configuración de phpMyAdmin en /opt/bitnami/apps/phpmyadmin/htdocs/config.inc.php y agregue las siguientes líneas al final del archivo:
$i++;
  $cfg['Servers'][$i]['verbose'] = 'Amazon RDS';
  $cfg['Servers'][$i]['host'] = 'RDS-ENDPOINT';
  $cfg['Servers'][$i]['port'] = '3306';
  $cfg['Servers'][$i]['socket'] = '';
  $cfg['Servers'][$i]['connect_type'] = 'tcp';
  $cfg['Servers'][$i]['extension'] = 'mysqli';
  $cfg['Servers'][$i]['auth_type'] = 'cookie';
  $cfg['Servers'][$i]['AllowNoPassword'] = false;
  • Recuerde reemplazar el marcador de posición RDS-ENDPOINT en el código anterior con el punto final real de su instancia de base de datos de Amazon RDS. Estas líneas permitirán acceder a su instancia de base de datos de Amazon RDS a través de phpMyAdmin.
  • Guarda el archivo.

Next:

  • Vaya a la aplicación phpMyAdmin y seleccione el servidor «Amazon RDS».
  • Inicie sesión con el nombre de usuario y la contraseña de la base de datos que definió en el Paso 1.
  • Seleccione la nueva base de datos en el menú de navegación izquierdo. En este ejemplo, la nueva base de datos se llama wordpress según la entrada que proporcionó en el Paso 1.
  • Seleccione el elemento de menú «Importar».
  • En la página resultante, seleccione el archivo de exportación de SQL creado en el Paso 4.
  • Haga clic en «Ir».

El contenido de la base de datos de la aplicación original ahora se importará a la nueva base de datos de Amazon RDS. Se mostrará un mensaje de confirmación.

Paso 6: Reconfigure la aplicación para usar la nueva base de datos

Una vez que su base de datos se haya transferido a Amazon RDS, el siguiente paso es actualizar la configuración de su aplicación y señalarla a la nueva base de datos. El procedimiento para hacer esto varía de una aplicación a otra, pero normalmente implica modificar un archivo de configuración y especificar el nuevo host de la base de datos, el nombre de usuario y la contraseña de la base de datos y el nuevo nombre de la base de datos.

Por ejemplo, para actualizar la configuración de WordPress, edite el archivo en /opt/bitnami/apps/wordpress/htdocs/wp-config.php y modifique las distintas variables de configuración como se muestra en la siguiente imagen:

Paso 7: Vuelva a habilitar el acceso de escritura a la aplicación

Ahora puede desactivar el modo de mantenimiento y volver a habilitar el acceso completo a la aplicación, invirtiendo los pasos realizados en el Paso 3.

foto 360

Como añadir Fotografías y Videos 360 grados en tu web

Así que ya tienes fotos en 360° y te preguntas cómo serás capaz de incrustarla en tu sitio web. Bueno, esto es bastante fácil.

1.  Sube tus imágenes aquí. Puedes examinar tu archivo o arrastrarlo y soltarlo.

Simplemente arrastre y suelte sus imágenes

2. Una vez subida, tendrás acceso al visor y podrás visualizar tu imagen impresionante y tener acceso a la caja de incrustación. Sólo tienes que hacer clic en el icono de incrustación para obtener el código de tus fotos. Se copiará automáticamente en el portapapeles.

Copie el código de inserción en su portapapeles simplemente haciendo clic en este botón

3. Solo tu código en tu página html y listo

<!DOCTYPE html>
<html>
<body>

<h1> El título de mi pagina</h1>
<h2> Mi impresionante foto 360:</h2>

--->> PEGA EL CÓDIGO AQUÍ <<-----

</body>
</html>

Sí, eso es todo. ¡Ahora puede insertar fotos de 360 en su sitio web!

Como añadir un sintetizador de texto a voz de audio a tu pagina web

La función de texto a voz se refiere a la narración hablada de un texto que se muestra en un dispositivo. En la actualidad, dispositivos como portátiles, tabletas y teléfonos móviles ya cuentan con esta función. Cualquier aplicación que se ejecute en estos dispositivos, como un navegador web, puede utilizarlo y ampliar su funcionalidad. La función de narración puede ser una ayuda adecuada para una aplicación que muestra mucho texto, ya que ofrece la opción de escuchar a los visitantes del sitio web.

La API de voz web

La API de JavaScript de Web Speech es la puerta de acceso para acceder a la función Text-to-Speech mediante un navegador web. Por lo tanto, si desea introducir la funcionalidad de texto a voz en una página web con mucho texto y permitir que sus lectores escuchen el contenido, puede utilizar esta práctica API o, para ser más específicos, su interfaz SpeechSynthesis

Código inicial y verificación de soporte

Para empezar, vamos a crear una página web conmigo texto de muestra para ser narrado y tres botones.

HTML
1
2
3
4
5
6
7
8
9
10
11
12
13
<div>
    <button id=play></button>
    <button id=pause></button>
    <button id=stop></button>
</div>
<article>
    <h1>The Hare With Many Friends</h1>
    <img src="hare-and-friends.jpg">
    <p>A hare was very popular with...</p>
    <p>But he declined, stating that...</p>
    <!-- More text... -->
    <blockquote>Moral of the story...</blockquote>
</article>

Los botones serán los controles de la narración. Ahora tenemos que asegurarnos de que la UA sea compatible a SpeechSynthesis interfaz. Para ello, comprobamos rápidamente con JavaScript si el window objeto tiene la propiedad 'speechSynthesis' o no

JavaScript
1
2
3
4
5
6
7
8
onload = function() {
  if ('speechSynthesis' in window) {
      /* speech synthesis supported */
  }
  else {
      /* speech synthesis not supported */
  }
}

Si SpeechSynthesis está disponible, primero creamos una referencia para SpeechSynthesis que asignamos a la variable de synth. También iniciamos una bandera con el valor falso (veremos su propósito más adelante en la publicación), y también creamos referencias y hacemos clic en controladores de eventos para los tres botones (Reproducir, Pausa, Detener).

Cuando el usuario hace clic en uno de los botones, se llamará a su función respectiva (onClickPlay(), onClickPause(), onClickStop()).

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
if ('speechSynthesis' in window){
    var synth = speechSynthesis;
    var flag = false;
 
    /* references to the buttons */
    var playEle = document.querySelector('#play');
    var pauseEle = document.querySelector('#pause');
    var stopEle = document.querySelector('#stop');
 
    /* click event handlers for the buttons */
    playEle.addEventListener('click', onClickPlay);
    pauseEle.addEventListener('click', onClickPause);
    stopEle.addEventListener('click', onClickStop);
 
    function onClickPlay() {
    }
    function onClickPause() {
    }
    function onClickStop() {
    }
}

Crear las funciones personalizadas

Ahora construyamos las funciones de clic de los tres botones individuales que serán llamados por los controladores de eventos.

1. Reproducir/Reanudar

Cuando se hace clic en el botón Reproducir, primero verificamos la flag. Si es false, lo establecemos en true, por lo que si en algún momento se hace clic en el botón más tarde, el código dentro de la primera condición if no se ejecutará (no hasta que la flag sea false nuevamente).

Luego, creamos una nueva instancia de la interfaz SpeechSynthesisUtterance que contiene información sobre el discurso, como el texto que se leerá, el volumen del discurso, la voz hablada, la velocidad, el tono y el idioma del discurso. Agregamos el texto del artículo como parámetro del constructor y lo asignamos a la variable de expresión.

JavaScript
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
function onClickPlay() {
    if(!flag){
        flag = true;
        utterance = new SpeechSynthesisUtterance(
              document.querySelector('article').textContent);
        utterance.voice = synth.getVoices()[0];
        utterance.onend = function(){
            flag = false;
        };
        synth.speak(utterance);
    }
    if(synth.paused) { /* unpause/resume narration */
        synth.resume();
    }
}

Usamos el método SpeechSynthesis.getVoices() para designar una voz para el discurso de las voces disponibles en el dispositivo del usuario. Como este método devuelve una matriz de todas las opciones de voz disponibles en un dispositivo, asignamos la primera voz de dispositivo disponible usando el utterance.voice = synth.getVoices()[0]; declaración.

La propiedad onend  representa un controlador de eventos que se ejecuta cuando finaliza el discurso. Dentro de él, cambiamos el valor de la flag variable volver a false para que el código que inicia el discurso se puede ejecutar cuando se vuelve a hacer clic en el botón.

Entonces llamamos al método SpeechSynthesis.speak() para iniciar la narración. También tenemos que comprobar si la narración está en pausa., para lo cual usamos el de solo lectura propiedad SpeechSynthesis.paused . Si la narración está en pausa, necesitamos reanudar la narración al hacer clic en el botón, lo que podemos lograr usando el método SpeechSynthesis.resume() .

2. Pause

Ahora vamos a crear la función onClickPause() en el que primero verificamos si la narración está en curso y no está en pausa. Podemos probar estas condiciones haciendo uso de la SpeechSynthesis.speaking y las propiedades  SpeechSynthesis.paused. Si ambas condiciones son verdaderas, nuestra función onClickPause() hace una pausa en el discurso llamando al método SpeechSynthesis.pause() .

JavaScript
1
2
3
4
5
function onClickPause() {
    if(synth.speaking && !synth.paused){ /* pause narration */
        synth.pause();
    }
}

3. Stop

La función onClickStop()  está construido de manera similar a onClickPause(). Si el discurso está en curso, lo detenemos llamando al método SpeechSynthesis.cancel() que elimina todas las expresiones.

JavaScript
1
2
3
4
5
6
7
function onClickStop() {
    if(synth.speaking){ /* stop narration */
        /* for safari */
        flag = false;
        synth.cancel();
    }
}

NTenga en cuenta que en la cancelación de la voz, el evento onend  automáticamente rechazado, y ya habíamos agregado el código de reinicio de la bandera dentro de él. Sin embargo, hay un error en el navegador Safari eso evita que este evento se dispare, es por eso que reiniciamos la bandera en la función onClickStop(). No tiene que hacerlo si no desea admitir Safari.

http://www.hongkiat.com/blog/text-to-speech/

Como hacer OCR de una página web sin scrapper

La traducción OCR aún no es perfecta, pero ha mejorado drásticamente en los últimos años. Liderando el camino está el motor de traducción Tesseract actualmente de código abierto en C++.

Si bien esta es una biblioteca increíble, sin embargo, está restringida al software. Afortunadamente, alguien hizo un puerto de Tesseract en JavaScript que se llama Tesseract.js. Admite hasta 60 idiomas y, aunque ciertamente no es perfecto, hace bien su trabajo.

La instalación y la configuración son muy sencillas, ya que puede apuntar a cualquier elemento de imagen en la página y ejecutar la función Tesseract.recognize(). Esto puede tomar cualquier tipo de imagen y se comprimirá y traducirá automáticamente directamente en el navegador.

Puede volverse mucho más complicado, pero la belleza es cómo puede ejecutar OCR con una sola línea de código.

Consulte la página de inicio de Tesseract.js si desea ver una demostración en vivo. Esto funciona directamente en el navegador, donde puede arrastrar y soltar cualquier imagen escaneada de texto para obtener una traducción OCR automática.

Como usar Updraft Plus para hacer copias de seguridad de webs en WordPress

COPIAS DE SEGURIDAD AUTOMÁTICAS

Una vez configurada la herramienta, UpdraftPlus se encargará de hacer las copias de seguridad de tu sitio web en la periodicidad y modo programados.

No tienes que preocuparte de nada más.

COPIAS DE SEGURIDAD MANUALES

Si por cualquier cuestión deseas realizar una copia de seguridad en un momento determinado, el plugin no te condiciona a las acciones programadas, puedes hacer un respaldo de tu sitio web cuando desees.

Y además hacerlo es tan fácil como colocarte en la pestaña “Copia de seguridad/Restaurar” y pinchar en el botón “Respaldar ahora”.

 

Updraftplus

Selecciona qué quieres incluir en la copia de seguridad.

Updraftplus copia de seguridad

La copia comenzará a realizarse de manera automática.

Updraftplus

mysql-updates-wordpress

Cambiar y actualizar las URL de WordPress en la base de datos cuando el sitio se mueve a un nuevo host

Después de migrar un sitio de WordPress a una nueva URL, ya sea a un sitio de producción en vivo o un servidor de desarrollo de prueba, las nuevas cadenas de URL en la base dedatos MySQL deben cambiarse y actualizarse en las distintas  tablas de la base de datos MySQL .

Este método solo utiliza la base de datos MySQL completa en lugar de una exportación / importación de WordPress desde adentro y es el más adecuado para un intercambio directo. Así que copiaría todos los archivos / carpetas de WordPress al nuevo destino, establecería la propiedad correcta para esos archivos y luego haría el switcheroo de la base de datos.

Si no se siente cómodo interactuando directamente con la base de datos MySQL, le sugiero que revise y use WP Migrate Pro ; de lo contrario, siga leyendo.

Base de datos de WordPress Switcheroo

Primero, realice una exportación de la base de datos MySQL de la antigua base de datos en el servidor antiguo, cree una nueva base de datos en blanco en el nuevo servidor, importe los datos antiguos en PHPMyAdmin o mysql directamente en la línea de comandos .

Asegúrese de tener seleccionada la nueva base de datos, luego ejecute algunas actualizaciones de SQL y comandos de reemplazo en las tablas, en particular, wp_options, wp_posts, wp_postmeta.

Use el código como se muestra a continuación e intercambie sus URL antiguas y nuevas, sin barras diagonales. También si es necesario, cambie los valores del prefijo de la tabla donde corresponda (es decir, wp_)

ACTUALIZAR wp_options SET option_value = replace (option_value, 'http: //www.oldurl', 'http: //www.newurl') DONDE option_name = 'home' O option_name = 'siteurl'; 

ACTUALIZAR wp_posts SET guid = replace (guid, 'http: //www.oldurl','http: //www.newurl');

ACTUALIZAR wp_posts SET post_content = replace (post_content, 'http: //www.oldurl', 'http: //www.newurl');

ACTUALIZACIÓN wp_postmeta SET meta_value = replace (meta_value, 'http: //
MyphpAdmin

o vía linea de comando :

nombre de usuario @ [~ / Escritorio]: mysql -u root -p databasename Introducir la contraseña: 

Leer la información de la tabla para completar los nombres de tablas y columnas Puede desactivar esta función para obtener un inicio más rápido con -A

Bienvenido al monitor MySQL. Los comandos terminan con; o g. Su ID de conexión de MySQL es 892 Versión del servidor: 5.5.13 MySQL Community Server (GPL)

Copyright (c) 2000, 2010, Oracle y / o sus filiales. Todos los derechos reservados.

Oracle es una marca registrada de Oracle Corporation y / o su afiliados Otros nombres pueden ser marcas registradas de sus respectivos propietarios

Escriba 'ayuda'; o 'h' para ayuda. Escriba 'c' para borrar la declaración de entrada actual.

mysql> ACTUALIZAR wp_options SET option_value = replace (option_value, 'http: //www.oldurl', 'http: //www.newurl') DONDE option_name = 'home' O option_name = 'siteurl'; Consulta OK, 0 filas afectadas (0.00 seg) Filas emparejadas: 2 Cambiado: 0 Advertencias: 0

mysql> ACTUALIZAR wp_posts SET guid = replace (guid, 'http: //www.oldurl','http: //www.newurl'); Consulta OK, 0 filas afectadas (0.02 seg) Filas emparejadas: 964 Cambiado: 0 Advertencias: 0

mysql> ACTUALIZAR wp_posts SET post_content = replace (post_content, 'http: //www.oldurl', 'http: //www.newurl'); Consulta OK, 0 filas afectadas (0.05 seg) Filas emparejadas: 964 Cambiado: 0 Advertencias: 0

mysql> ACTUALIZAR wp_postmeta SET meta_value = replace (meta_value, 'http: //www.oldurl','http: //www.newurl'); g Consulta OK, 0 filas afectadas (0.01 seg) Filas emparejadas: 686 Cambiado: 0 Advertencias: 0


Finalmente, actualice su archivo de configuración de WordPress para reflejar la nueva base de datos, wp-config.php ”, que debería estar en la raíz de su documento web: cambio , nombre de la base de datos ,  nombre de usuario ,  contraseña y valores de host :

define ('DB_NAME', 'databasename'); 
/ ** Nombre de usuario de la base de datos MySQL * /
define ('DB_USER', 'nombre de usuario');
/ ** Contraseña de la base de datos MySQL * /
define ('DB_PASSWORD', 'contraseña');
/ ** Nombre de host MySQL * / define ('DB_HOST', 'localhost');

Ahora todo debería encajar perfectamente.

djave  ha creado un script agradable y fácil que toma las URL antiguas y nuevas y le entrega el código SQL para el intercambio de WordPress, ¡bien!

Datos serializados

A veces, pueden surgir problemas con un problema llamado datos serializados, que es cuando una matriz de datos PHP es algo así como encriptada con la URL real, por lo que si se cambia la URL, los datos desaparecen.

Hay 2 herramientas brillantes que pueden manejar datos serializados y hacer una búsqueda y reemplazo en la base de datos antigua y nueva de la URL y dejar los datos serializados intactos.

interconectarse

En primer lugar, se encuentra un script que se ejecuta al cargarlo y buscarlo después de migrar e importar su base de datos antigua a la nueva. Esto hará los cambios necesarios. Consíguelo desde aquí .

WP Migrate Pro

El segundo es un complemento comprobado y robusto que instala en su sitio original y ejecuta desde allí para buscar y reemplazar en la cadena de URL y Webroot, se exporta un nuevo volcado de base de datos y ese es el que importa en la nueva base de datos alojada de URL. WP Migrate Pro puede encontrar y reemplazar datos dentro de arreglos serializados. Consíguelo aquí .