Create or update the deployment configuration

First steps

  1. Log in to the Magento server as, or switch to, a user with permissions to write to the Magento file system. See switch to the Magento file system owner.

    If you use the bash shell, you can use the following syntax to switch to the Magento file system owner and enter the command at the same time:

    1
    
    su <Magento file system owner> -s /bin/bash -c <command>
    

    If the Magento file system owner does not allow logins, you can do the following:

    1
    
    sudo -u <Magento file system owner>  <command>
    
  2. To run Magento commands from any directory, add <magento_root>/bin to your system PATH.

    Because shells have differing syntax, consult a reference like unix.stackexchange.com.

    Sample bash shell for CentOS:

    1
    
    export PATH=$PATH:/var/www/html/magento2/bin
    

    Optionally, you can run the commands in the following ways:

    • cd <magento_root>/bin and run them as ./magento <command name>
    • <magento_root>/bin/magento <command name>
    • <magento_root> is a subdirectory of your web server docroot. Need help locating the docroot?

In addition to the command arguments discussed here, see Common arguments.

Prerequisites

There are no prerequisites for using this command.

Create or update the Magento deployment configuration

Magento’s deployment configuration provides the information Magento needs to initialize and bootstrap.

You can use this command if:

  • You previously installed the Magento software and you want to modify the deployment configuration
  • If you want to create only the deployment configuration and continue the Magento installation some other way
  • To update the deployment configuration without affecting anything else

Command options:

1
bin/magento setup:config:set [--<parameter>=<value>, ...]

The following table discusses the meanings of installation parameters and values.

Parameter Value Required?
--backend-frontname Uniform Resource Identifier (URI) to access the Magento Admin.

To prevent exploits, we recommend you not use a common word like admin, backend, and so on. The Admin URI can contain alphanumeric values and the underscore character (_) only.
No
--db-host Use any of the following:

- The database server’s fully qualified hostname or IP address.

- localhost (default) or 127.0.0.1 if your database server is on the same host as your web server. localhost means the MySQL client library uses UNIX sockets to connect to the database. 127.0.0.1 causes the client library to use the TCP protocol. For more information about sockets, see the PHP PDO_MYSQL documentation.

Note: You can optionally specify the database server port in its hostname like www.example.com:9000
No
--db-name Name of the Magento database instance in which you want to install the Magento database tables.

Default is magento2.
No
--db-user Username of the Magento database instance owner.

Default is root.
No
--db-password Magento database instance owner’s password. No
--db-prefix Use only if you’re installing the Magento database tables in a database instance that has Magento tables in it already.

In that case, use a prefix to identify the Magento tables for this installation. Some customers have more than one Magento instance running on a server with all tables in the same database.

The prefix can be a maximum of five characters in length. It must begin with a letter and can include only letters, numbers, and underscore characters.

This option enables those customers to share the database server with more than one Magento installation.
No
--session-save Use any of the following:

- db to store session data in the database. Choose database storage if you have a clustered database; otherwise, there might not be much benefit over file-based storage.

- files to store session data in the file system. File-based session storage is appropriate unless the Magento file system access is slow, you have a clustered database, or you want to store session data in Redis.

- redis to store session data in [Use Redis for session storage](/guides/v2.3/config-guide/redis/config-redis.html>Redis. If you will be using Redis for default or page caching, Redis must be already installed.
No
--key If you have one, specify a key to encrypt sensitive data in the Magento database. If you don’t have one, Magento generates one for you. No
--db-init-statements Advanced MySQL configuration parameter. Uses database initialization statements to run when connecting to the MySQL database.

Default is SET NAMES utf8;.

Consult a reference similar to this one before you set any values.
No
--http-cache-hosts Comma-separated list of HTTP cache gateway hosts to which to send purge requests. (For example, Varnish servers.) Use this parameter to specify the host or hosts to purge in the same request. (It doesn’t matter if you have only one host or many hosts.)

Format must be <hostname or ip>:<listen port>, where you can omit <listen port> if it’s port 80. For example, --http-cache-hosts=192.0.2.100,192.0.2.155:6081. Do not separate hosts with a space character.
No

What is sensitive data?

Magento uses your encryption key to encrypt the following:

  • Credit card information
  • Usernames and passwords specified in the Magento Admin configuration (for example, logins to payment gateways)
  • CAPTCHA values sent over the network

Magento does not encrypt:

  • Administrative and customer usernames and passwords (these passwords are hashed)
  • Address
  • Phone number
  • Other types of personally identifiable information except for credit card numbers

If applicable, continue your Magento software installation:

Related topics