I have installed everything needed for magento-2 to run on xampp on windows. php.ini is also edited properly and have enabled all the extensions needed. When I try to run the localhost/magento link i get the error in browser,

1 exception(s):
Exception #0 (DomainException): The default website isn't defined. Set the website and try again.
<pre>#1 Magento\Store\Model\StoreResolver\Website->getAllowedStoreIds() called at [vendor\magento\module-store\Model\StoresData.php:67]
#2 Magento\Store\Model\StoresData->getStoresData() called at [vendor\magento\module-store\Model\StoreResolver.php:138]
#3 Magento\Store\Model\StoreResolver->getStoresData() called at [vendor\magento\module-store\Model\StoreResolver.php:97]
#4 Magento\Store\Model\StoreResolver->getCurrentStoreId() called at [vendor\magento\module-store\Model\StoreManager.php:160]
#5 Magento\Store\Model\StoreManager->getStore() called at [generated\code\Magento\Store\Model\StoreManagerInterface\Proxy.php:119]
#6 Magento\Store\Model\StoreManagerInterface\Proxy->getStore() called at [vendor\magento\module-store\Model\Resolver\Store.php:30]
#7 Magento\Store\Model\Resolver\Store->getScope() called at [vendor\magento\framework\App\Config\ScopeCodeResolver.php:49]
#8 Magento\Framework\App\Config\ScopeCodeResolver->resolve() called at [vendor\magento\framework\App\Config.php:69]
#9 Magento\Framework\App\Config->getValue() called at [vendor\magento\module-backend\App\Area\FrontNameResolver.php:123]
#10 Magento\Backend\App\Area\FrontNameResolver->isHostBackend() called at [vendor\magento\module-backend\App\Area\FrontNameResolver.php:106]
#11 Magento\Backend\App\Area\FrontNameResolver->getFrontName() called at [vendor\magento\framework\App\AreaList.php:73]
#12 Magento\Framework\App\AreaList->getCodeByFrontName() called at [vendor\magento\framework\App\Http.php:111]
#13 Magento\Framework\App\Http->launch() called at [vendor\magento\framework\App\Bootstrap.php:264]
#14 Magento\Framework\App\Bootstrap->run() called at [pub\index.php:30]

I have surfed over internet everywhere, tried installing everything again, changed versions also but no luck.

can anyone guide me on this topic.


1 Answer 1


The error message you're encountering, "magento 2 xampp pdo_mysql extension is not installed," indicates that the PHP extension "pdo_mysql" required by Magento 2 is either not enabled or not installed in your XAMPP environment on Windows.

To resolve this issue, follow these steps:

  1. Locate your XAMPP installation directory, typically at C:\xampp or a similar location.

  2. Open the php.ini file found in the php subdirectory, which should be at a path like C:\xampp\php\php.ini.

  3. Search for the following line in the php.ini file:


This line might be commented out, as indicated by the semicolon (;) at the beginning of the line.

  1. Uncomment the line by removing the semicolon, so it looks like this: makefile


  2. Save the php.ini file and close it.

  3. Restart your Apache server in XAMPP. You can do this by opening the XAMPP Control Panel, stopping the Apache service, and then starting it again.

  4. Check if Magento 2 is now working correctly. If you still face issues, ensure that all required PHP extensions for Magento 2 are installed and enabled in your php.ini file. You can find the list of required extensions in the official Magento 2 documentation: https://devdocs.magento.com/guides/v2.4/install-gde/system-requirements-tech.html

Remember that Magento 2 is optimized for a Linux-based environment, so you may encounter some challenges when working with XAMPP on Windows. Consider using a virtualization solution like Docker, Vagrant, or a virtual machine with a Linux-based environment for a more seamless Magento 2 development experience.

Your Answer

By clicking “Post Your Answer”, you agree to our terms of service and acknowledge you have read our privacy policy.

Not the answer you're looking for? Browse other questions tagged or ask your own question.