Magento 23.7 only supports the command line to install under Windows 10. Here are some issues you may meet
Issue One:
403 Error. After you loaded all files to your web, and have run xampp successfully, you may get 403 error when you visit HTTP://localhost.
Usually, .htaccess makes the problem, simple way to check, just remove or deleted .htaccess, if you can visit http:/www.local successfully, then you can change the following:
## Deny access to root files to hide sensitive application information RedirectMatch 403 /\.git <Files composer.json> <IfVersion < 2.4> order allow,deny deny from all </IfVersion> <IfVersion >= 2.4> Require all denied </IfVersion> </Files> <Files composer.lock> <IfVersion < 2.4> order allow,deny deny from all </IfVersion> <IfVersion >= 2.4> Require all denied </IfVersion> </Files> <Files .gitignore> <IfVersion < 2.4> order allow,deny deny from all </IfVersion> <IfVersion >= 2.4> Require all denied </IfVersion> </Files> <Files .htaccess> <IfVersion < 2.4> order allow,deny deny from all </IfVersion> <IfVersion >= 2.4> Require all denied </IfVersion> </Files> <Files .htaccess.sample> <IfVersion < 2.4> order allow,deny deny from all </IfVersion> <IfVersion >= 2.4> Require all denied </IfVersion> </Files> <Files .php_cs.dist> <IfVersion < 2.4> order allow,deny deny from all </IfVersion> <IfVersion >= 2.4> Require all denied </IfVersion> </Files> <Files .travis.yml> <IfVersion < 2.4> order allow,deny deny from all </IfVersion> <IfVersion >= 2.4> Require all denied </IfVersion> </Files> <Files CHANGELOG.md> <IfVersion < 2.4> order allow,deny deny from all </IfVersion> <IfVersion >= 2.4> Require all denied </IfVersion> </Files> <Files COPYING.txt> <IfVersion < 2.4> order allow,deny deny from all </IfVersion> <IfVersion >= 2.4> Require all denied </IfVersion> </Files> <Files Gruntfile.js> <IfVersion < 2.4> order allow,deny deny from all </IfVersion> <IfVersion >= 2.4> Require all denied </IfVersion> </Files> <Files LICENSE.txt> <IfVersion < 2.4> order allow,deny deny from all </IfVersion> <IfVersion >= 2.4> Require all denied </IfVersion> </Files> <Files LICENSE_AFL.txt> <IfVersion < 2.4> order allow,deny deny from all </IfVersion> <IfVersion >= 2.4> Require all denied </IfVersion> </Files> <Files nginx.conf.sample> <IfVersion < 2.4> order allow,deny deny from all </IfVersion> <IfVersion >= 2.4> Require all denied </IfVersion> </Files> <Files package.json> <IfVersion < 2.4> order allow,deny deny from all </IfVersion> <IfVersion >= 2.4> Require all denied </IfVersion> </Files> <Files php.ini.sample> <IfVersion < 2.4> order allow,deny deny from all </IfVersion> <IfVersion >= 2.4> Require all denied </IfVersion> </Files> <Files README.md> <IfVersion < 2.4> order allow,deny deny from all </IfVersion> <IfVersion >= 2.4> Require all denied </IfVersion> </Files> <Files magento_umask> <IfVersion < 2.4> order allow,deny deny from all </IfVersion> <IfVersion >= 2.4> Require all denied </IfVersion> </Files> <Files auth.json> <IfVersion < 2.4> order allow,deny deny from all </IfVersion> <IfVersion >= 2.4> Require all denied </IfVersion> </Files> <Files .user.ini> <IfVersion < 2.4> order allow,deny deny from all </IfVersion> <IfVersion >= 2.4> Require all denied </IfVersion> </Files> # For 404s and 403s that aren't handled by the application, show plain 404 response ErrorDocument 404 /pub/errors/404.php ErrorDocument 403 /pub/errors/404.php
to:
## Deny access to root files to hide sensitive application information RedirectMatch 404 /\.git <Files composer.json> order allow,deny deny from all </Files> <Files composer.lock> order allow,deny deny from all </Files> <Files .gitignore> order allow,deny deny from all </Files> <Files .htaccess> order allow,deny deny from all </Files> <Files .htaccess.sample> order allow,deny deny from all </Files> <Files .php_cs> order allow,deny deny from all </Files> <Files .travis.yml> order allow,deny deny from all </Files> <Files CHANGELOG.md> order allow,deny deny from all </Files> <Files CONTRIBUTING.md> order allow,deny deny from all </Files> <Files CONTRIBUTOR_LICENSE_AGREEMENT.html> order allow,deny deny from all </Files> <Files COPYING.txt> order allow,deny deny from all </Files> <Files Gruntfile.js> order allow,deny deny from all </Files> <Files LICENSE.txt> order allow,deny deny from all </Files> <Files LICENSE_AFL.txt> order allow,deny deny from all </Files> <Files nginx.conf.sample> order allow,deny deny from all </Files> <Files package.json> order allow,deny deny from all </Files> <Files php.ini.sample> order allow,deny deny from all </Files> <Files README.md> order allow,deny deny from all </Files> # For 404s and 403s that aren't handled by the application, show plain 404 response ErrorDocument 404 /pub/errors/404.php ErrorDocument 403 /pub/errors/404.php
Issues Two, you may can not run composer successfully, and got the following:
C: Users Tiger>composer PHP Warning: PHP Startup: Unable to load dynamic library bz2 (tried: xampp php ext bz2 , xampp php ext php_bz2.dll in Unknown on line 0 Warning: PHP Startup: Unable to load dynamic library bz2 (tried: xampp php ext bz2 , xampp php ext php_bz2.dll in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library curl (tried: xampp php ext curl , xampp php ext php_curl.dll in Unknown on line 0 Warning: PHP Startup: Unable to load dynamic library curl (tried: xampp php ext curl , xampp php ext php_curl.dll in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library fileinfo (tried: xampp php ext fileinfo , xampp php ext php_fileinfo.dll in Unknown on line 0 Warning: PHP Startup: Unable to load dynamic library fileinfo (tried: xampp php ext fileinfo , xampp php ext php_fileinfo.dll in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library gd2 (tried: xampp php ext gd2 , xampp php ext php_gd2.dll in Unknown on line 0 Warning: PHP Startup: Unable to load dynamic library gd2 (tried: xampp php ext gd2 , xampp php ext php_gd2.dll in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library gettext (tried: xampp php ext gettext , xampp php ext php_gettext.dll in Unknown on line 0 Warning: PHP Startup: Unable to load dynamic library gettext (tried: xampp php ext gettext , xampp php ext php_gettext.dll in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library mbstring (tried: xampp php ext mbstring , xampp php ext php_mbstring.dll in Unknown on line 0 Warning: PHP Startup: Unable to load dynamic library mbstring (tried: xampp php ext mbstring , xampp php ext php_mbstring.dll in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library exif (tried: xampp php ext exif , xampp php ext php_exif.dll in Unknown on line 0 Warning: PHP Startup: Unable to load dynamic library exif (tried: xampp php ext exif , xampp php ext php_exif.dll in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library mysqli (tried: xampp php ext mysqli , xampp php ext php_mysqli.dll in Unknown on line 0 Warning: PHP Startup: Unable to load dynamic library mysqli (tried: xampp php ext mysqli, xampp php ext php_mysqli.dll in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library pdo_mysql (tried: xampp php ext pdo_mysql , xampp php ext php_pdo_mysql.dll in Unknown on line 0 Warning: PHP Startup: Unable to load dynamic library pdo_mysql (tried: xampp php ext pdo_mysql , xampp php ext php_pdo_mysql.dll in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library pdo_sqlite (tried: xampp php ext pdo_sqlite , xampp php ext php_pdo_sqlite.dll in Unknown on line 0 Warning: PHP Startup: Unable to load dynamic library pdo_sqlite (tried: xampp php ext pdo_sqlite , xampp php ext php_pdo_sqlite.dll in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library php_openssl.dll (tried: xampp php ext php_openssl.dll , xampp php ext php_php_openssl.dll.dll in Unknown on line 0 Warning: PHP Startup: Unable to load dynamic library php_openssl.dll (tried: xampp php ext php_openssl.dll (???? ?????), xampp php ext php_php_openssl.dll.dll in Unknown on line 0 PHP Warning: PHP Startup: Unable to load dynamic library php_ftp.dll (tried: xampp php ext php_ftp.dll , xampp php ext php_php_ftp.dll.dll in Unknown on line 0 Warning: PHP Startup: Unable to load dynamic library php_ftp.dll (tried: xampp php ext php_ftp.dll, xampp php ext php_php_ftp.dll.dll in Unknown on line 0 PHP Warning: Cannot open xampp php extras browscap.ini for reading in Unknown on line 0 Warning: Cannot open xampp php extras browscap.ini for reading in Unknown on line 0
Just go to the root of your web and run again!
Issue Three, when you install Magento by command line, you may get the following error messages:
PHP Fatal error: Uncaught Error: Class Locale not found in I:\xampp\htdocs\vendor\magento\framework\Locale\Bundle\DataBundle.php:64 Stack trace: #0 I:\xampp\htdocs\vendor\magento\framework\Locale\Bundle\DataBundle.php(28): Magento\Framework\Locale\Bundle\DataBundle->cleanLocale(en_US) #1 I:\xampp\htdocs\vendor\magento\framework\Setup\Lists.php(96): Magento\Framework\Locale\Bundle\DataBundle->get(en_US) #2 I:\xampp\htdocs\vendor\magento\framework\Validator\Locale.php(42): Magento\Framework\Setup\Lists->getLocaleList() #3 I:\xampp\htdocs\setup\src\Magento\Setup\Console\Command\InstallStoreConfigurationCommand.php(321): Magento\Framework\Validator\Locale->isValid(en_US) #4 I:\xampp\htdocs\setup\src\Magento\Setup\Console\Command\InstallStoreConfigurationCommand.php(241): Magento\Setup\Console\Command\InstallStoreConfigurationCommand->validateCodes(Object(Magento\Framework\Validator\Locale), en_US, language) #5 I:\xampp\htdocs\setup\src\Magento\Setup\Console\Command\InstallCommand.php(258): Magento\Setup\Console\Co in I:\xampp\htdocs\vendor\magento\framework\Locale\Bundle\DataBundle.php on line 64 Fatal error: Uncaught Error: Class Locale not found in I:\xampp\htdocs\vendor\magento\framework\Locale\Bundle\DataBundle.php:64 Stack trace: #0 I:\xampp\htdocs\vendor\magento\framework\Locale\Bundle\DataBundle.php(28): Magento\Framework\Locale\Bundle\DataBundle->cleanLocale(en_US) #1 I:\xampp\htdocs\vendor\magento\framework\Setup\Lists.php(96): Magento\Framework\Locale\Bundle\DataBundle->get(en_US) #2 I:\xampp\htdocs\vendor\magento\framework\Validator\Locale.php(42): Magento\Framework\Setup\Lists->getLocaleList() #3 I:\xampp\htdocs\setup\src\Magento\Setup\Console\Command\InstallStoreConfigurationCommand.php(321): Magento\Framework\Validator\Locale->isValid(en_US) #4 I:\xampp\htdocs\setup\src\Magento\Setup\Console\Command\InstallStoreConfigurationCommand.php(241): Magento\Setup\Console\Command\InstallStoreConfigurationCommand->validateCodes(Object(Magento\Framework\Validator\Locale), en_US, language) #5 I:\xampp\htdocs\setup\src\Magento\Setup\Console\Command\InstallCommand.php(258): Magento\Setup\Console\Co in I:\xampp\htdocs\vendor\magento\framework\Locale\Bundle\DataBundle.php on line 64
How to deal with these? Just add the following 2 lines to php.ini
extension=php_intl.dll extension=php_xsl.dll
We also need remove # for the following 2 lines:
extension=soap ; extension=sockets ;
If you can find the two lines in php.ini, then remove #, if you can not find them, then add the above 2 lines.
Issues Four, you may get the following error information:
In PatchApplier.php line 170: Unable to apply data patch Magento\Theme\Setup\Patch\Data\RegisterThemes for module Magento_Theme. Original exception message: Wrong file
How to deal with this error then, edit “vendor\magento\framework\Image\Adapter\Gd2.php”, change:
private function validateURLScheme(string $filename) : bool { $allowed_schemes = ['ftp', 'ftps', 'http', 'https']; $url = parse_url($filename); if ($url && isset($url['scheme']) && !in_array($url['scheme'], $allowed_schemes)) { return false; } return true; }
to:
private function validateURLScheme(string $filename) : bool { $allowed_schemes = ['ftp', 'ftps', 'http', 'https']; $url = parse_url($filename); //if ($url && isset($url['scheme']) && !in_array($url['scheme'], $allowed_schemes)) { if ($url && isset($url['scheme']) && !in_array($url['scheme'], $allowed_schemes) && !file_exists($filename)) { return false; } return true; }