I’m relatively new to Laravel. I’m confused on what is the proper way to deploy a Laravel 5.5 app to a Godaddy cPanel shared hosting. I’ve read multiple posts on the subject and they give conflicting advice.
Part of what I’m not clear on is do I copy all my files to the server and then run the following composer commands?:
composer install --optimize-autoloader
andphp artisan config:cache
I get the part where I should create a folder on the server outside of the public_html folder, placing all of the app files there except what is in the app’s public subfolder.
If I want to run the app from a subfolder how would I do that? For
example, www.mysite.com/laravelapp
The examples I found where for only running it from the public_html folder itself. Would it just involve changing the file paths in the www/index.php?
3
Answers
I figured out how to deploy Laravel on a Godaddy shared hosting plan after reading more posts about the subject. Here are the steps I took:
curl -sS https://getcomposer.org/installer | php
in the newly created app folder on the server.I modified the file paths in the index.php in the project folder so they pointed to the laravel app folder like so:
require __DIR__.'/../../laravel/bootstrap/autoload.php';
$app = require_once __DIR__.'/../../laravel/bootstrap/app.php';
I installed the dependencies by running the command in SSH:
php composer.phar install
, then adding the necessary cache by running:php artisan config:cache
That was it. I did it using Godaddy cPanel shared hosting. Before attempting this make sure the PHP version is set to 7.1. I wanted to post my steps because I found some of the tutorials on this subject either were confusing, gave conflicting advice or didn't provide all the necessary steps.
The biggest problem you have is that GoDaddy’s latest supported version of PHP is v5.6. Laravel v5.5 and later all require PHP v7.0 or higher.Apparently, they added PHP 7 support in late 2017.I’d still highly recommend shifting to a much more reputable host like (closest comparison) BlueHost.com or DigitalOcean.com.
The second biggest problem you have is that GoDaddy won’t let you actually run the
artisan
command, which Laravel really needs. It means 1. needing to apply database creation and migrations manually and 2. running all the artisan commands locally and uploading the entire project, in situ.The third biggest problem is that
composer
doesn’t run on GoDaddy, meaning you’ll need to upload all thevendor
directories, too.Addendum: Here is a guide for how to deploy Laravel on shared hosts: https://www.youtube.com/watch?v=6g8G3YQtQt4
I do the followings steps in a shared hosting:
line 24
line 38
this work for me in godaddy and inmotion