How To Install Laravel PHP Framework on a CentOS 7 or RHEL 7

1. Introduction

Laravel is a free, open source PHP framework designed for the fastest development of MVC (Model-View-Controller) web applications in PHP. After a great search for the best framework which I can work with, I found laravel to be the best. It is regarded as one of the most popular and secure PHP framework available today. This article will help you to install Laravel 5 PHP Framework on CentOS 7.

2. Prerequisites

2.1 Server Configuration

  • OS CentOS 7 / RHEL 7
  • Memory Minimum 512 MB
  • HDD Space Minimum

2.2 Requirements

This installation requires LAMP/LEMP with PHP 5.5 or above. You can follow my document (lampinstall.txt) to install apache, MariaDB. After that follow the steps given below to install the required php version and modules.

2.3 Setting up Yum Repositories

At first, you need to add REMI and EPEL rpm repositories in your system. These repositories have all the updated packages for the installation. Use the following commands to add them.

# rpm -Uvh https://dl.fedoraproject.org/pub/epel/epel-release-latest-7.noarch.rpm
# rpm -Uvh https://mirror.webtatic.com/yum/el7/webtatic-release.rpm

Hope you all are having the apache and MariaDB installed and configured. Now install the PHP and the required modules by the following.

# yum install php55w php55w-opcache php55w-xml php55w-mbstring php55w-pdo

Thus we have completed the basic server setup. Now we can move on to the installation of composer.

3. Install Composer

Laravel uses composer to manage its dependencies. So we need to install composer before the installation of laravel. Use the following command to install Composer.

[root@hostname-centos7 ~]# curl -sS https://getcomposer.org/installer | php
#!/usr/bin/env php
All settings correct for using Composer
Downloading...

Composer successfully installed to: /root/composer.phar
Use it: php composer.phar

Then move the composer.phar file to /usr/local/bin/ and rename it as below.

[root@hostname-centos7 ~]# mv composer.phar /usr/local/bin/composer

Give execute permission to the Composer.

[root@hostname-centos7 ~]# chmod +x /usr/local/bin/composer

Thus the installation of composer is completed. Now we can directly move on to the installation of laravel.

4. Install Laravel

Navigate to /var/www/ and download the latest version of Laravel using the commands below. Thus will clone master repo of laravel from github.

[root@hostname-centos7 ~]# cd /var/www
[root@hostname-centos7 www]# git clone https://github.com/laravel/laravel.git
Cloning into 'laravel'...
remote: Counting objects: 25968, done.
remote: Total 25968 (delta 0), reused 0 (delta 0), pack-reused 25968
Receiving objects: 100% (25968/25968), 9.70 MiB | 6.02 MiB/s, done.
Resolving deltas: 100% (13061/13061), done.

After than move to the laravel code directory and use composer to install all dependencies required for Laravel framework.

# cd /var/www/laravel
# composer install

This will take a while according to the network speed. After than set proper permissions on files.

# chown -R apache.apache /var/www/laravel
# chmod -R 755 /var/www/laravel

Thus the basic setup of laravel is completed.

5. Set Encryption Key

At first, set the 32 bit long random number encryption key by using the command below, which used by the Illuminate encrypter service.

[root@hostname-centos7 laravel]# php artisan key:generate
Application key [WRAGp0Pu9kTHiZDqbsEKGXDjSWNL76iF] set successfully.

Then update the above generated application key into the config/app.php configuration file. Also make sure that cipher is set properly.

'key' => env('WRAGp0Pu9kTHiZDqbsEKGXDjSWNL76iF')/	This key is used by the Illuminate encrypter service and should be set. 					
'cipher' => 'AES-256-CBC',

6. Create Apache Virtual Host

Now create a Virtual Host in your Apache configuration file to access Laravel framework from web browser.

To do it edit the apache configuration file /etc/httpd/conf/httpd.conf and add the code below and save the file.

# vim /etc/httpd/conf/httpd.conf

       ServerName laravel.yourwebsite.com
       DocumentRoot /var/www/laravel/public

       
              AllowOverride All
       

After than restart the apache service and access Laravel framework using your favourite web browser and you will see a page like the image below which means laravel is properly installed.

# systemctl restart httpd

laravel

7. Conclusion

Thus we have installed the most popular PHP framework in an easy way.

4 Replies to “How To Install Laravel PHP Framework on a CentOS 7 or RHEL 7”

  1. there seems to be an issue here with the idea of the apache “virtual host”. what you have configured here is NOT an apache “virtual host” per se, but the main server (ie documentroot) configuration to be POINTED at the correct laravel index.php dir, the public/.

    real apache virtual hosts are created using…

    sudo mkdir /etc/httpd/sites-available
    sudo mkdir /etc/httpd/sites-enabled

    create the virtual hosts .conf file…

    nano /etc/httpd/sites-available/example.com.conf

    and…

    ServerName http://www.example.com
    ServerAlias example.com
    DocumentRoot /var/www/example.com/public_html
    ErrorLog /var/www/example.com/error.log
    CustomLog /var/www/example.com/requests.log combined

    refer to https://www.digitalocean.com/community/tutorials/how-to-set-up-apache-virtual-hosts-on-centos-7 for an indepth look at virtual hosts in centos

  2. I prefer to use Debian over CentOS. Debian has great community and timely patches. I have hosted my Laravel app on a Debian based server using the Cloudways platform and I have seen slight increase in performance when I moved from CentOS. This could be due to some other factor, but who knows.

  3. I prefer Debian over CentOS or Rhel. I have hosted Laravel site on a Debian 8 server on Cloudways platform. The performance is really great, which might be because of their custom stack which includes redis, varnish, php-fpm and memcached.

Leave a Reply

Your email address will not be published. Required fields are marked *