Laravel is one of the best open source, MVC PHP framework, designed for the faster development of web applications. You can simply install and use on your development system. This article will help you to install Laravel 5 PHP Framework on Debian 9 (Stretch) system.
Laravel required following software and extensions to be installed on your system:
- Apache
- MySQL/MariaDB
- PHP >= 7.0.0
- OpenSSL PHP Extension
- PDO PHP Extension
- Mbstring PHP Extension
- Tokenizer PHP Extension
- XML PHP Extension
Step 1 – Prerequsiteis
To start with Laravel, we first need to set up a running LAMP server. If you have already running LAMP stack skip this step else use followings commands to set up the lamp on Debian 9 system.
Install PHP 7
sudo apt-get install git python-software-properties wget -q https://packages.sury.org/php/apt.gpg -O- | sudo apt-key add - echo "deb https://packages.sury.org/php/ stretch main" | sudo tee /etc/apt/sources.list.d/php.list sudo apt update sudo apt install php php-mcrypt php-gd php-mbstring php-xml
Install Apache2
sudo apt install apache2 libapache2-mod-php
Install MySQL
sudo apt install mysql-server php-mysql
Step 2 – Install PHP Composer
The composer is required for installing Laravel dependencies. So use below commands to download and use as a command in our system.
curl -sS https://getcomposer.org/installer | php sudo mv composer.phar /usr/local/bin/composer sudo chmod +x /usr/local/bin/composer
Step 3 – Install Laravel on Debian 9
Download the latest version of Laravel from the official git repository. Use the below command to clone the master branch of the Laravel from GitHub.
cd /var/www git clone https://github.com/laravel/laravel.git
Navigate to Laravel code directory and use composer to install all dependencies required for Laravel framework.
cd /var/www/laravel sudo composer install
The dependencies installation may take some time as per your network speed. After successfully installing all dependencies, set the proper permissions on all files.
chown -R www-data.www-data /var/www/laravel chmod -R 755 /var/www/laravel chmod -R 777 /var/www/laravel/storage
Step 4 – Set Encryption Key
Now, rename the .evn.example file to .env in projects main directory. This will use to setup application environment for the project.
mv .env.example .env
Now generate base64 random number encryption key, which used by the Illuminate encrypter service.
php artisan key:generate
Application key [base64:Wer9JfZHN4qYQt9i8Hn1hLt8LWPeT3urzdI0hVqfzJM=] set successfully.
Edit the .env configuration file and update the required settings. Also, make sure APP_KEY is properly set as generated in above command.
vi .env APP_NAME=Laravel APP_ENV=local APP_KEY=base64:Wer9JfZHN4qYQt9i8Hn1hLt8LWPeT3urzdI0hVqfzJM= APP_DEBUG=true APP_URL=http://localhost
Step 5 – Creating MySQL Database
You may also require creating a database for your Laravel application. Login to your MySQL server and create MySQL database and user.
mysql> CREATE DATABASE laravel; mysql> GRANT ALL ON laravel.* to 'laravel'@'localhost' IDENTIFIED BY 'secret_password'; mysql> FLUSH PRIVILEGES; mysql> quit
DB_CONNECTION=mysqlEdit the .env file and update database settings.
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=laravel
DB_USERNAME=laravel
DB_PASSWORD=secret_password
Step 6 – Apache Configuration
You can create a new Apache configuration file or edit Apache default virtual host configuration file 000-default.conf and update DocumentRoot to Laravel public directory as below.
vim /etc/apache2/sites-available/000-default.conf
Update configuration as:
<VirtualHost *:80> ServerAdmin [email protected] DocumentRoot /var/www/laravel/public <Directory /> Options FollowSymLinks AllowOverride None </Directory> <Directory /var/www/laravel> AllowOverride All </Directory> ErrorLog $/error.log CustomLog $/access.log combined </VirtualHost>
Reload Apache configuration changes by restarting service using below command
sudo service apache2 restart
Step 7 – Access Laravel Application
Laravel PHP framework has been successfully configured on your system. Access Laravel application in your favorite web browser as per configured Apache.
Let’s start building an awesome application using Laravel PHP Framework.