1. Connect to your server
To connect to your server via SSH as user root, use the following command:
ssh root@IP_ADDRESS -p PORT_NUMBER
and replace “IP_ADDRESS” and “PORT_NUMBER” with your actual server IP address and SSH port number. Once logged in, make sure that your server is up-to-date by running the following commands:
apt-get update apt-get upgrade
2. Install the MySQL Database server
MySQL is an open-source database management system. To install MySQL, run the following command:
$ apt-get install mysql-server
This will install MySQL 5.7 on your server. In order to improve the security of your MySQL server, we recommend that you run the mysql_secure_installation script by typing the following command:
mysql_secure_installation
This script will help you to perform important security tasks like setting up a root password, disable remote root login, remove anonymous users, etc.
3. Create a database for Laravel
Now, we will create our MySQL database for our Laravel site. Login to your MySQL server with the following command and enter your MySQL root password:
mysql -u root -p
In this section, we will create a new MySQL database laravel
and assign user access to it to a new user admin_user
with password Strong_Password
CREATE DATABASE laravel; GRANT ALL PRIVILEGES ON laravel.* TO 'admin_user'@'localhost' IDENTIFIED BY 'Strong_Password'; FLUSH PRIVILEGES; exit;
Don’t forget to replace ‘Strong_Password’ with an actual strong password.
4. Install PHP and required PHP modules
To install the PHP and all necessary modules, run:
sudo apt-get install php-cli php-mcrypt php-mbstring php-zip php-opcache php-gd php-xml
5. Install Composer
A composer is a dependency manager for PHP and of course Laravel, which you can install packages with. The composer will pull all the required libraries you need for your project.
curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer
6. Install Laravel
Install the latest version of Laravel, using the composer create-project command:
sudo composer create-project --prefer-dist laravel/laravel my_project
If the installation is successful, you will see the following lines:
Writing lock file Generating optimized autoload files > Illuminate\Foundation\ComposerScripts::postAutoloadDump > @php artisan package:discover Discovered Package: fideloper/proxy Discovered Package: laravel/tinker Discovered Package: nesbot/carbon Package manifest generated successfully. > @php artisan key:generate Application key [base64:NEu4D2s1Ai8HHZL3wPnrl+BVpSmcm7dMTStIBtMgSn0=] set successfully.
By default, Laravel is configured to use MySQL(MariaDB), but you need to give it the right information to connect to the database that you just set up. Next, go to the /var/www/Html/my_project/config directory, open the database.php
file with your favorite text editor, for example:
nano database.php
And update the database settings, replacing them with your own details:
'mysql' => [ 'driver' => 'mysql', 'host' => env('DB_HOST', '127.0.0.1'), 'port' => env('DB_PORT', '3306'), 'database' => env('DB_DATABASE', 'yourDBName'), 'username' => env('DB_USERNAME', 'yourUserName'), 'password' => env('DB_PASSWORD', 'yourPassword'), 'unix_socket' => env('DB_SOCKET', ''), 'charset' => 'utf8mb4', 'collation' => 'utf8mb4_unicode_ci', 'prefix' => '', 'strict' => true, 'engine' => null, ],
7. Server your application with Artisan serve command
Once the installation is completed you can use the artisan serve command to serve your application:
php artisan serve
The output should be something like this:
Laravel development server started: <http://127.0.0.1:8000>
You can now open your browser and access your new Laravel installation at: http://127.0.0.1:8000
8. Install and configure Apache webserver
In this part of the tutorial, we will show you how to install and configure Apache to serve your Laravel application. Run the following command to install Apache webserver from the official Ubuntu repositories:
apt-get install apache2
Change the ownership of the Laravel directory to the webserver user:
chown -R www-data:www-data /path/to/laravel chmod -R 755 my_project/storage/
Create a new Apache virtual host with the following content:
sudo nano /etc/apache2/sites-available/your_domain.com
<VirtualHost *:80> ServerName your_domain.com ServerAdmin webmaster@localhost DocumentRoot /var/www/html/my_project/public <Directory /var/www/html/my_project> AllowOverride All </Directory> ErrorLog ${APACHE_LOG_DIR}/error.log CustomLog ${APACHE_LOG_DIR}/access.log combined </VirtualHost>
Activate the virtual host by creating a symbolic link :
sudo ln -s /etc/apache2/sites-available/your_domain.com /etc/apache2/sites-enabled/your_domain.com
Your Laravel installation is now complete. You have successfully installed Laravel on your Ubuntu 18.04 VPS. Visit the domain name with a web browser you will see the Laravel default page. That’s it. If you followed all of the instructions properly now you should be able to access your Laravel installation on your Ubuntu 18.04 server.