Magento 2 - 添加样本数据后'区号未设置:'

时间:2016-02-01 11:54:23

标签: php magento composer-php magento2 magento-2.0

所以我已经让magento 2正常运行,我甚至已经开始了我自己的主题,但我已经尝试在安装magento后安装示例数据。它在终端中返回了“区号未设置:”,下面是我的步骤。

onCreateView

返回:

@Override
public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
    View v =inflater.inflate(R.layout.games,container,false);

    gamesCategory = (Spinner)v.findViewById(R.id.spinner);
    ArrayAdapter <String> nameArrayAd = new ArrayAdapter <>(getActivity(), android.R.layout.simple_spinner_dropdown_item, shapes);

    gamesCategory.setAdapter(nameArrayAd);
    initializationMode = true;
    gamesCategory.setOnItemSelectedListener(
            new AdapterView.OnItemSelectedListener() {
                @Override
                public void onItemSelected(AdapterView<?> arg0, View arg1, int arg2, long arg3) {
                    if(!initializationMode) {
                    int position = gamesCategory.getSelectedItemPosition();

                    if (position > 0) ;
                    switch (position) {

                        case 0:
                            i = new Intent(getActivity(), GamesAnimals.class);
                            break;
                        case 1:
                            i = new Intent(getActivity(), GamesBody.class);
                            break;
                        case 2:
                            i = new Intent(getActivity(), GamesClothes.class);
                            break;
                        case 3:
                            i = new Intent(getActivity(), GamesFood.class);
                            break;
                        case 4:
                            i = new Intent(getActivity(), GamesTransport.class);
                            break;

                    }

                    startActivity(i);
                    } else {
            initializationMode = false;
                     }

                }

                @Override
                public void onNothingSelected(AdapterView<?> arg0) {

                }
            }
    );


    return v;
}

然后我跑了:

bin/magento sampledata:deploy    
composer update

我在下面的屏幕截图中显示以下错误,我似乎无法找到其他人在网上遇到同样的错误。

terminal window of Area code not set:

Loading composer repositories with package information
Updating dependencies (including require-dev)
  - Installing magento/module-catalog-sample-data (100.0.3)
    Downloading: 100%         

  - Installing magento/module-bundle-sample-data (100.0.3)
    Downloading: 100%         

  - Installing magento/module-widget-sample-data (100.0.3)
    Downloading: 100%         

  - Installing magento/module-customer-sample-data (100.0.3)
    Downloading: 100%         

  - Installing magento/sample-data-media (100.0.3)
    Downloading: 100%         

  - Installing magento/module-theme-sample-data (100.0.3)
    Downloading: 100%         

  - Installing magento/module-cms-sample-data (100.0.3)
    Downloading: 100%         

  - Installing magento/module-catalog-rule-sample-data (100.0.3)
    Downloading: 100%         

  - Installing magento/module-sales-rule-sample-data (100.0.3)
    Downloading: 100%         

  - Installing magento/module-review-sample-data (100.0.3)
    Downloading: 100%         

  - Installing magento/module-tax-sample-data (100.0.3)
    Downloading: 100%         

  - Installing magento/module-grouped-product-sample-data (100.0.3)
    Downloading: 100%         

  - Installing magento/module-downloadable-sample-data (100.0.3)
    Downloading: 100%         

  - Installing magento/module-msrp-sample-data (100.0.3)
    Downloading: 100%         

  - Installing magento/module-sales-sample-data (100.0.3)
    Downloading: 100%         

  - Installing magento/module-product-links-sample-data (100.0.3)
    Downloading: 100%         

  - Installing magento/module-configurable-sample-data (100.0.3)
    Downloading: 100%         

  - Installing magento/module-wishlist-sample-data (100.0.3)
    Downloading: 100%         

  - Installing magento/module-swatches-sample-data (100.0.3)
    Downloading: 100%         

  - Installing magento/module-offline-shipping-sample-data (100.0.3)
    Downloading: 100%         

Writing lock file
Generating autoload files

现在我的法师安装工作正常 - 错误返回:

请升级您的数据库:从Magento根目录运行“bin / magento setup:upgrade”。

我无法做到,因为它返回并且错误,任何帮助都会很棒。

6 个答案:

答案 0 :(得分:45)

有同样的问题,并且能够解决它。

首先尝试运行此命令:

php bin/magento sampledata:reset

然后重新运行:

php bin/magento setup:upgrade

如果您遇到内存耗尽错误(我遇到过),请尝试在-dmemory_limit=6G命令上添加setup:upgrade

php -dmemory_limit=6G bin/magento setup:upgrade

答案 1 :(得分:3)

尝试先运行此命令:

php bin/magento app:config:import

,然后清除缓存并运行setup:upgrade

答案 2 :(得分:2)

在安装示例数据并再次使用 composer 卸载几个选定的示例数据模块后,我在 Magento 2.4.2 上遇到了这个问题。为了解决这个问题,我手动更改了 app\etc\config.php,方法是为示例数据不需要的扩展设置 0 而不是 1(我尝试使用 CLI 命令删除的扩展)。

答案 3 :(得分:1)

我在安装Magento 2.0.7后遇到同样的问题,然后尝试安装示例数据。

Module 'Magento_ConfigurableSampleData':  [Magento\Framework\Exception\SessionException]  Area code not set: Area code must be set before starting a session.

我也尝试重置(php bin / magento sampledata:reset),但还有另一个错误:

  [Zend_Db_Statement_Exception]
  SQLSTATE[23000]: Integrity constraint violation: 1048 Column 'module' cannot be null, query was: INSERT INTO `setup_module` (`modul
  e`, `data_version`) VALUES (?, ?)

因为我的设置基于CLI(php bin / magento setupinstall --...),所以我无法知道原因。直到它在网站前面再次设置。在设置php检查过程中,有一个php值错误:

Your PHP Version is 5.6.18, but always_populate_raw_post_data = 0. $HTTP_RAW_POST_DATA is deprecated from PHP 5.6 onwards and will be removed in PHP 7.0. This will stop the installer from running. Please open your php.ini file and set always_populate_raw_post_data to -1. If you need more help please call your hosting provider.

因此,在php.ini或.htaccess中设置always_populate_raw_post_data = -1之后。 (如果需要,重启php或php-fpm)。然后,样本数据安装并运行良好。

希望这些步骤对某些人有用。

答案 4 :(得分:1)

我遇到了同样的问题并且能够解决

仅针对 magento (2.4.1) 尝试此命令

php -dmemory_limit=5G bin/magento cache:flush
php -dmemory_limit=5G bin/magento sampledata:reset
php -dmemory_limit=5G bin/magento setup:upgrade

在 magento (2.4.2+) 上试试这个命令 在任何扩展中搜索 setAreaCode() 方法的用法,并检查它们是从哪里调用的。

替换代码

protected function execute(InputInterface $input, OutputInterface $output)
{
    $this->appState->setAreaCode('frontend');
}

通过

protected function execute(InputInterface $input, OutputInterface $output)
{
try{
    $output->setDecorated(true);
    $this->appState->setAreaCode(\Magento\Framework\App\Area::AREA_GLOBAL);
} catch (\Magento\Framework\Exception\LocalizedException $exception) {
       // do nothing
   }
}

交替使用核心\Magento\Framework\App\State::emulateAreaCode方法临时设置区号:

$self = $this;
   try {
       $this->appState->emulateAreaCode('frontend', function () use ($self) {
           // operations
       });
   } catch (\Exception $exception) {
       // handle exception
   }

答案 5 :(得分:-1)

我遇到的关于此特定错误的唯一问题是人们从以前版本的Magento 2 beta更新。您可以在Magento 2 repo问题跟踪器下阅读Github上有关此内容的所有详细信息:Area code is not set while setup:upgrade #1529

总之,开发人员将升级说明更改为以下内容:

  

基本上,你从卸载开始,但不要运行setup:upgrade。相反,请更新代码,编辑器更新,再次安装。

他们引用this article on Magento来解释它。

现在我不知道这是否也能解决你的错误,但似乎是同样的问题。此外,即使Magento 2允许在安装后安装样本数据,它已知比从一开始就更麻烦。以下是来自Mageto的一些资源,您可以查看以确保您做正确的事情:

也是预感...(参见编辑)...尝试改回原来的Luma主题,看看是否有所作为。

修改
通过预感我的意思是我有一个类似于这个问题的重大问题,我从不关心它为什么导致它,但切换回默认主题和更新解决了我所有的问题。然后我再次切换回我自己的主题,从那以后它就没有问题了。