tengoqprobarlo Posted April 29, 2022 Share Posted April 29, 2022 Buenas, con PrestaShop 1.7.8.5, cuando voy a Internacional>Traducciones, y me dispongo a traducir cualquier Tema o Módulo, siempre que le doy a Guardar, se queda la pantalla en Blanco y no puedo entrar al Backoffice (el Front sí que funciona), y me toca reinstalar todos los archivos del directorio httpdocs porque realmente no sé lo que ocurre. Tengo un Servidor VPS Cloud Linux con Ubuntu 20.04 en Ionos y Plesk instalado. Utilizo Apache, Nginx y PHP versión 7.4.29 He estado mirando en foros y coinciden en 2 cosas: Toca restaurar backup o reinstalar el sistema entero (lo que me pasó la primera vez). Al dar en Guardar, se introducen varios archivos index.php en blanco en varios sitios (no he podido ver dónde), y por eso no encuentra las clases PHP. Al principio pensé que sería un problema de mi tema, pero no, porque me pasa también con el tema predeterminado, y con cualquier módulo, tanto los que vienen de serie como los que instale yo. Estos son los pasos concretos para reproducir el error y repararlo (adjunto imágenes): Entrar en Backoffice>Internacional>Traducciones: [url=https://ibb.co/tZS4Jc7][img]https://i.ibb.co/f8b2xth/01.jpg[/img][/url] Selecciono un Módulo, Español, Accedo, Traduzco algunas Frases y doy Guardar: [url=https://ibb.co/hFchJLk][img]https://i.ibb.co/m501Vbm/02.jpg[/img][/url] Al momento se queda el Backoffice en blanco y no hay forma de acceder a ninguna parte, salvo al Front que sí que funciona: [url=https://ibb.co/t3TdZwy][img]https://i.ibb.co/wYFvJZD/03.jpg[/img][/url] Me conecto por terminal a mi servidor y accedo a la ruta /var/www/vhosts/misitio/httpdocs/config. Edito el archivo defines.inc.php: [url=https://ibb.co/SrLWjmq][img]https://i.ibb.co/2Nbm9MX/04.jpg[/img][/url] Modifico la opción para mostrar los errores de Depuración: PS_MODE_DEV lo pongo en true. [url=https://ibb.co/c3Zw8sy][img]https://i.ibb.co/3djvFPT/05.jpg[/img][/url] Me conecto de nuevo al Backoffice y ahora veo la Excepción que da. Siempre es la misma y siempre se refiere a los mismos archivos, directorios, clases, líneas, etc.: ReflectionException The autoloader expected class "PrestaShopBundle\Controller\Admin\Sell\index" to be defined in file "/var/www/vhosts/misitio/httpdocs/vendor/composer/../../src/PrestaShopBundle/Controller/Admin/Sell/index.php". The file was found but the class was not in it, the class name or namespace probably has a typo. [url=https://ibb.co/DQF3xYB][img]https://i.ibb.co/jDY7czC/06.jpg[/img][/url] Para resolverlo: toca reinstalar todo el sistema incluido la base de datos, o bien, restaurar un backup de todos los archivos y directorios de la ruta /httpdocs. Con lo cual, selecciono todo, lo borro: [url=https://ibb.co/FYFHh3T][img]https://i.ibb.co/KsJK5hv/07.jpg[/img][/url] Y restauro un backup que tengo de los archivos (la base de datos no es neceario, he comprobado que no hace falta restaurarla, con los archivos suele valer): [url=https://ibb.co/tYHwW9y][img]https://i.ibb.co/VML0PsX/08.jpg[/img][/url] Ya está todo restaurado: [url=https://ibb.co/8bNxfKC][img]https://i.ibb.co/ZSGgFLj/09.jpg[/img][/url] Y ya accedo al Backoffice con normalidad (hasta que vuelva a intentar traducir algo, y se repite el problema de nuevo): [url=https://ibb.co/xYdh0BC][img]https://i.ibb.co/LrHSWck/10.jpg[/img][/url] Por lo tanto, me toca traducir todos los archivos TPL del Tema y del Módulo a mano, con Visual Studio Code, procurando no comerme ninguna comilla simple, y subiendo los archivos manualmente a /httpdocs/modules [url=https://ibb.co/hB8hpvx][img]https://i.ibb.co/6HsV65c/11.jpg[/img][/url] Desesperadito estoy... y sólo encuentro foros donde se dice que hay que reinstalar todo... ¿A nadie le pasa con esta versión de Prestashop? ¿Estoy condenado a traducir 500 archivos TPL a mano, y cada vez que se actualice un módulo, volver a empezar? En fin, agradezco cualquier comentario. Un saludo. Link to comment Share on other sites More sharing options...
Nickz Posted April 29, 2022 Share Posted April 29, 2022 respaldo debes tener antes de cualquier cambio. La razon por la cual aspiras tener un shop multi lengauaje? Link to comment Share on other sites More sharing options...
tengoqprobarlo Posted April 30, 2022 Author Share Posted April 30, 2022 Buenas, no quiero una tienda multilenguaje, la quiero en Español, pero si los módulos o el propio tema están en inglés, necesito que esté todo en español. No voy a tener por ejemplo un botón de "Regístrate" y luego "Name, Surname, Address, City...". No, tendrá que estar todo en español, digo yo, y por eso necesito traducir lo que está en inglés. ¿Alguna idea de por qué casca cuando lo intento desde el Backoffice? Un saludo. Link to comment Share on other sites More sharing options...
Nickz Posted April 30, 2022 Share Posted April 30, 2022 entrando por ftp en los modules si el backend tendra problemas. Desde cuando no puedes entrar en el BO? Link to comment Share on other sites More sharing options...
tengoqprobarlo Posted April 30, 2022 Author Share Posted April 30, 2022 Cada vez que hago una traducción desde el BO de Prestashop, pierdo el acceso al BO y tengo que restaurar un backup para poder entrar de nuevo. Haciendo cualquier otra clase de configuración dentro del BO, no pierdo el acceso. Únicamente es cuando traduzco temas o módulos, que pierdo el acceso y aparece la ReflectionException. Gracias. Link to comment Share on other sites More sharing options...
Nickz Posted May 1, 2022 Share Posted May 1, 2022 Tengo una serie de preguntas para ti: La tienda la instalaste nuevo, o es un update de otra version? Tienes todas las requisitos cuplidos? en tu servidor tienes derecho de ajustar php y sus modules? Link to comment Share on other sites More sharing options...
tengoqprobarlo Posted May 4, 2022 Author Share Posted May 4, 2022 (edited) Hola, te describo el servidor: Ionos VPS Cloud M: 2 GB RAM, 2vCores, 80 GB SSD Plesk Obsidian 18.0.43 Ubuntu 20.04.4 LTS PHP 7.4.29 Base de Datos MariaDB 10.3.34 Apache Prestashop: Prestashop 1.7.8.5 Instalado NUEVO como Aplicación directamente desde Plesk. El servidor es totalmente administrado por mí, puedo acceder por SSH y puedo configurar los parámetros de PHP, de Plesk, de Ubuntu, etc. Esta es la Configuración de PHP que tengo aplicada: /var/www/vhosts/system/tengoqueprobarlo.com/etc/php.ini Aquí he cambiado estos parámetros para que no se me quede sin memoria y que no se supere el tiempo de espera del servidor, cuando importo unos cuantos miles de productos: memory_limit = 1024M max_execution_time = 3000 max_input_time = "-1" post_max_size = 20M upload_max_filesize = 1024M ; ATTENTION! ; ; DO NOT MODIFY THIS FILE BECAUSE IT WAS GENERATED AUTOMATICALLY, ; SO ALL YOUR CHANGES WILL BE LOST THE NEXT TIME THE FILE IS GENERATED. [PHP] SMTP = localhost allow_url_fopen = On allow_url_include = Off auto_append_file = auto_globals_jit = On auto_prepend_file = bcmath.scale = 0 cli_server.color = On default_charset = "UTF-8" default_mimetype = "text/html" default_socket_timeout = 60 disable_classes = disable_functions = "opcache_get_status" display_errors = Off display_startup_errors = Off doc_root = enable_dl = Off engine = On error_reporting = 22519 expose_php = On file_uploads = On ignore_repeated_errors = Off ignore_repeated_source = Off implicit_flush = Off ldap.max_links = -1 log_errors = On log_errors_max_len = 1024 mail.add_x_header = Off max_execution_time = 3000 max_file_uploads = 20 max_input_time = "-1" max_input_vars = 10000 memory_limit = 1024M mysqli.allow_persistent = On mysqli.default_host = mysqli.default_port = 3306 mysqli.default_pw = mysqli.default_socket = mysqli.default_user = mysqli.max_links = -1 mysqli.max_persistent = -1 mysqli.reconnect = Off mysqlnd.collect_memory_statistics = Off mysqlnd.collect_statistics = On odbc.allow_persistent = On odbc.check_persistent = On odbc.defaultbinmode = 1 odbc.defaultlrl = 4096 odbc.max_links = -1 odbc.max_persistent = -1 open_basedir = "/var/www/vhosts/tengoqueprobarlo.com/:/tmp/" output_buffering = 4096 pdo_mysql.default_socket = pgsql.allow_persistent = On pgsql.auto_reset_persistent = Off pgsql.ignore_notice = 0 pgsql.log_notice = 0 pgsql.max_links = -1 pgsql.max_persistent = -1 post_max_size = 20M precision = 14 register_argc_argv = Off register_globals = disabled report_memleaks = On request_order = "GP" serialize_precision = -1 session.auto_start = 0 session.cache_expire = 180 session.cache_limiter = nocache session.cookie_domain = session.cookie_httponly = session.cookie_lifetime = 0 session.cookie_path = / session.cookie_samesite = session.gc_divisor = 1000 session.gc_maxlifetime = 1440 session.gc_probability = 0 session.name = PHPSESSID session.referer_check = session.save_handler = files session.save_path = "/var/lib/php/sessions" session.serialize_handler = php session.sid_bits_per_character = 5 session.sid_length = 26 session.trans_sid_tags = "a=href,area=href,frame=src,form=" session.use_cookies = 1 session.use_only_cookies = 1 session.use_strict_mode = 0 session.use_trans_sid = 0 short_open_tag = Off smtp_port = 25 soap.wsdl_cache_dir = "/tmp" soap.wsdl_cache_enabled = 1 soap.wsdl_cache_limit = 5 soap.wsdl_cache_ttl = 86400 tidy.clean_output = Off unserialize_callback_func = upload_max_filesize = 1024M user_dir = variables_order = "GPCS" zend.assertions = -1 zend.enable_gc = On zend.exception_ignore_args = On zlib.output_compression = Off Y esta la Configuración de Nginx: /etc/nginx/nginx.conf Aquí añadí estos parámetros porque me salía un error: 502 Bad Gateway Upstream sent too big header proxy_buffers 8 16k; proxy_buffer_size 32k; fastcgi_buffers 8 16k; fastcgi_buffer_size 32k; #user nginx; worker_processes 1; #error_log /var/log/nginx/error.log; #error_log /var/log/nginx/error.log notice; #error_log /var/log/nginx/error.log info; #pid /var/run/nginx.pid; include /etc/nginx/modules.conf.d/*.conf; events { worker_connections 1024; } http { include mime.types; default_type application/octet-stream; #log_format main '$remote_addr - $remote_user [$time_local] "$request" ' # '$status $body_bytes_sent "$http_referer" ' # '"$http_user_agent" "$http_x_forwarded_for"'; #access_log /var/log/nginx/access.log main; sendfile on; #tcp_nopush on; #keepalive_timeout 0; keepalive_timeout 65; #tcp_nodelay on; #gzip on; #gzip_disable "MSIE [1-6]\.(?!.*SV1)"; server_tokens off; include /etc/nginx/conf.d/*.conf; proxy_buffers 8 16k; proxy_buffer_size 32k; fastcgi_buffers 8 16k; fastcgi_buffer_size 32k; } # override global parameters e.g. worker_rlimit_nofile include /etc/nginx/*global_params; Muchas gracias por tu ayuda. Edited May 4, 2022 by tengoqprobarlo (see edit history) Link to comment Share on other sites More sharing options...
Nickz Posted May 4, 2022 Share Posted May 4, 2022 1 hour ago, tengoqprobarlo said: max_file_uploads = 20 Ponle 200 1 hour ago, tengoqprobarlo said: memory_limit = 1024M Es muy poca RAM para una tienda. Es poca ram para una simple app con un control panel. Cada cambio debes restart apache2 Link to comment Share on other sites More sharing options...
tengoqprobarlo Posted May 9, 2022 Author Share Posted May 9, 2022 OK, están hechos los cambios, pero nada, el problema sigue. Me he dado cuenta que también me salió la Reflection Exception (con los mismos parámetros) cuando activé el Modo de Depuración desde Parámetros Avanzados > Rendimiento, obligándome a restaurar el backup de los archivos y la base de datos una vez más. Por lo menos ya sé que no sale únicamente cuando trato de traducir algo desde el Backoffice, también aparece el error en otras ocasiones, pero no sé por qué ni qué relación hay. Además, he observado otro error, probando el formulario de contacto, que por alguna razón da error al intentar mandar el mensaje, activé el modo de depuración directamente desde el archivo defines_inc.php, y esta vez recibí una excepción relacionada con el Contexto, te lo adjunto. En fin, seguiré investigando pero vamos, debe haber algo por ahí que produce estas excepciones, pero a saber lo que es... Gracias. ContextError Exception en Formulario Contacto (Debug activado).pdf Link to comment Share on other sites More sharing options...
tengoqprobarlo Posted May 10, 2022 Author Share Posted May 10, 2022 Buenos días, en este hilo hablan de bajar la versión de PHP: No obstante, yo tengo PHP configurado así (adjunto capturas): Versión de PHP: 7.4.29 Ejecutar PHP como: Aplicación FPM servido por Apache. Muchas gracias. Link to comment Share on other sites More sharing options...
Gerardo Martinez G Posted May 10, 2022 Share Posted May 10, 2022 ok, no he visto mucho o mejor no he leido demaciado sobre tu problema.. En 4/29/2022 a las 1:31 PM, tengoqprobarlo dijo: Tengo un Servidor VPS Cloud Linux con Ubuntu 20.04 en Ionos y Plesk instalado. Utilizo Apache, Nginx y PHP versión 7.4.29 -Te recomiendo bajes a php 7.3 Aplicacion FPM servidor por Apache ahora veo que tiene el usuario creado ya verificaste si php si lo esta ejecutanco correctamente con el usuario tu usuario, (dueños de los archivos y sus permisos) Archivos y Folders 644,755 Los archivos(usuario debe de coincidir con el usuario que ejecutara procesos php) dale una leida a dependiendo de tu php o distribucion /etc/php/7.3/fpm/pool.d/ listen.owner = listen.group = listen.acl_users = listen.acl_groups = Por ultimo usa este archivo y subelo a tu servidor para corroborar que todo este correcto y no tendrias que tener ningun problemahttps://devdocs.prestashop.com/1.7/basics/installation/system-requirements/https://github.com/PrestaShop/php-ps-info/https://devdocs.prestashop.com/1.7/basics/installation/httpd/ con Gusto si ocupas ayuda con Servidores 😀 Link to comment Share on other sites More sharing options...
tengoqprobarlo Posted May 15, 2022 Author Share Posted May 15, 2022 Hola, mi servidor no me permite bajar a 7.3. Utilizo 7.4.29 Probé con 8 pero daba mil fallos, así que volví a 7.4.29... Bueno, he restaurado el servidor por completo, reinstalando el sistema operativo Ubuntu, reinstalando Plesk, etc. etc. Y me ha pasado una cosa curiosa: Tengo dos backups: Backup Manual: Copié los archivos de httpdocs en un archivo ZIP, y copié la Base de Datos en otro archivo ZIP. Backup Automática el Módulo NT Backup And Restore: https://addons.prestashop.com/es/migracion-copias-de-seguridad/20130-nt-backup-and-restore.html El módulo copia los archivos y la base de datos en un archivo tar.gz y se restaura en el servidor con un script. Restauré el Backup Automático del módulo NT Backup And Restore, y el Front funconaba, pero el Back no. Activé el Debug y me volvió a salir la Reflection Exception. Así que antes de tener que reinstalar desde cero todo el sistema de nuevo, borré el directorio httpdocs y la Base de Datos, y restauré el Backup Manual: Descomprimí el ZIP en httpdocs e Importé la Base de Datos manualmente de la copia que había hecho yo mismo. Pues funciona todo perfectamente, excepto la traducción de módulos (igual que el primer mensaje con el que abrí este hilo). Es decir, restaurar desde el Módulo NT Backup And Restore produce la misma excepción: Reflection Exception al entrar en el Backoffice. Pero restaurar un backup manual, casi todo funciona bien (las traducciones no). Si eso os da alguna pista.... Me imagino que los permisos en los Archivos y Directorios puedan ocasionar el problema con la restauración desde el módulo NT Backup and Restore. Así que he puesto los Permisos de Directorios a 755 y los Archivos a 644, como me decías. Directorios 755: Propietario: Lectura-Escritura-Ejecución Grupo: Lectura-Ejecución Otros (Público): Lectura-Ejecución Archivos 644: Propietario: Lectura-Escritura Grupo: Lectura Otros (Público): Lectura No tengo esta ruta, ni nada similar: /etc/php/7.4/fpm/pool.d/ Tampoco encuentro la carpeta pool.d Finalmente, la comprobación del servidor phppsinfo.php con estas credenciales, no funciona, me pide las credenciales constantemente y no accede: const DEFAULT_PASSWORD = 'prestashop'; const DEFAULT_LOGIN = 'prestashop'; Actualizaré el hilo si descubro algo más. Muchas gracias por la ayuda, un saludo. Link to comment Share on other sites More sharing options...
Nickz Posted May 15, 2022 Share Posted May 15, 2022 (edited) 1 hour ago, tengoqprobarlo said: Probé con 8 pero daba mil fallos, así que volví a 7.4.29... el dijo 7.3 no 7.4 En algunos servidores debes dar derecho al usuario www-data. Edited May 15, 2022 by Nickz (see edit history) Link to comment Share on other sites More sharing options...
Gerardo Martinez G Posted May 17, 2022 Share Posted May 17, 2022 Comentas que tienes un servidor VPS, tienes que tener acceso root y te deberia de dejar hacer todo lo que quieras en tu servidor dale una buena leida y considero que estan muy bien los requerimientos aqui puestoshttps://devdocs.prestashop.com/1.7/basics/installation/system-requirements/ https://devdocs.prestashop.com/1.7/basics/installation/httpd/ https://devdocs.prestashop.com/1.7/basics/installation/configuration/ En 5/15/2022 a las 9:13 AM, tengoqprobarlo dijo: Así que he puesto los Permisos de Directorios a 755 y los Archivos a 644, como me decías. Directorios 755: Propietario: Lectura-Escritura-Ejecución Grupo: Lectura-Ejecución Otros (Público): Lectura-Ejecución Archivos 644: Propietario: Lectura-Escritura Grupo: Lectura Otros (Público): Lectura considero que sigue siendo el problema del usuario que esta ejecutando php, (si lo estas haceidno con fpm) que un usuario ejecuta php y otro es el dueño de los archivos Si ocupas ayuda con servidor Linux, estoy a tus ordenes somos expertos en este tema Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now