Deploy Laravel Project on 000webhost

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. Unfortunately free plans do not allow SSH connections, therefore we’ll use primitive methods for setup.

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 :slight_smile:


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.

  1. Go to the root of your Laravel project:
     
    image

  2. Select all files, folders (except node_modules) and ZIP them:
     
    15

  3. Make sure the archiving method is ZIP. 000webhost can’t extract RAR archives.
    image

  4. Zipping process can take a while. After it is done, make sure you have the following output file:
     
    image

  5. Now go to File Manager and upload the newly created archive:
     
    image

  6. After file has been uploaded, right click on it and hit ‘Extract’:
     
    image
     
    image

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

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; that’s is not the way it supposed to work. We should move the entire Project to the root path of our website:
     
    23
     
    Make sure the destination is: /
     
    image

  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
     
    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

  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
     
    C. Go to /config/app.php, locate ‘key’ and update its value to your APP_KEY according to the image:
     
    image
     
    D. (optional) If you have a database, update the database credentials in /config/database.php with the ones from 000webhost cPanel > Manage databases:
     
    image
     
    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. :slight_smile:


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

  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 an affordable one here. :slight_smile:

5 Likes
Code Error 500 on Laravel Projects
Http 500 error. Please help
Laravel website error
How I can host my laravel project
Laravel Database connectivity issues
Ftp_mkdir(): Can't create directory: File exists while unzipping zip folder in public_html
ERROR 500 laravel please help
ERROR: SQLSTATE[HY000] [2002] Connection refused with Lumen
Laravel (5.5.*) and php (5.6.4) Application error (An error occurred in the website and your page could not be displayed. If you are the website owner, check your logs for details.)
Laravel deploy to 000webost 500 server error
how do i upload laravel to hosting ?
Http 500 error Laravel. Please help
Blank page after installation
Host Lumen as a web API
Help deploying laravel project
Whats wrong here
500 on Laravel 7 project
Deloy laravel 5.8 to 000webhost
Laravel (5.5.*) and php (5.6.4) Application error (An error occurred in the website and your page could not be displayed. If you are the website owner, check your logs for details.)
SQLSTATE[HY000] [1045] ProxySQL Error: Access denied for user 'forge'@'
Laravel .env can't be accessed but worked fine a week ago
Laravel deploy to 000webhost error
Fatal error: Uncaught RuntimeException: A facade root has not been set
Website not working after the Sleeping time
Please help, i can open my site
The only supported ciphers are AES-128-CBC and AES-256-CBC with the correct key lengths.
La página gestioneletk.000webhostapp.com no puede procesar esta solicitud ahora. HTTP ERROR 500
500 error in laravel website
Internal Server Error during deployment
Laravel 6 controller does not exist
Why my webpages except first page are writting (404. That’s an error. The requested URL was not found on this server.)
Storage path on laravel project
Can 000webhost install software?
Availability of host services and my php site and sql db
Wrong COM_STMT_PREPARE response size. Received 7 error
Laravel (5.5.*) and php (5.6.4) Application error (An error occurred in the website and your page could not be displayed. If you are the website owner, check your logs for details.)
PROC_OPEN PHP/PHP proc_open function needs to be enabled
Problemas con el fichero index.php