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`

回答:


33

この手順を実行するだけでこの問題を解決できました。手順に従ってください:

  1. varディレクトリにある「di」フォルダを削除します(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
zus

1
Windowsの@zusは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/*

場合によっては、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

1
警告:ltrim()はパラメーター1が文字列であると想定し、オブジェクトは/var/www/html/magento/magento2.0/vendor/magento/framework/Code/Generator/EntityAbstract.phpで152行目に指定されています。通知:初期化されていない文字列オフセット:行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の

1
@murtuza 内のvar/generationフォルダーとディレクトリをクリアして、再試行してください。cachevar
マディ
弊社のサイトを使用することにより、あなたは弊社のクッキーポリシーおよびプライバシーポリシーを読み、理解したものとみなされます。
Licensed under cc by-sa 3.0 with attribution required.