How To Install The Guru Search Portal

In my personal opinion, Laravel works great on a VPS or dedicated server. However, its not to say that it is not meant for shared hosting. In fact, I run most of my Laravel applications on a shared hosting account at least for testing. I think the greatest stumble block is that most, if not almost all, shared hosting providers wont allow a shared hosting user to run command-line installations by making use of composer.

But with that aside, a Laravel application can perform fantastic in a shared hosting environment. And I've taken away the burden on getting the Guru Search Portal to work flawless in a shared hosting environment.


Easy Upgrading

If you receive new files / upgrades, simply copy and replace the contents of the projectfiles directory to your application`s installation directory, EXCEPT for the .env file. Once you have done that, log into the administration section. Once logged in, browse to yourdomain.com/admin/upgrade


Server Requirements

Regardless if you are installing the Guru Search Portal in a dedicated or shared hosting environment, the hosting server must meet the following requirements. If you are installing the Guru Search Portal on Amazon Beanstalk, you can skip this section as AWS Beanstalk takes care of all the requirements.

  • PHP >= 7.0.0
  • OpenSSL PHP Extension
  • PDO PHP Extension
  • Mbstring PHP Extension
  • Tokenizer PHP Extension
  • XML PHP Extension
  • file_get_contents
  • allow_url_fopen


Shared Hosting Environment

  1. Make a note of your hosting account name - this is usually exactly the same as your hosting account`s username
  2. Create a database on your server and take note of the credentials
  3. Create a top-level directory on the hosting server named laravel_guru So if you ftp to your hosting account, the laravel_guru directory is on the same level as your public_html (or sometimes public) directory
  4. Unzip the contents of the projectfiles.zip archive and upload the contents to the created laravel_guru directory
  5. Upload the contents of the shared_hosting_only.zip to your public directory. As mentioned in step 3, this is post probably your public_html directory
  6. Edit the file laravel_guru/.env (located in the project`s root directory) on your server as follows: (edit only these values)
    • System URL
      • APP_URL This is a fully qualified domain name, E.g. https://www.yourdomain.com
    • Public Directory
      • PUBLIC_DIRECTORY {hosting_account_name}/public_html (as referred to in step 1)
    • Database Information
      • DB_HOST the name of your database host. This is most likely just localhost
      • DB_DATABASE the name of your database created
      • DB_USERNAME your database username
      • DB_PASSWORD your database password
    • Mail Account
      • You can make use of any of the available mail drivers, however I strongly recommend creating a free Mailgun account and have your email signed. However, SMTP email is a popular choice as well. If you use SMTP, ensure that the MAILGUN section is commented-out with a trailing #. If you make use of Mailgun, ensure that the SMTP MAIL section is commented-out with a trailing #.
  7. Edit the index.php file located in your server`s public directory. This file is part of the files uploaded in setp 5. Change the two values YOUR_HOSTING_FTP_USERNAME with your hosting account`s username - this is usually your FTP username as mentioned in step 1
  8. SSH to your hosting account. Putty is a popular choice for SSH`ing to a server
  9. Change to the the project directory files. If you have followed all the steps exactly, your command will be cd laravel_guru
  10. Issue the command php artisan eric:install and follow the on-screen installation


Dedicated / VPS Server / Laragon / Homestead

  1. Create a database on your server and take note of the credentials
  2. Unzip the contents of the projectfiles.zip archive and upload the contents to your server`s public directory (or sub-directory if you wish)
  3. Edit the file laravel_guru/.env (located in the project`s root directory) on your server as follows: (edit only these values)
    • System URL
      • APP_URL This is a fully qualified domain name, E.g. https://www.yourdomain.com
    • Public Directory
      • PUBLIC_DIRECTORY {directory_name}/public The directory_name is the actual name of the directory hosting the content files. If you are making use of a sub-directory, then this value would be the name of the sub-directory hosting the files.
    • Database Information
      • DB_HOST the name of your database host. This is most likely just localhost
      • DB_DATABASE the name of your database created
      • DB_USERNAME your database username
      • DB_PASSWORD your database password
    • Mail Account
      • You can make use of any of the available mail drivers, however I strongly recommend creating a free Mailgun account and have your email signed. However, SMTP email is a popular choice as well. If you use SMTP, ensure that the MAILGUN section is commented-out with a trailing #. If you make use of Mailgun, ensure that the SMTP MAIL section is commented-out with a trailing #.
  4. Edit the index.php file located in your server`s public directory. This file is part of the files uploaded in setp 5. Change the two values YOUR_HOSTING_FTP_USERNAME with your hosting account`s username - this is usually your FTP username as mentioned in step 1
  5. SSH to your hosting account. Putty is a popular choice for SSH`ing to a server
  6. Change to the the project directory files. If you have followed all the steps exactly, your command will be cd laravel_guru
  7. Issue the command php artisan eric:install and follow the on-screen installation