magento升级后出现错误


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`

Answers:


33

我仅通过执行以下步骤就解决了这个问题。遵循步骤:

  1. 删除目录中的“ di”文件夹var(用于2.02.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
zus

1
@zus在Windows中尝试不使用sudo
Murtuza Zabuawala 17-10-27

31

完全控制(读/写/执行)到varpub目录可以为我解决此问题。

sudo chmod -R 777 var pub

或者,您也可以尝试使用sudo运行命令。

sudo php bin/magento setup:upgrade

另外,尝试清除缓存。

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

在某些情况下,如果您具有对magento文件系统所有者或Web服务器用户(www-data / nginx)的sudo访问权限。您可以像这样执行命令:sudo -u www-data bin / magento list--
div

12

再次设置所有权

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

引用此链接


现在我遇到了这个错误
Murtuza Zabuawala 2015年

1
警告:ltrim()期望参数1为字符串,在第152行的/var/www/html/magento/magento2.0/vendor/magento/framework/Code/Generator/EntityAbstract.php中给定的对象注意:未初始化的字符串偏移量:在第81行的/var/www/html/magento/magento2.0/vendor/magento/framework/Autoload/ClassLoaderWrapper.php中为0注意:未初始化的字符串偏移量在/var/www/html/magento/magento2.0/中为0第317行的vendor / composer / ClassLoader.php警告:ltrim()期望参数1为字符串,在/var/www/html/magento/magento2.0/vendor/magento/framework/Code/Generator/EntityAbstract中给出的对象。 php在线
Murtuza Zabuawala 2015年

1
@murtuza请清除您的var/generation文件夹,并cache显示目录内var,然后再试一次。
Maddy
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.