Error PhP, en busca de la magia mediavidera

eXtreM3

Hola! Tengo toda la tienda en prestashop 1.4.2.5 montada y funcionando bien. Hasta ahora no había necesitado instalar ningún módulo ya que los pagos los hacía con el módulo por defecto de PayPal.

Ahora necesito instalar otro módulo de pago, pero en la pestaña Módulos, nada más entrar me tira este error arriba del todo:

Warning: file_exists() [function.file-exists]: open_basedir restriction in effect. File(/usr/home/ventadelpuerto.com/web/tienda/modules/index.php/index.php.php) is not within the allowed path(s): (/usr/home/ventadelpuerto.com/:/home/ventadelpuerto.com/:/usr/home/phpMyAdmin-plan6/:/usr/home/webstats/) in/usr/home/ventadelpuerto.com/web/tienda/classes/Tools.php on line 1187

No me deja subir ninguno, ni desde el FTP (se sube la carpeta pero no se refleja que esté subido) ni desde el propio gestor de prestashop subiéndolo como .zip

Dato de posible interés: al subir el módulo en formato .zip desde el gestor de prestashop, después al mirar la carpeta modules desde el FTP sí aparece la carpeta de mi módulo, pero en la lista no aparece y por lo tanto no lo puedo activar / configurar.

Le acabo de poner permisos 777 a todo el directorio /tienda (incluyendo subdirectorios y ficheros) y nada, el problema persiste.

Probé también a subir la carpeta del módulo directamente al FTP, pero no aparece en la lista de módulos en el gestor. Es muy extraño, he hecho otras dos tiendas en prestashop, curiosamente la misma versión, y nunca he tenido este error.

Es posible que sea problema del hosting? Si es así qué debo hacer?

Ayuda por favor ^^

PD: posteé esto en el foro oficial de prestashopp y no me dicen nada, vengo aquí a buscar la magia :D xD

yarviT0
index.php.php

no has modificado el módulo que has subido? pork php.php suena rarisimo

1 respuesta
eXtreM3

#2 ese error lo tira nada más entrar a la pestaña Módulos, sin subir nada ni tocar nada de los módulos.

MrTurbo

Prueba a borrar el módulo que has subido, o si no reinstala el prestashop a ver si se soluciona.

yarviT0

uhm la linea que te da el error de php

$tmz = Db::getInstance(PS_USE_SQL_SLAVE)->s('SELECT * FROM '.DB_PREFIX.'timezone');

es posible que no tengas definido timezone en el servidor?

1 respuesta
LOc0

Prueba a meter esto arriba del todo en /usr/home/ventadelpuerto.com/web/tienda/classes/Tools.php

<?php

ini_set( 'open_basedir' , '/usr/home/ventadelpuerto.com/:/home/ventadelpuerto.com/:/usr/home/phpMyAdmin-plan6/:/usr/home/webstats/:/usr/home/ventadelpuerto.com/web/tienda/modules/index.php/:/usr/home/ventadelpuerto.com/web/tienda/modules/' );

...

Si no va, tendrás que hablar con los del hosting para que te permitan cambiar el valor de open_basedir en el php.ini

Salu2 ;)

1 respuesta
eXtreM3

#5 tenemos unos archivos tools.php distintos, mi línea 1187 es esta

         /**
	 * file_exists() wrapper with cache to speedup performance
	 *
	 * @param string $filename File name
	 * @return boolean Cached result of file_exists($filename)
	 */

public static function file_exists_cache($filename)
{
	if (!isset(self::$file_exists_cache[$filename]))
		self::$file_exists_cache[$filename] = file_exists($filename);
	return self::$file_exists_cache[$filename];
}

#6 no funciona lo del ini_set. Seguramente sea la directiva open_basedir del php.ini, tendré que decirle a mi hosting que le cambien el valor.

Si les explico mi problema sabrán qué tienen que poner en el php.ini o tengo que decirles yo exactamente lo que tienen que poner? (estoy leyendo info acerca del open_basedir)


EDIT: he enviado un ticket al proveedor de hosting comunicándoles el problema y me han contestado esto:

Apreciado Carlos,

Le informamos que hemos estado revisando su alojamiento y hemos reasignado los permisos de los archivos de su web, le rogamos que revise el correcto funcionamiento, gracias.

En caso de continuar con el error tenga en cuenta que la directiva openbase_dir está activa, y que puede ser que no localice el fichero indicado.

Para cualquier otra duda o consulta no dude en ponerse en contacto con nosotros, estaremos encantados de poder ayudarle.

Un saludo,

El problema persiste, les he enviado otro ticket preguntandoles si lo han hecho bien y han permitido el acceso a todos los directorios y subdirectorios con el open_basedir (el tio me ha puesto openbase_dir, igual se ha equivocao escribiéndolo en el php.ini ...), y si no es necesario un reinicio de Apache para que los cambios se reflejen.

Estoy esperando respuesta en estos momentos, seguiré editando.

eXtreM3

Respondo por no dejar el thread así tan abierto.

Hice de todo, reinstalé prestashop varias veces y varias versiones. Borré la base de datos y la hice nueva. Modifiqué un par de parámetros del php.ini (el memory_limit y el buffer noseque) mediante contactos con el servicio técnico (qué coñazo).

Y al final me he quedao con las ganas de saber de qué era el error exactamente, el caso es que se ha solucionado, ya he podido instalar mi módulo de pago y todo funciona correctamente... en fin xD

Gracias a los que contestasteis intentando ayudarme ;)

Usuarios habituales

  • eXtreM3
  • LOc0
  • yarviT0
  • MrTurbo