Download the PHP package jamacio/module-setup-wizard without Composer

On this page you can find all versions of the php package jamacio/module-setup-wizard. It is possible to download/install these versions without Composer. Possible dependencies are resolved automatically.

FAQ

After the download, you have to make one include require_once('vendor/autoload.php');. After that you have to import the classes with use statements.

Example:
If you use only one package a project is not needed. But if you use more then one package, without a project it is not possible to import the classes with use statements.

In general, it is recommended to use always a project to download your libraries. In an application normally there is more than one library needed.
Some PHP packages are not free to download and because of that hosted in private repositories. In this case some credentials are needed to access such packages. Please use the auth.json textarea to insert credentials, if a package is coming from a private repository. You can look here for more information.

  • Some hosting areas are not accessible by a terminal or SSH. Then it is not possible to use Composer.
  • To use Composer is sometimes complicated. Especially for beginners.
  • Composer needs much resources. Sometimes they are not available on a simple webspace.
  • If you are using private repositories you don't need to share your credentials. You can set up everything on our site and then you provide a simple download link to your team member.
  • Simplify your Composer build process. Use our own command line tool to download the vendor folder as binary. This makes your build process faster and you don't need to expose your credentials for private repositories.
Please rate this library. Is it a good library?

Informations about the package module-setup-wizard

Adobe Magento 2 Setup Wizard

A web installer for Magento 2.4. It brings back the browser-based Setup Wizard that Magento 2.0 had and that was removed in 2.4.0. It can also bring a store up from an existing database (for example a production dump) and run Magento without OpenSearch/Elasticsearch.

No web server configuration. Add the module, open the store in the browser, and the wizard is there. This works on Nginx, Apache or any server that already runs Magento.

Quick start

Both options need access keys from repo.magento.com.

Magento + Setup Wizard (configuration page in the browser)

Downloads Magento and adds the module. Then open the store URL in the browser and the wizard's configuration page guides you through the installation, with no bin/magento setup:install on the command line:

Run the commands inside the Magento directory; it must be empty. Point the web server's document root to its pub folder and open the store, for example http://localhost/. The full walkthrough is in Step by step.

For the Luma demo store (products, categories, CMS pages), tick Install sample data in the wizard. If the sample data is not in the codebase yet, the wizard asks for your repo.magento.com access keys and downloads it before installing. Do not have the keys? Create them at commercemarketplace.adobe.com/customer/accessKeys.

Magento only

Downloads Magento without the module. There is no configuration page in the browser: Magento 2.4 must then be installed on the command line with bin/magento setup:install, and it requires OpenSearch or Elasticsearch:

Contents

Features

Requirements

Magento 2.4.x (tested on 2.4.8-p2)
PHP 8.1 or later, with the extensions Magento requires
PHP CLI Reachable from PHP-FPM. It is detected automatically; set PHP_CLI_BINARY to override.
PHP functions exec, shell_exec and proc_open must not be listed in disable_functions
Database MySQL or MariaDB, in a version your Magento release supports (tested with MariaDB 10.3)
Search OpenSearch or Elasticsearch 8, or none (use the module's MySQL search engine)
Cache/session Redis (optional; without it Magento uses files)
Web server Any server set up for Magento as usual (Nginx, Apache...). Nothing specific to this module.

Step by step: install and configure Magento 2

This is a real installation done through the wizard; every screenshot below comes from it. It was a fresh install with sample data, OpenSearch and no Redis.

Step 1. Get the Magento code

If you do not have a Magento project yet, create one with Composer. This needs access keys from repo.magento.com:

Point the web server's document root to magento2/pub, as for any Magento store. For the Luma demo store, the wizard can download the sample data itself (see Sample data).

Step 2. Add the module

Copy the module to app/code/Jamacio/SetupWizard. If it is packaged, install it with Composer instead:

Nothing else is needed:

Step 3. Open the store in the browser

Open the store URL, for example http://localhost/. While Magento is not installed, the wizard answers at any URL, including /setup/, where Magento itself redirects.

The first card checks the environment. Click details to see each check; if one fails, it explains what to fix, and Install stays disabled until then.

The language switcher in the top-right corner changes the wizard language (English, Português, Español).

Step 4. Choose "Fresh install"

Fresh install creates the store with setup:install. To run a store from a database that already exists, see Bring a store up from an existing database.

Step 5. Database

Enter the MySQL/MariaDB host, database name, user and password, as seen from the PHP container or server. If the database does not exist, the wizard creates it, provided the user has permission to.

Click Test connections to check the database, the search engine and Redis against the real services before installing:

Step 6. Store address and admin path

The Base URL is where the store will answer; it is pre-filled with the address you are using. The Admin path is the admin URL, for example http://localhost/admin/.

Step 7. Administrator account

The admin user created by the installation. The password needs at least 7 characters, with letters and numbers.

Step 8. Language, currency and time zone

The store's initial settings. They come from the same lists setup:install validates against, and can be changed later in the admin.

Step 9. Search engine

Choose OpenSearch, Elasticsearch 8, or MySQL (basic, no search service) when no search server is available. The index prefix is optional; it lets several stores share one OpenSearch.

With the MySQL engine, host and port disappear and a note explains its limits:

Step 10. Cache and session

Tick Use Redis to store the default cache (db 0), the page cache (db 1) and sessions (db 2) in Redis. Unticked, Magento keeps them in files under var/.

Step 11. Options

Under Advanced you can set the encryption key. Leave it empty to generate a new one.

Step 12. Install

Click Install. The wizard validates everything again on the server. Errors are shown next to their field, and nothing runs until they are fixed:

Step 13. Follow the installation

The page follows the background job: each step, the elapsed time and the live output of the commands. Passwords appear as ******. The installation continues even if you close the page.

When it finishes, the page links to the new store and its admin, and after 5 seconds it opens the storefront:

With sample data, OpenSearch and no Redis, this installation took 1 min 29 s.

Step 14. Open the store and the admin

The Luma store with the sample data:

Categories list their products, served by the search engine chosen in step 9:

The admin, at the admin path from step 6, where you sign in with the account from step 7:

From now on Magento answers every URL; the wizard is off. To run it again, remove or rename app/etc/env.php.

Step 15. After the installation

These are the usual Magento tasks; the wizard does not do them for you:

Bring a store up from an existing database

Choose Use an existing database to run a store from a database that is already installed, typically a copy of production.

  1. Import the database into your MySQL/MariaDB server, for example with mysql magento2 < dump.sql.
  2. Open the store and choose Use an existing database.
  3. Enter the connection details. The table prefix must match the one the database uses. Test connections tells you whether it is a Magento database, with its number of tables, stores and products.
  4. Paste the encryption key. Under Advanced, paste the crypt/key from the source env.php. Without it, values that Magento stores encrypted (payment, integration and SMTP credentials) cannot be decrypted and must be configured again. The wizard warns about this in the log.
  5. Choose the options and click Configure the store:

    • Clear inherited URLs and cookies: removes per-website/store base URLs, the static/media CDN URLs and the cookie domain, so the store does not redirect to the original domain.
    • Run setup:upgrade: aligns the database with the modules in this codebase. It is required when the code is a different version.
    • Reindex: fills the search index.
    • Create or reset an admin user: runs admin:user:create. If the username or email already exists, that user's password is reset, which is useful when you do not know the credentials of a production dump.

What the wizard does, in order:

  1. Checks that the database contains the Magento tables.
  2. Updates core_config_data: sets the base URL, optionally clears the inherited URLs and cookie domain, and writes the search engine configuration, replacing the production host.
  3. Writes app/etc/env.php with the database connection, encryption key, admin path, cache and session settings, and the install date. A previous env.php is kept as env.php.bak-<timestamp>.
  4. Runs the selected commands in the background: module:disable for 2FA, setup:upgrade, admin:user:create, indexer:reindex, then empties the cache files and runs cache:flush (see Troubleshooting).

Search engines

Engine Needs a service Notes
OpenSearch Yes Magento's default and the recommended choice.
Elasticsearch 8 Yes Deprecated by Magento.
MySQL (basic, no search service) No Provided by this module. Meant for development.

MySQL (basic, no search service)

In Magento 2.4, category pages, catalog search and the GraphQL products query do not read products from MySQL directly. They ask the search engine which product IDs match, in which order and on which page. MySQL search was removed in 2.4.0, so without OpenSearch or Elasticsearch those pages cannot list anything.

This module adds a search engine, mysql_basic, that answers those requests with SQL.

Works Does not work
Category listings, including anchor categories and the positions set in the admin Relevance ranking: search orders exact SKU matches first, then names starting with the first word
Pagination and item counts Typo tolerance, synonyms and stemming
Search on product name and SKU (every word must match) Layered navigation filters (colour, size, price ranges): they are not shown
Sorting by position, name and price Search suggestions
Price filter in the URL (?price=30-40), attribute, SKU and ID filters Speed on large catalogs: every search is a LIKE
Store, website, status, visibility and stock (honours "Display Out of Stock Products")

How it works. The engine is registered in etc/di.xml at the same extension points Magento_OpenSearch uses. Collections, category and search layers and search criteria are still Magento's generic Magento_Elasticsearch classes. Only the parts that would talk to a search server are replaced, in Model/MysqlSearch:

Class Role
Adapter Walks Magento's search request (category, visibility, text, ranges, filters, sort, from/size) and builds the SQL. It reads catalog_category_product_index_store*, catalog_product_index_price, catalog_product_index_eav, cataloginventory_stock_status and the EAV attribute tables, and returns the IDs of the requested page plus the total.
IndexerHandler, IndexStructure Write nothing. The adapter reads the catalog tables directly, so catalogsearch_fulltext has no content of its own.
Engine, DynamicDataProvider, Interval, Suggestions Catalog engine resource, price aggregations and suggestions, all empty.

Magento's search modules stay enabled, because the engine builds on them. The regular indexers (category products, price, EAV, stock) are still used and must be up to date, as in any store.

How the value is stored.

The engine code is mysql_basic rather than mysql, because Magento 2.4 rejects mysql (the name of the engine removed in 2.4.0).

Switching to OpenSearch later:

  1. In Stores › Configuration › Catalog › Catalog › Catalog Search, choose OpenSearch and enter its host.
  2. Run bin/magento indexer:reindex catalogsearch_fulltext.

Sample data

setup:install installs the sample data whenever the Magento_*SampleData modules are in the codebase and enabled. Its --use-sample-data option does not change that. The Install sample data option controls it:

The option only exists for a fresh install. With an existing database, the data comes from the database.

Reinstalling with sample data. Composer copies the sample data media (magento/sample-data-media) to pub/media only once. Installing the downloadable sample products then moves their files, for example from pub/media/downloadable/files/links/... to pub/media/downloadable/downloadable/files/links/.... Every later install used to fail with Sample Data error: file_get_contents(...): Failed to open stream, and the downloadable products were missing.

The Preparing the sample data media step (Installer/bin/prepare-sample-data.php) fixes that:

The nested pub/media/downloadable/downloadable/... folders left by earlier installs are not used and can be deleted.

Languages

The interface is written in English and translated through Magento's __(). Translations use the standard module format, i18n/<locale>.csv, one "source","translation" pair per line.

The interface follows the system light/dark preference:

It also works on phones:

How it works

Security

Troubleshooting

Symptom Cause and fix
The home page still shows the previous install (e.g. empty after reinstalling with sample data) Old full page cache entries. Since Magento 2.4.9 the file caches keep their tag index in var/cache/symfony, which setup:install empties, so entries in var/page_cache survive cache:flush. The wizard's Clearing the cache files step (Installer/bin/clear-file-cache.php) now empties both folders; on an older install run rm -rf var/cache/* var/page_cache/* and bin/magento cache:flush.
ERR_TOO_MANY_REDIRECTS on /setup/ The module is not in the codebase, or app/etc/NonComposerComponentRegistration.php does not list app/code (so registration.php never runs). Check the module path and run composer dump-autoload.
Magento's "use the command line" page appears on /setup/ The document root is the project root (not pub/), and /setup/ is served from Magento's setup/ folder. Open the store root / instead.
"PHP CLI binary not found" PHP-FPM cannot find the php CLI. Set the PHP_CLI_BINARY environment variable for PHP-FPM.
"The installation process did not start" The CLI could not run Installer/bin/run-job.php. Check exec/proc_open, the PHP CLI path and permissions on var/.
"The database already has N tables" Tick Drop existing tables, or use Use an existing database.
"This database has no Magento tables" Wrong database or wrong Table prefix.
The store redirects to the production domain Keep Clear inherited URLs and cookies ticked in existing database mode.
Encrypted settings stopped working The original crypt/key was not provided. Reconfigure those values, or run the wizard again with the key.
Category pages are empty The search engine is not reachable, or the store uses the MySQL engine with stale indexers: run bin/magento indexer:reindex.

File layout

Tested with

Magento Open Source 2.4.8-p2, PHP 8.4, MariaDB 10.3, OpenSearch 2.12 and Redis 7, on Magento Cloud Docker. Each scenario below was a real installation in an isolated copy, with a throwaway database:

The screenshots in this README were taken from the real wizard. The connection test used the project's actual services, read-only.


All versions of module-setup-wizard with dependencies

PHP Build Version
Package Version
Requires php Version ~8.1.0||~8.2.0||~8.3.0||~8.4.0
ext-pdo_mysql Version *
magento/framework Version 103.0.*
magento/module-search Version *
magento/module-catalog-search Version *
magento/module-advanced-search Version *
magento/module-elasticsearch Version *
magento/module-catalog Version *
Composer command for our command line client (download client) This client runs in each environment. You don't need a specific PHP version etc. The first 20 API calls are free. Standard composer command

The package jamacio/module-setup-wizard contains the following files

Loading the files please wait ...