เกิดข้อผิดพลาดหลังจากอัพเกรดวีโอไอพี


27

หลังจากยิงคำสั่งนี้ใน CLI php bin/magento setup:upgrade

ฉันพบข้อผิดพลาดด้านล่าง -:

Fatal error: Uncaught exception 'Magento\Framework\Exception\LocalizedException' with message 'Can't create directory 
/var/www/html/magento/magento2.0/var/generation/Magento/Framework/App/ResourceConnection/.' in 
/var/www/html/magento/magento2.0/vendor/magento/framework/Code/Generator.php:103
Stack trace:
#0 /var/www/html/magento/magento2.0/vendor/magento/framework/Code/Generator/Autoloader.php(35): Magento\Framework\Code\Generator->generateClass('Magento\\Framewo...')
#1 [internal function]: Magento\Framework\Code\Generator\Autoloader->load('Magento\\Framewo...') #2 [internal function]: spl_autoload_call('Magento\\Framewo...')
#3 /var/www/html/magento/magento2.0/vendor/magento/framework/Code/Reader/ClassReader.php(19): ReflectionClass->__construct('Magento\\Framewo...')
#4 /var/www/html/magento/magento2.0/vendor/magento/framework/ObjectManager/Definition/Runtime.php(44): Magento\Framework\Code\Reader\ClassReader->getConstructor('Magento\\Framewo...')
#5 /var/www/html/magento/magento2.0/vendor/magento/framework/ObjectMana in /var/www/html/magento/magento2.0/vendor/magento/framework/Code/Generator.php on line 103`

คำตอบ:


33

ฉันได้แก้ไขปัญหานี้โดยเพียงทำตามขั้นตอนนี้ ทำตามขั้นตอน:

  1. ลบโฟลเดอร์ "di" ที่อยู่ในvarไดเรกทอรี (สำหรับ2.0และ2.1)
  2. เรียกใช้คำสั่งนี้และไปที่คำสั่งโฟลเดอร์รูทโปรเจคของคุณ:

    cd /yourmagentoroot/

    หากโหมด Magento ของคุณเป็นผู้พัฒนาคุณไม่จำเป็นต้องเรียกใช้คำสั่งด้านล่างเพียงแค่ลบvar/generationไดเรกทอรี (2.0 & 2.1) หรือgeneratedโฟลเดอร์ (2.2 เป็นต้นไป)

  3. จากนั้นเรียกใช้คำสั่งนี้

    php bin/magento setup:di:compile
  4. จากนั้นรันคำสั่งนี้ (จำเป็นในโหมดการผลิตเท่านั้น)

    php bin/magento setup:static-content:deploy
  5. สุดท้ายให้สิทธิ์การเข้าถึงไฟล์ / ไดเรกทอรี (หากจำเป็น)


ฉันจะแก้ปัญหา SUDO ได้อย่างไร: snag.gy/hC5JDL.jpg
2560

1
@zus ใน windows ลองไม่มี sudo
Murtuza Zabuawala

31

ให้การควบคุมเต็มรูปแบบ (อ่าน / เขียน / ดำเนินการ) กับไดเรกทอรีvarและpubแก้ไขปัญหานี้ให้ฉัน

sudo chmod -R 777 var pub

หรือคุณอาจลองใช้คำสั่งโดยใช้sudo

sudo php bin/magento setup:upgrade

ลองล้างแคชด้วย

sudo rm -rf var/cache/* var/generation/*

ในบางกรณีหากคุณมี sudo เข้าถึงเจ้าของระบบไฟล์วีโอไอพีหรือผู้ใช้เว็บเซิร์ฟเวอร์ (www-data / nginx) คุณสามารถดำเนินการคำสั่งดังนี้: sudo -u www-data bin / magento list
div

12

ตั้งค่าความเป็นเจ้าของอีกครั้ง

CentOS: chown -R :apache .
Ubuntu: chown -R :www-data .

อ้างอิงลิงค์นี้


ตอนนี้ฉันได้รับข้อผิดพลาดนี้
Murtuza Zabuawala

1
คำเตือน: ltrim () คาดว่าพารามิเตอร์ 1 จะเป็นสตริงวัตถุที่กำหนดใน /var/www/html/magento/magento2.0/vendor/magento/framework/Code/Generator/EntityAbstract.php ที่บรรทัด 152 ประกาศ: ออฟเซ็ตสตริงที่ไม่ได้เตรียมไว้: 0 ใน /var/www/html/magento/magento2.0/vendor/magento/framework/Autoload/ClassLoaderWrapper.php บรรทัดที่ 81 ประกาศ: สตริงที่ไม่มีการชดเชย: 0 ใน /var/www/html/magento/magento/magento/magento/fagework/Autoload/ClassLoaderWrapper.php บรรทัดที่ 81 ประกาศ: สตริงที่ไม่ได้เตรียมการ ผู้ขาย / ผู้แต่ง / ClassLoader.php ในบรรทัด 317 คำเตือน: ltrim () คาดว่าพารามิเตอร์ 1 จะเป็นสตริงวัตถุที่กำหนดใน /var/www/html/magento/magento2.0/vendor/magento/framework/Code/Generator/EntityAbstract php ออนไลน์
Murtuza Zabuawala

1
@murtuza โปรดล้างvar/generationโฟลเดอร์และcachedirs ของคุณภายในvarแล้วลองอีกครั้ง
แมดดี้
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.