Installing Magento 2 sample data via the command line

Installing Magento 2 via the shell is not new. In the current Magento version, it was already possible using the install.php file. The configuration looked like this:

/usr/local/bin/php -f install.php -- 
--license_agreement_accepted "yes" 
--locale "en_US" 
--timezone "America/Los_Angeles" 
--default_currency "USD" 
--db_host "mysql.example.com" 
--db_name "your_db_name" 
--db_user "your_db_username" 
--db_pass "your_db_password" 
--db_prefix "" 
--admin_frontname "admin" 
--url "http://www.examplesite.com/store" 
--use_rewrites "yes" 
--use_secure "no" 
--secure_base_url "" 
--use_secure_admin "no" 
--admin_firstname "your_first_name" 
--admin_lastname "your_last_name" 
--admin_email "[email protected]" 
--admin_username "your_admin_username" 
--admin_password "your_admin_password"

It was very easy to script and use multiple times on any given environment.

In Magento 2, the logic stayed the same but now, it's much easier to use. We will be using a composer.json file for our setup prerequisites.

Getting ready

For this recipe, we will use a Droplet created in Chapter 1, Installing Magento 2 on Apache and NGINX, at DigitalOcean, https://www.digitalocean.com/. We will be using NGINX, PHP-FPM, and a Composer-based setup. No other prerequisites are required.

How to do it...

For the purpose of this recipe, let's assume that we need to create a Magento 2 hosting environment including sample data. The following steps will guide you through this:

  1. In this recipe, check your /root/.composer/auth.json file if you have a Magento of GitHub repository token, username, and password. If not, create them. Here is an example (the username and password are dummies):
    {
      "http-basic": {
        "repo.magento.com": {
          "username": "256e8f49b66689ecf18b07bc3cc2ca2d",
          "password": "cb1c7ef2e14b666d8a4e99fe40c8393a"
        }
      },
      "github-oauth": {
        "github.com": "e960f7000803e2832ce5f7a637d58a666"
      }
    }

    You can create a Magento authentication key in the user section of the Magento connect portal. Go to http://www.magentocommerce.com/magento-connect/, navigate to the Developers | Secure Keys menu item, and create one. Public Key is your username and Private Key is your password.

    The GitHub token can be created under the tokens section of your GitHub account. Go to https://github.com/settings/tokens and press Generate new token. Copy the token in your auth.json file of your home or root directory.

  2. Now, let's create a Composer project using the shell. Go to your web server /var/www/html directory and use the following command:
    composer create-project "magento/project-community-edition" /var/www/html --prefer-dist --repository-url https://repo.magento.com/
    
  3. Now use the following command on the shell. This will add the sample data package to the Magento composer.json file.
    php bin/magento sampledata:deploy
    

    You may get the following error notice; ignore this once you set up the auth.json file:

    [ComposerDownloaderTransportException]
    The 'https://repo.magento.com/packages.json' URL required authentication.
    You must be using the interactive console to authenticate
    
  4. Run the following command on the shell. This will download all sample data to your Magento 2 environment.
    composer update
    
  5. Make sure that you have the correct file permission before you continue:
    chown -R www-data:www-data /var/www/html
    

    The easy way to continue is to visit our setup page from the browser as we did in the Installing Magento 2 sample data via GUI recipe of this chapter using the http://yourdomain.com/setup URL.

  6. We can also use the shell to finish the setup using the following script:
    bin/magento setup:install 
        --db-host=localhost 
        --db-name=<your-db-name> 
        --db-user="<db-user>" 
        --db-password="<db-password>" 
        --backend-frontname=<admin-path> 
        --base-url=http://yourdomain.com/ 
        --admin-lastname=<your-lastname> 
        --admin-firstname=<your-firstname> 
        --admin-email=<your-email> 
        --admin-user=<your-admin-user> 
        --admin-password=<your-password> 

    Tip

    Always make sure that bin/magento has the correct permissions to execute:

    chmod 755 bin/magento
    

Congratulations, you just finished the installation of Magento 2 including sample data. Now go to your browser using yourdomain.com, and you will see the default Magento 2 layout theme called Luma.

How it works…

Let's recap and find out what we did throughout this recipe. In steps 1 through 6, we installed Magento 2 via the command shell. Before we could continue, we needed to create an auth.json file that stores our Magento and GitHub tokens. Without them, we may not be able to install the software easily due to download restrictions or dependencies.

In step 2, we used one line of code to trigger the whole download process of Magento 2. Depending on whether this is your first call, the process can take some time. Once you install Magento for the second time, the process installs much faster because of the locally stored cache files.

In step 3, we used bin/magento to update the composer.json file including the sample data packages. Then we needed to update Composer before we could install Magento 2 from the shell; otherwise, the sample data would not be included.

In step 6, we used the bin/magento setup:install parameter to commit all of the database, URL admin path, domain name, and user credentials to the setup of Magento 2.

There's more…

Always make sure that your system PATH is exported to your system using the following command from the shell (where /var/www/html is your Magento root folder):

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

More information on environmental variables can be found here:

https://www.digitalocean.com/community/tutorials/how-to-read-and-set-environmental-and-shell-variables-on-a-linux-vps

..................Content has been hidden....................

You can't read the all page of ebook, please click here login for view all page.
Reset
18.118.137.7