Hi everyone, we will guide you on how to install Magento 2 on Ubuntu 16 using nginx. You can actually do that on CentOS 7 as well but we will take Ubuntu 16 as an example.
Magento 2 is probably the best opensource eCommerce platform available for folks wanting to sell thier products online… It allows anyone to run a their stores online for free using the commnuity edition.This brief tutorial is going to show students and new users how to quickly and easily install Magento 2 on Ubuntu 16.04 /17.10 and 18.04 with Nginx support. This post is probably out easiest tutorial by far among others we’ve written on installing Mageoto on Ubuntu server…When you’re ready, continue with the steps below:
Step 1: Install Nginx
Since we’re using Nginx as our web server, run the commands below to install it..sudo apt update
sudo apt install nginx
Step 2: Install MariaDB
Now that Nginx is installed, run the commands below to install MariaDB database server.sudo apt install mariadb-server mariadb-client
After installing the database server above, run the commands below to create a root password and secure it.sudo mysql_secure_installation
When prompted, answer the questions below by following the guide.- Enter current password for root (enter for none): Just press the Enter
- Set root password? [Y/n]: Y
- New password: Enter password
- Re-enter new password: Repeat password
- Remove anonymous users? [Y/n]: Y
- Disallow root login remotely? [Y/n]: Y
- Remove test database and access to it? [Y/n]: Y
- Reload privilege tables now? [Y/n]: Y
sudo apt install mariadb-server mariadb-client
sudo mysql_secure_installation
Step 3: Create Magento Database
After installing the server above, the steps below to create a blank datbase for Magento…Logon to the database server by running the commands below… when prompted for the root password, type the one you created above…sudo mysql -u root -p
Then create a database called magentoCREATE DATABASE magento;
Create a database user called magentouser with new passwordCREATE USER 'magentouser'@'localhost' IDENTIFIED BY 'new_password_here';
Then grant the user full access to the database.GRANT ALL ON magento.* TO 'magentouser'@'localhost' IDENTIFIED BY 'user_password_here' WITH GRANT OPTION;
Finally, save your changes and exit.FLUSH PRIVILEGES;
EXIT;
sudo mysql -u root -p
CREATE DATABASE magento;
CREATE USER 'magentouser'@'localhost' IDENTIFIED BY 'new_password_here';
GRANT ALL ON magento.* TO 'magentouser'@'localhost' IDENTIFIED BY 'user_password_here' WITH GRANT OPTION;
Step 4: Install PHP7.1-FPM And Related Modules
Now that Nginx is installed, run the commands below to install PHP-FPM and related modules… If Ubuntu 7.1 isn’t available on your system, you should install the PPA below..sudo apt-get install software-properties-common
sudo add-apt-repository ppa:ondrej/php
Then update and upgrade to PHP 7.1-FPMsudo apt update
sudo apt install php7.1-fpm php7.1-cli php7.1-gd php7.1-mysql php7.1-xml php7.1-curl php7.1-mbstring php7.1-mcrypt php7.1-intl php7.1-soap php7.1-zip
sudo apt update
sudo apt install php7.1-fpm php7.1-cli php7.1-gd php7.1-mysql php7.1-xml php7.1-curl php7.1-mbstring php7.1-mcrypt php7.1-intl php7.1-soap php7.1-zip
Step 5: Install And Configure Magento
Now that all the servers are installed, run the commands below to change into temp directory and download Magentocd /tmp && wget https://github.com/magento/magento2/archive/2.2.3.tar.gz
tar -xzvf 2.2.3.tar.gz
sudo mv magento2-2.2.3/ /var/www/html/magento2/
Next, install Composer by running the commands belowsudo curl -sS https://getcomposer.org/installer | sudo php -- --install-dir=/usr/bin --filename=composer
cd /var/www/html/magento2
composer install -v
After that run the commands below to change the folder permissions on the directorysudo chown -R www-data:www-data /var/www/html/magento2
sudo chmod -R 755 /var/www/html/magento2
Step 6: Configure Nginx
At this point, all that is left is to configure Nginx site… run the commands below to create a new Magento2 site…sudo nano /etc/nginx/sites-available/magento2
Then copy and paste the content below into the file and save.upstream fastcgi_backend {
server unix:/run/php/php7.1-fpm.sock;
}
server {
listen 80;
server_name example.com;
set $MAGE_ROOT /var/www/html/magento2;
include /var/www/html/magento2/nginx.conf.sample;
}
Save the file and continueNext, run the commands below to enable the site above.sudo ln -s /etc/nginx/sites-available/magento2 /etc/nginx/sites-enabled
Restart Nginx and test the site by opening your browser and going to the URL as defined above to start Magento setup wizardsudo systemctl restart nginx.service
http://example.comContinue with the wizard until you’re done.. you’ll be asked to enter the database connection info that you created above, and create an administrator acccount to manage the backend…Continue with the database connection infoEnjoy!
sudo nano /etc/nginx/sites-available/magento2
sudo ln -s /etc/nginx/sites-available/magento2 /etc/nginx/sites-enabled
sudo systemctl restart nginx.service