Umstieg PHP 7.0 zu 7.2

Hallo,

wir würden gerne mit unserem Shop (5.5.10) auf PHP 7.2 umstellen. Das klappt soweit auch und alles scheint zu funktionieren.

Allerdings ist es nicht mehr möglich Dokumente zu erstellen.

Dokument für einzelne Bestellung kommt gar keine Fehlermeldung und sie erscheint auch nicht im Backend. Nach neuladen des Backends, wird dann eine bei der Bestellung angezeigt, allerdings kann diese nicht geöffnet werden (sie existiert ja nicht - ID gibt’s nicht in files/documents)

Versucht man über die Stapelverarbeitung Dokumente zu erstellen, funktioniert dies auch nicht, hier bekomme ich aber immerhin die Fehlermeldung: “Dokument-Erstellung abgebrochen: Die Bestellung enthält inkonsistente Daten”

Leider weiß ich nicht weiter, wo ich hier ansetzen kann. Die Bestellungen selbst sehen sauber aus, die Fehler welche ich durch Google gefunden habe habe ich alle gecheckt (Timeout, fehlende Zahlungsart, fehlendes Land, Plugins gelöscht, IonCube Checker, etc). Nach zurückstellen auf PHP 7.0 geht wieder alles.

Gibt es etwas was ich vergessen habe zu beachten bei der Umstellung?

 

 

EDIT: Hier noch die PHP.ini
 

[PHP]
  engine = On
  short_open_tag = On
  date.timezone = "Europe/Berlin"
  precision = 14
  y2k_compliance = Off
  output_buffering = Off
  output_handler =
  unserialize_callback_func =
  zlib.output_compression =
  implicit_flush = Off
  allow_call_time_pass_reference = On
  safe_mode = Off
  safe_mode_gid =
  safe_mode_include_dir =
  safe_mode_exec_dir =
  safe_mode_allowed_env_vars = "PHP_"
  safe_mode_protected_env_vars = "LD_LIBRARY_PATH"
  disable_functions =
  highlight.string = "#CC0000"
  highlight.comment = "#FF9900"
  highlight.keyword = "#006600"
  highlight.bg = "#FFFFFF"
  highlight.default = "#0000CC"
  highlight.html = "#000000"
  expose_php = On
  max_execution_time = 600
  memory_limit = 1024M
  error_reporting = 32759
  display_startup_errors =
  track_errors = Off
  variables_order = "EGPCS"
  register_argc_argv = On
  post_max_size = 10M
  gpc_order = "GPC"
  magic_quotes_runtime = Off
  magic_quotes_sybase = Off
  default_mimetype = "text/html"
  doc_root =
  user_dir =
  enable_dl = On
  file_uploads = 1
  allow_url_include = 0
  asp_tags = On
  allow_url_fopen = Off
  display_errors = On
  log_errors = On
  error_log = "/kunden/xxx/files/errors_all.log"
  register_globals = Off
  magic_quotes_gpc = On
  auto_prepend_file =
  auto_append_file =
  include_path = ".:/usr/local/lib/php"
  upload_max_filesize = 50M
  extension_dir = "/usr/local/lib/php_modules/7-70STABLE" (wurde auf korrekten Pfad geändert nach 7.2 Umstellung)
  zend_optimizer.enable_loader = On
  zend_optimizer.optimization_level = 15
  zend_extension = "/usr/local/lib/php_modules/7-70STABLE/ioncube_loader_lin_7.0.so" (wurde auf korrekten Pfad geändert nach 7.2 Umstellung)

[mail function]
  SMTP = "localhost"
  sendmail_from = "xxx"

[SQL]
  sql.safe_mode = Off

[ODBC]
  odbc.allow_persistent = 1
  odbc.check_persistent = 1
  odbc.max_persistent = -1
  odbc.max_links = -1
  odbc.defaultlrl = 4096
  odbc.defaultbinmode = 1

[MySQL]
  mysql.allow_persistent = Off
  mysql.max_persistent = -1
  mysql.max_links = -1
  mysql.default_port =
  mysql.default_socket =
  mysql.default_host =
  mysql.default_user =
  mysql.default_password =

[PostgresSQL]
  pgsql.allow_persistent = On
  pgsql.auto_reset_persistent =
  pgsql.max_persistent = -1
  pgsql.max_links = -1

[bcmath]
  bcmath.scale = 0

[Session]
  session.serialize_handler = "php"
  session.gc_probability = 1
  session.referer_check =
  session.entropy_length = 0
  session.entropy_file =
  session.cache_limiter = "nocache"
  session.cache_expire = 180
  session.use_trans_sid = 1
  url_rewriter.tags = "a=href,area=href,frame=src,input=src,form=fakeentry"
  session.save_handler = "files"
  session.save_path = "/tmp"
  session.use_cookies = On
  session.name = "PHPSESSID"
  session.auto_start = Off
  session.cookie_lifetime = 0
  session.cookie_path = "/"
  session.cookie_domain =
  session.gc_maxlifetime = 1440

 

Funktioniert die Dokumenten Vorschau? Wenn ja liegt es mit hoher Wahrscheinlichkeit daran, dass PHP (Shopware) kein Zugriff auf das „tmp“ Verzeichnis des Servers hat. Dies kann der Anbieter lösen. Shopware speichert diese Datei bei der Erstellung einmal zwischen, um Sie dann an den richtigen Ort zu kopieren.

 

Probiere mal vor dem Start der Stapelverarbeitung das Bestellmodul neu zu laden (F5-Taste + Modul neu aufrufen).

https://issues.shopware.com/issues/SW-23951

Zugriff auf “tmp” ist da, neuladen bringt keine Änderung.

Habe gerade das PHP Log durchgeschaut:

PHP Fatal error:  Cannot use Zend\Barcode\Object as Object because ‘Object’ is a special class name in /kunden/xxx/webseitenxxx/custom/plugins/[PluginName]/StoreFrontBundle/Service/vendor/zendframework/zend-barcode/src/Renderer/AbstractRenderer.php on line 12

Ich schätze daran könnte es liegen? Plugin erstellt auf den Dokumenten einen Code 128 Barcode und ist voll kompatibel zu allen Shopware Versionen gekennzeichnet.

Ausschnitt aus der Plugin Installationsanleitung: “Es wird die Version 1.1.4 des PHP QR Code Encoder in diesem Plugin verwendet und wurde dafür den Shopwarerestriktionen entsprechend angepasst.”

Das passt evtl. nicht mehr mit PHP 7.2 oder wir müssen in den Templates was abändern?

Sieht ganz danach aus als ob es an dem Plugin liegt. Deaktiviere das doch mal und schaue dann ob es läuft. Wenn ja -> Kontaktiere den Hersteller für eine Lösung. 

LG Andre