Download as pdf or txt
Download as pdf or txt
You are on page 1of 8

Deploy Laravel Project into 000webhost site

000webhost.com/forum/t/deploy-laravel-project-into-000webhost-site/127323

17 de junio de 2018

Deploying your Laravel Project to 000webhost


(Tested for Laravel 5.6)

Hi everyone! This tutorial will help you deploy your Laravel project into your 000webhost site in a
professional manner. I am more good at writing code instead of writing articles, so lets get straight to
the subject!

1. Uploading.
Before we start, your website must be ‘clean’. It must not contain a single file in it, that to prevent
interface with Laravel. Please back up your current website content and database, then go to
000webhost cPanel (choose the website you want to work with) > Settings > General > Reset website. After
you’re done, you can continue further

Laravel contains a lot of files and folders, especially in /vendor directory. If we would attempt to
upload every file manually either over FTP either over our built-in File Manager it would take a
lifetime.

Having that said, the best way to quickly upload your Laravel project to 000webhost is to: archive it,
upload the archived content, extract it, and then apply whatever changes are necessary.

That’s it! You have uploaded your project to 000webhost

2. Setting up the environment.


You have successfully uploaded your project to 000webhost. However your application is not ready
yet. You’ll have to move on with further configuration.

1. Moving folders to appropriate path

The entire application alongside Laravel System itself is not accessible to the public. It must not
stay in /public_html . We could create a .htaccess redirect to point to the index file from
/public but it will not be recommended: a) for security reasons and b) because this is not the
way it supposed to work. Therefore we must move the entire Project to the root path of our
website:

 
23.png842×565 42 KB

Make sure the destination is: /

 
image.png842×565 43.4 KB

2. Configuring the public path

Great, we have migrated the entire project from frontend to backend! However 000webhost’s
public path is /public_html and Laravel’s default public path is /public . 000webhost and
Laravel must reach a consent, otherwise the project won’t be online. Since we can’t configure
000webhost, we should configure Laravel

A. Remove the current /public_html . We don’t need it.


B. Rename /public to /public_html
C. Go to /app/Providers/AppServiceProvider.php and append the following code to
register() method:

$this -> app -> bind('path.public', function()


{
return base_path('public_html');
});

          

image.png842×565 29.4 KB

3. Integrate application in new environment


 

Almost done. Now we need to set up the configuration. And remove previous cache so that
Laravel will behave normally in the new environment.

A. Locate .env file. Open it.


B. Copy the the value of APP_KEY without ‘ base64: ’

27.png842×565 29.8 KB

C. Go to /config/app.php , locate ‘ key ’ and update its value to your APP_KEY according to
the image:

 
image.png842×565 34.8 KB

D. (optional) If you have a database, update the database credentials in


/config/database.php with the ones from 000webhost cPanel > Manage databases:

 
image.png842×565 35.4 KB

  E. Clear old Laravel cache: Delete all files from /bootstrap/cache except .gitignore
 

3. The end.
That’s it! You have successfully deployed your Laravel project.
For any further questions please check our FAQ section or open a new topic and we’ll discuss.

FAQ.

1. I am receiving Wrong COM_STMT_PREPARE response size. Received 7 error.

  Please go to /config/database.php and append the following line of code to your database
connection configuration: 'options' => [PDO::ATTR_EMULATE_PREPARES => true,],
4.png899×556 23.9 KB

2. I have deployed my project but I am still receiving Error 500/Something went


wrong/Exception . What should I do?

  Please go to /config/app.php at debug vector and set the value to true . Now access the
URL which is giving errors and start tracking the bugs.

3. Why does the configuration from .env is not loaded automatically?

  Mainly said, Laravel uses putenv() to retrieve the variables from .env file and store them
as PHP environment variables. putenv() has been disabled on 000webhost for security
reasons. Your remaining choice is to update the configuration into /config/[...] manually.

4. How to use Composer via SSH to manage my dependencies?

  Free plans do not allow SSH connections to your websites. Paid plans do. You may purchase a
cheap paid plan here.

You might also like