オプションのサンプルデータのインストール中にエラーが発生する
このトピックでは、オプションのサンプルデータのインストールで発生する可能性のあるエラーの解決策について説明します。
症状(ファイルシステムの権限)
セットアップウィザードを使用したサンプルデータのインストール中にコンソールログにエラーが発生する:
Module 'Magento_CatalogRuleSampleData':
[ERROR] exception 'Magento\Framework\Exception\LocalizedException' with message 'Can't create directory /var/www/html/magento2/generated/code/Magento/CatalogRule/Model/.' in /var/www/html/magento2/lib/internal/Magento/Framework/Code/Generator.php:103
(more)
Next exception 'ReflectionException' with message 'Class Magento\CatalogRule\Model\RuleFactory does not exist' in /var/www/html/magento2/lib/internal/Magento/Framework/Code/Reader/ClassReader.php:29
(more)
これらの例外は、ファイルシステムの権限設定に起因します。
Solution
ファイルシステムの所有権と権限をroot権限を持つユーザーとして再度設定します。
症状(実稼動モード)
現在実稼動モード に設定されている場合、magento sampledata:deploy コマンドを使用すると、サンプルデータのインストールが失敗します。
PHP Fatal error: Uncaught TypeError: Argument 1 passed to Symfony\Component\Console\Input\ArrayInput::__construct() must be of the type array, object given, called in /<path>/vendor/magento/framework/ObjectManager/Factory/AbstractFactory.php on line 97 and defined in /<path>/vendor/symfony/console/Symfony/Component/Console/Input/ArrayInput.php:37
Solution
サンプルデータは実稼動モードにインストールしないでください。 開発者モードに切り替えて、一部のvar ディレクトリをクリアし、もう一度試してください。
次のコマンドを、Adobe Commerce ファイルシステム オーナーの順に入力します。
cd <magento_root>
bin/magento deploy:mode:set developer
rm -rf generated/code/* generated/metadata/*
bin/magento sampledata:deploy
症状(セキュリティ)
オプションのサンプルデータをインストールすると、次のようなメッセージが表示されます。
PHP Fatal error: Call to undefined method Magento\Catalog\Model\Resource\Product\Interceptor::getWriteConnection() in /var/www/magento2/app/code/Magento/SampleData/Module/Catalog/Setup/Product/Gallery.php on line 144
Solution
サンプルデータのインストール時に、次のようなリソースを使用してSELinuxを無効にします。
症状(分岐の開発)
その他のエラーは次のように表示されます。
[Magento\Setup\SampleDataException] Error during sample data installation: Class Magento\Sales\Model\Service\OrderFactory does not exist
Solution
Adobe Commerce開発ブランチでサンプルデータを使用する際に、既知の問題があります。 代わりにmaster ブランチを使用してください。 次のようにマスターブランチに切り替えることができます。
cd <magento_root>
git checkout master
git pull origin master
症状(max_execution_time)
サンプルデータのインストールが完了する前に、インストールが停止します。 例は次のとおりです。
(more)
Module 'Magento_CustomerSampleData':
Installing data...
サンプルデータのインストールが完了しません。
このエラーは、PHP スクリプトの最大設定実行時間を超えた場合に発生します。 サンプルデータの読み込みに時間がかかる場合があるので、インストール時に値を増やすことができます。
Solution
root権限を持つユーザーは、php.iniを変更して、max_execution_timeの値を600以上に増やします。 (600分は10分。 値を任意に増やすことができます)。 インストールが成功したら、max_execution_timeを以前の値に戻す必要があります。
php.iniの場所がわからない場合は、次のコマンドを入力します。
php --ini
Loaded Configuration Fileの値は、変更する必要があるphp.iniです。