Hola.
No se si está es la categoría adecuada para el tipo de consulta que vamos a realizar. Pero ya que está relacionado con Virtuemart hemos pensado que es la más correcta.
Hemos desarrollado un script en php que permite crear un feed de datos xml para Google Merchant. Funciona bien ya que tenemos casi 3000 productos aceptados y activos por parte de Google. El problema nos surge a la hora de querer automatizar la creación del archivo xml a través de una tarea cron, para no tener que estar actualizándolo todos los días, ya que la conexión a la base de datos para extraer los datos no se realiza, lo que genera un xml vacío.
El comando para realizar la ejecución del script es correcto:
cd /home/copitecn/public_html/ && php xml-cron.php
Pero la conexión a la base de datos no se realiza.
Hemos intentado realizar la conexión a través de este código:
mysql -unombre_base_datos -pcontraseña_base_datos -hlocalhost && cd /home/copitecn/public_html/ && php xml-cron.php
Pero en el email nos muestra este mensaje de error:
ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' (2)
¿Que estamos haciendo mal?
URL del sitio: Contenido solo visible a usuarios registrados
Hola
La conexión a la BD debería estar dentro del propio script y no a través de comandos
Saludos
Hola Jhon.
La conexión a la base de datos está en el script de php, pero al ejecutar la tarea cron no se realiza la conexión, con lo cual no me devuelve ningún registro. Sin embargo si ejecuto el script introduciendo directamente la dirección del archivo php en el navegador se realiza sin ningún problema.
Probé hacerlo a través de la línea de comandos como posible solución, ya que no se realizaba la conexión a la base de datos desde la tarea cron.
Hola
Cual es la url específica accesible desde el navegador del script que quieres ejecutar?
Saludos.
Hola,
Prueba a ejecutar el cron con el siguiente comando para ver si funciona:
php -q /home/copitecn/public_html/xml-cron.php
Hola Pablo.
El archivo se ejecuta correctamente, pero sigue sin poder hacer conexión a la base de datos desde la tarea cron, pero la realiza bien si la ejecuto desde un navegador web.
¿Puede que al realizar la tarea cron la ruta a la base de datos sea distinta? Ahora mismo tengo como ruta a la base de datos "localhost".
En ese caso ¿Qué ruta tendría que poner?
Hola
Has probado colocando la IP del servidor?
Es posible que tengas que tengas alguna restricción , tendrías que consultarlo a través de tickets de soporte, indica claramente como quieres ejecutar el archivo
Saludos.
Finalmente hemos podido ejecutar el cron gracias al soporte mediante tickets. Era un fallo que teniamos en el comando cron.
Muchas gracias