Åtgärda ett ogiltigt förskjutningsfel
I den här artikeln finns en lösning för när du i Adobe Commerce 2.1 eller senare får ett felmeddelande om att en ny produkt har skapats i Commerce Admin att åtgärdas.
I Adobe Commerce 2.1 och senare kan följande fel visas när du skapar en ny produkt i Commerce Admin:
Warning: Illegal string offset 'is_in_stock' in [...]/vendor/
magento/module-catalog-inventory/Ui/DataProvider/Product/Form/
Modifier/AdvancedInventory.php on line 87
Detalj
I Adobe Commerce 2.1 och senare används PHP-kodkommentarer i valideringsanropet getDocComment
i metoden getExtensionAttributes
i Magento\Framework\Api\ExtensionAttributesFactory.php
.
Om du har aktiverat PHP OPcache (vilket vi rekommenderar) visas det här felet eftersom inställningen opcache.save_comments
är inaktiverad som standard.
Tillfällig lösning
Du löser problemet genom att leta upp dina inställningar för OPCache-konfigurationen och aktivera opcache.save_comments
enligt följande:
Steg 1: Leta reda på din OPCache-konfiguration
Så här hittar du konfigurationsinställningar för OPCache:
Inställningarna för PHP OPcache finns vanligtvis antingen i php.ini
eller opcache.ini
. Platsen kan vara beroende av operativsystemet och PHP-versionen. Konfigurationsfilen för OPCache kan ha ett [opcache]
-avsnitt eller inställningar som opcache.enable
.
Använd följande riktlinjer för att hitta den:
- Apache-webbserver:
För Ubuntu med Apache finns inställningarna för OPcache vanligtvis i php.ini
.
För CentOS med Apache eller nginx finns OPcache-inställningarna vanligtvis i /etc/php.d/opcache.ini
.
Om inte, använder du följande kommando för att hitta den:
$ sudo find / -name 'opcache.ini'
- nginx-webbserver med PHP-FPM:
/etc/php5/fpm/php.ini
.
Om du har fler än en opcache.ini
ändrar du alla.
Steg 2: Aktivera opcache.save_comments
-
Öppna konfigurationsfilen för OPCache i en textredigerare.
-
Leta reda på
opcache.save_comments
och avkommentera den om det behövs. -
Kontrollera att värdet är
1
. -
Spara ändringarna och avsluta textredigeraren.
-
Starta om webbservern:
- Apache, Ubuntu:
service apache2 restart
- Apache, CentOS:
service httpd restart
- nginx, Ubuntu och CentOS:
service nginx restart
- Apache, Ubuntu:
-
Generera om DI-konfiguration och alla saknade klasser som kan genereras automatiskt:
$ bin/magento setup:di:compile`