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 "your_email@example.com" \ --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:
- 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. - 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/
- 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:[Composer\Downloader\TransportException] The 'https://repo.magento.com/packages.json' URL required authentication. You must be using the interactive console to authenticate
- Run the following command on the shell. This will download all sample data to your Magento 2 environment.
composer update
- 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. - 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: