{"id":99972,"date":"2023-12-14T04:01:02","date_gmt":"2023-12-14T04:01:02","guid":{"rendered":"\/tutorials\/?p=99972"},"modified":"2026-03-10T09:35:14","modified_gmt":"2026-03-10T09:35:14","slug":"how-to-deploy-laravel","status":"publish","type":"post","link":"\/ph\/tutorials\/how-to-deploy-laravel","title":{"rendered":"How to Deploy Laravel Project on a Virtual Private Server"},"content":{"rendered":"<?xml encoding=\"utf-8\" ?><p>Laravel is an open-source PHP web application framework. Its toolkits, libraries, and features help improve development efficiency since users don&rsquo;t need to code all functionality from scratch.<\/p><p>This popular framework has a large community of developers, enhancing support and resource availability. However, new users might be unsure how to deploy Laravel due to its various dependencies and commands.<\/p><p>In this tutorial, we will explain how to deploy the framework on an Ubuntu virtual private server (VPS). This Laravel deployment guide will also explore several tips that help simplify the task.<\/p><div class=\"wp-block-image\">\n<figure class=\"aligncenter size-large\"><a href=\"https:\/\/assets.hostinger.com\/content\/tutorials\/pdf\/Linux-Commands-Cheat-Sheet.pdf\" target=\"_blank\" rel=\"noopener\"><img decoding=\"async\" width=\"1024\" height=\"283\" src=\"https:\/\/www.hostinger.com\/tutorials\/wp-content\/uploads\/sites\/2\/2022\/11\/Linux-cheat-sheet-1024x283.png\" alt=\"\" class=\"wp-image-69262\" srcset=\"https:\/\/www.hostinger.com\/ph\/tutorials\/wp-content\/uploads\/sites\/44\/2022\/11\/Linux-cheat-sheet-1536x425.png 1024w, https:\/\/www.hostinger.com\/ph\/tutorials\/wp-content\/uploads\/sites\/44\/2022\/11\/Linux-cheat-sheet-300x83.png 300w, https:\/\/www.hostinger.com\/ph\/tutorials\/wp-content\/uploads\/sites\/44\/2022\/11\/Linux-cheat-sheet-150x41.png 150w, https:\/\/www.hostinger.com\/ph\/tutorials\/wp-content\/uploads\/sites\/44\/2022\/11\/Linux-cheat-sheet-768x212.png 768w, https:\/\/www.hostinger.com\/ph\/tutorials\/wp-content\/uploads\/sites\/44\/2022\/11\/Linux-cheat-sheet.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><\/div><p>\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-prerequisite-for-deploying-laravel\">Prerequisite for Deploying Laravel<\/h2><p>Before getting started with Laravel, purchase a virtual private server hosting plan. When choosing the <a href=\"\/ph\/tutorials\/best-vps-hosting\">best VPS hosting plan and provider<\/a> for your project, consider these aspects:<\/p><ul class=\"wp-block-list\">\n<li><strong>Compatibility<\/strong>. Your VPS must support the chosen operating system, web server, Laravel, the latest version of PHP, and other dependencies to run properly.<\/li>\n\n\n\n<li><strong>Access<\/strong>. The host server must provide full root access via a <a href=\"\/ph\/tutorials\/ssh-tutorial-how-does-ssh-work\">secure shell<\/a> (SSH) connection to enable seamless and secure Laravel deployment.<\/li>\n\n\n\n<li><strong>Performance<\/strong>. The ideal VPS hosting environment should provide sufficient bandwidth and server resources to ensure the Laravel application performs optimally.<\/li>\n\n\n\n<li><strong>Additional features<\/strong>. Some web hosting providers have features that help simplify the application deployment process, like a control panel and a one-click installer.<\/li>\n<\/ul><p>Hostinger&rsquo;s <a href=\"\/ph\/vps-hosting\">VPS solutions<\/a> are compatible with various Linux distributions, software, and frameworks, including Laravel.<\/p><p>Moreover, Hostinger users can set up their server in one click via hPanel using the operating system template. It comes pre-packaged with various software and its dependencies to simplify the deployment process. Check our <a href=\"\/ph\/vps\/laravel-hosting\">Laravel VPS hosting<\/a> page to learn more about the Ubuntu with Laravel template for a quick launch.<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"69df78062fef2\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.hostinger.com\/tutorials\/wp-content\/uploads\/sites\/2\/2019\/04\/browser-terminal-button-on-hpenel.png\" alt=\"The Browser terminal button on hPanel\" class=\"wp-image-125795\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><p>Moreover, all our VPS plans provide full root access to avoid permissions-related issues. Users can also <a href=\"https:\/\/support.hostinger.com\/en\/articles\/7978544-how-to-use-the-browser-terminal\" target=\"_blank\" rel=\"noopener\">use our built-in Browser terminal<\/a><strong> <\/strong>to connect to their remote server. It is more convenient than an SSH client since you can run <a href=\"\/ph\/tutorials\/linux-commands\">Linux commands<\/a> directly from your web browser.<\/p><p>Starting at <strong>\u20b1409.00\/month<\/strong>, our VPS solution offers up to 400 GB of NVMe storage, 8 TB of bandwidth, 32 GB of RAM, and 8 vCPU cores, suitable for large-scale enterprise projects. All our plans also come with a 30-day money-back guarantee.<\/p><?xml encoding=\"utf-8\" ?><figure class=\"wp-block-image size-large\"><a href=\"\/ph\/vps-hosting\" target=\"_blank\" rel=\"noreferrer noopener\"><img decoding=\"async\" width=\"1024\" height=\"300\" src=\"https:\/\/www.hostinger.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/02\/VPS-hosting-banner-1024x300.png\" alt=\"\" class=\"wp-image-77934\" srcset=\"https:\/\/www.hostinger.com\/ph\/tutorials\/wp-content\/uploads\/sites\/44\/2023\/02\/VPS-hosting-banner.png 1024w, https:\/\/www.hostinger.com\/ph\/tutorials\/wp-content\/uploads\/sites\/44\/2023\/02\/VPS-hosting-banner-300x88.png 300w, https:\/\/www.hostinger.com\/ph\/tutorials\/wp-content\/uploads\/sites\/44\/2023\/02\/VPS-hosting-banner-150x44.png 150w, https:\/\/www.hostinger.com\/ph\/tutorials\/wp-content\/uploads\/sites\/44\/2023\/02\/VPS-hosting-banner-768x225.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><h2 class=\"wp-block-heading\" id=\"h-how-to-deploy-laravel-project-at-hostinger\">How to Deploy Laravel Project At Hostinger<\/h2><p>For Hostinger users, the easiest way to deploy a Laravel project in a VPS is by using an operating system template. This method is accessible via the web browser, so it&rsquo;s ideal for beginners unfamiliar with the command-line interface.<\/p><p><div><p class=\"important\"><strong>Important!<\/strong> <a href=\"https:\/\/support.hostinger.com\/en\/articles\/1583232-how-to-back-up-or-restore-a-vps-server\" target=\"_blank\" rel=\"noopener\">Back up your VPS<\/a> before installing an operating system template since it will permanently erase all your server data.<\/p><\/div>\n\n\n\n<\/p><p>Here are the steps to install Laravel in Hostinger VPS using a template:<\/p><ol class=\"wp-block-list\">\n<li>Log in to <strong>hPanel<\/strong> and click <strong>VPS<\/strong> on the sidebar.<\/li>\n\n\n\n<li>Click <strong>Manage <\/strong>on the VPS hosting plan on which you want to install Laravel.<\/li>\n\n\n\n<li>From the sidebar, navigate to <strong>OS &amp; Panel<\/strong> &rarr; <strong>Operating system<\/strong>.<\/li>\n\n\n\n<li>In the <strong>Change OS <\/strong>section, click <strong>Application<\/strong>.<\/li>\n\n\n\n<li>Select <strong>Laravel <\/strong>from the list. Click<strong> Change OS<\/strong> to confirm.<\/li>\n<\/ol><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"69df780634964\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.hostinger.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/12\/laravel-vps-template-on-hpanel-operating-system-configuration-menu-1024x233.png\" alt=\"The Laravel VPS template on hPanel's operating system configuration menu\" class=\"wp-image-125920\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><ol start=\"6\" class=\"wp-block-list\">\n<li>You will be prompted with a confirmation window about data deletion. Check the box after you read the warning and click <strong>Confirm<\/strong>.<\/li>\n\n\n\n<li>Enter a new password for the hosting control panel. Click <strong>Confirm<\/strong> to proceed.<\/li>\n<\/ol><p>That&rsquo;s it! After the installation process is complete, click the <strong>Login URL<\/strong> under<strong> Strapi access<\/strong>, and you should see the Laravel welcome screen. The template will also automatically set up CloudPanel for deploying an application.<\/p><p>To do so, click the <strong>CloudPanel access URL<\/strong> and log in as an administrator. Click your <strong>VPS domain<\/strong> &rarr; <strong>File Manager<\/strong> &rarr; <strong>Add New<\/strong> &rarr; <strong>Upload file<\/strong>. Select your project files and click <strong>Open<\/strong>.<\/p><div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><a href=\"https:\/\/www.hostinger.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/12\/the-upload-file-button-on-cloudpanel-file-manager.png\"><img decoding=\"async\" width=\"1024\" height=\"414\" src=\"https:\/\/www.hostinger.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/12\/the-upload-file-button-on-cloudpanel-file-manager-1024x414.png\" alt=\"The Upload file button on CloudPanel File Manager\" class=\"wp-image-106601\" srcset=\"https:\/\/www.hostinger.com\/ph\/tutorials\/wp-content\/uploads\/sites\/44\/2023\/12\/the-upload-file-button-on-cloudpanel-file-manager.png 1024w, https:\/\/www.hostinger.com\/ph\/tutorials\/wp-content\/uploads\/sites\/44\/2023\/12\/the-upload-file-button-on-cloudpanel-file-manager-300x121.png 300w, https:\/\/www.hostinger.com\/ph\/tutorials\/wp-content\/uploads\/sites\/44\/2023\/12\/the-upload-file-button-on-cloudpanel-file-manager-150x61.png 150w, https:\/\/www.hostinger.com\/ph\/tutorials\/wp-content\/uploads\/sites\/44\/2023\/12\/the-upload-file-button-on-cloudpanel-file-manager-768x310.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><\/div><p>Since deployment via the control panel can be unreliable, we recommend using other methods like <strong>Git<\/strong>. We will discuss it later in the following section.<\/p><p>Note that you can&rsquo;t choose different software when installing Laravel using the VPS template. If you prefer another operating system or your project requires additional software, consider the manual method.<\/p><h2 class=\"wp-block-heading\" id=\"h-how-to-deploy-laravel-project-manually\">How to Deploy Laravel Project Manually<\/h2><p>In this section, we will explain the steps for manually deploying Laravel on VPS hosting running <strong>Ubuntu 22.04<\/strong>. Depending on the Linux distro and version, the commands may differ.<\/p><h3 class=\"wp-block-heading\" id=\"h-1-prepare-the-server-for-laravel\">1. Prepare the Server for Laravel<\/h3><p>Begin the deployment by installing the dependencies to prepare the hosting environment. You can <a href=\"\/ph\/tutorials\/how-to-use-putty-ssh\">use an SSH application like PuTTY<\/a>, Terminal, or Hostinger&rsquo;s Browser terminal.<\/p><p>Log in to your server using the<strong> root <\/strong>user. On Hostinger VPS, access the credentials by going to <strong>hPanel <\/strong>&rarr; <strong>VPS <\/strong>on the top menu. Then, navigate to your VPS plan and head to <strong>Overview<\/strong> &rarr; the <strong>SSH access<\/strong> tab.<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"69df780639426\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.hostinger.com\/tutorials\/wp-content\/uploads\/sites\/2\/2021\/10\/vps-ssh-username-and-ip-address-on-hpanel.png\" alt=\"SSH login credentials on hPanel's VPS overview page\" class=\"wp-image-125811\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><p><div><p class=\"important\"><strong>Important!<\/strong> Instead of root, we recommend creating a new account with superuser privilege to avoid accidental destructive command execution.<\/p><\/div>\n\n\n\n<\/p><p>Laravel requirements include a <a href=\"\/ph\/tutorials\/what-is-a-web-server\">web server<\/a>, database, PHP databases, and Composer. You&rsquo;ll also need other software like Git to push the application files from your local computer to the remote machine. Here are the steps:<\/p><ol class=\"wp-block-list\">\n<li>Update your APT package manager repository using this command:<\/li>\n<\/ol><pre class=\"wp-block-preformatted\">sudo apt update &amp;&amp; sudo apt upgrade<\/pre><ol start=\"2\" class=\"wp-block-list\">\n<li>Install the web server. In this tutorial, we&rsquo;ll use <strong>Apache<\/strong>:<\/li>\n<\/ol><pre class=\"wp-block-preformatted\">sudo apt install -y apache2<\/pre><ol start=\"3\" class=\"wp-block-list\">\n<li>Run this command to set up PHP and its extensions:<\/li>\n<\/ol><pre class=\"wp-block-preformatted\">sudo apt install -y php php-cli php-fpm php-mysql php-xml php-mbstring<\/pre><ol start=\"4\" class=\"wp-block-list\">\n<li>Configure a database. We&rsquo;ll install <a href=\"\/ph\/tutorials\/what-is-mysql\">MySQL<\/a> using the following command:<\/li>\n<\/ol><pre class=\"wp-block-preformatted\">sudo apt install -y mysql-server<\/pre><ol start=\"5\" class=\"wp-block-list\">\n<li><a href=\"\/ph\/tutorials\/how-to-install-composer\">Install Composer<\/a> to manage Laravel dependencies using this command:<\/li>\n<\/ol><pre class=\"wp-block-preformatted\">sudo apt install -y composer<\/pre><ol start=\"6\" class=\"wp-block-list\">\n<li>Enter this command to <a href=\"\/ph\/tutorials\/how-to-install-git-on-ubuntu\">set up the Git version control system<\/a>:<\/li>\n<\/ol><pre class=\"wp-block-preformatted\">sudo apt install -y git<\/pre><p>If you don&rsquo;t want to manually set up the production server, purchase <a href=\"https:\/\/forge.laravel.com\/\" target=\"_blank\" rel=\"noreferrer noopener\">Laravel Forge<\/a>. Starting at<strong> $12.99\/month<\/strong>, this platform provides a centralized area for installing and managing all applications required for your project.<\/p><h3 class=\"wp-block-heading\" id=\"h-2-deploy-the-application\">2. Deploy the Application<\/h3><p>Create a virtual host for your Laravel project by setting up a web server configuration file <a href=\"\/ph\/tutorials\/how-to-install-and-use-nano-text-editor\">using the <strong>nano<\/strong> text editor<\/a>. For Apache, run the following command:<\/p><pre class=\"wp-block-preformatted\">sudo nano \/etc\/apache2\/sites-available\/laravel.conf<\/pre><p>Within the file, write the following configuration. Make sure to replace the directory placeholders with the actual path and <strong>thedomain.com <\/strong>with your server IP address:<\/p><pre class=\"wp-block-preformatted\">&lt;VirtualHost *:80&gt;\n   ServerName thedomain.com\nServerAdmin webmaster@thedomain.com\n   DocumentRoot \/var\/www\/html\/test-laravel\/public\n   &lt;Directory \/var\/www\/html\/test-laravel\/public&gt;\n      AllowOverride All\n   &lt;\/Directory&gt;\n   ErrorLog ${APACHE_LOG_DIR}\/error.log\n   CustomLog ${APACHE_LOG_DIR}\/access.log combined\n&lt;\/VirtualHost&gt;<\/pre><p><div><p class=\"important\"><strong>Important!<\/strong> The configuration file content will look different if you use another web server like NGINX.<\/p><\/div>\n\n\n\n<\/p><p>Deploy Laravel application project code from your Git repository by running these commands in a series. Replace the URL with the actual link:<\/p><pre class=\"wp-block-preformatted\">cd \/var\/www\/html<\/pre><pre class=\"wp-block-preformatted\">sudo git clone https:\/\/github.com\/your_username\/test-laravel.git<\/pre><p>If you haven&rsquo;t pushed your Laravel project files to a repository, read our <a href=\"\/ph\/tutorials\/git-tutorial\">Git tutorial<\/a> to learn more about how to do so.<\/p><p>To deploy the project files, you can use methods like the <strong>rsync <\/strong>utility or a <a href=\"\/ph\/tutorials\/how-to-use-sftp-to-safely-transfer-files\/\">secure file transfer protocol (SFTP)<\/a><strong> <\/strong>application. However, we recommend version control in Laravel deployment for convenience and security.<\/p><p>Navigate to your project directory path and run <strong>composer install <\/strong>to configure the dependencies:<\/p><pre class=\"wp-block-preformatted\">cd test-laravel<\/pre><pre class=\"wp-block-preformatted\">sudo composer install<\/pre><p>If Terminal returns error messages, try running the <strong>composer update<\/strong> command. Also, add the <strong>&ndash;ignore-platform-req=ext-curl<\/strong> option to see if the issue resolves.<\/p><h3 class=\"wp-block-heading\" id=\"h-3-configure-the-env-file\">3. Configure the .env File<\/h3><p>When you create a Laravel application, Composer will generate a <strong>.env.example <\/strong>file template. It stores environment-specific configurations, determining various variables for your applications, like database information.<\/p><p>To set up a <strong>.env <\/strong>file for your Laravel project, copy the template below and open it using <strong>nano<\/strong>:<\/p><pre class=\"wp-block-preformatted\">sudo cp .env.example .env<\/pre><pre class=\"wp-block-preformatted\">sudo nano .env<\/pre><p>This file&rsquo;s configuration uses the <strong>KEY=VALUE <\/strong>pair syntax. For example, the following entry determines the Laravel database user password:<\/p><pre class=\"wp-block-preformatted\">DB_PASSWORD=your_password<\/pre><p>To change the configuration, delete the value and replace it with a new one. Press <strong>Ctrl + X<\/strong>, <strong>Y<\/strong>, and <strong>Enter<\/strong> to save the changes.<\/p><div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><a href=\"\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/12\/laravel-env-file-content-in-nano.png\"><img decoding=\"async\" width=\"1018\" height=\"528\" src=\"\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/12\/laravel-env-file-content-in-nano.png\" alt=\"Laravel env file content in nano\" class=\"wp-image-99977\" srcset=\"https:\/\/www.hostinger.com\/ph\/tutorials\/wp-content\/uploads\/sites\/44\/2023\/12\/laravel-env-file-content-in-nano.png 1018w, https:\/\/www.hostinger.com\/ph\/tutorials\/wp-content\/uploads\/sites\/44\/2023\/12\/laravel-env-file-content-in-nano-300x156.png 300w, https:\/\/www.hostinger.com\/ph\/tutorials\/wp-content\/uploads\/sites\/44\/2023\/12\/laravel-env-file-content-in-nano-150x78.png 150w, https:\/\/www.hostinger.com\/ph\/tutorials\/wp-content\/uploads\/sites\/44\/2023\/12\/laravel-env-file-content-in-nano-768x398.png 768w\" sizes=\"(max-width: 1018px) 100vw, 1018px\" \/><\/a><\/figure><\/div><p>By default, Laravel will set the <strong>DB_USERNAME<\/strong> as <strong>root<\/strong> and leave the <strong>DB_PASSWORD<\/strong> empty. However, it might cause an error when you run PHP artisan, the framework command-line utility, for database migration.<\/p><p>To resolve it, change the default root password and update the <strong>DB_PASSWORD<\/strong> value accordingly. Also, we recommend creating a non-default database and users specific to your current project for easier management.<\/p><p><div class=\"protip\">\n                    <h4 class=\"title\">Pro Tip<\/h4>\n                    <p>Check out our tutorial to learn more about how to <a href=\"\/ph\/tutorials\/mysql\/how-create-mysql-user-and-grant-permissions-command-line\">configure your MySQL user, password, and permissions<\/a> on Ubuntu.<\/p>\n                <\/div>\n\n\n\n<\/p><h3 class=\"wp-block-heading\" id=\"h-4-run-the-application\">4. Run the Application<\/h3><p>To start your Laravel application, make the project folder executable by changing the permissions and ownership:<\/p><pre class=\"wp-block-preformatted\">sudo chown -R www-data \/var\/www\/html\/test-laravel<\/pre><pre class=\"wp-block-preformatted\">sudo chmod -R 755 \/var\/www\/html\/test-laravel\/storage<\/pre><p>Run PHP artisan to generate the application key and initiate the database migration. Here are the commands:<\/p><pre class=\"wp-block-preformatted\">sudo php artisan key:generate<\/pre><pre class=\"wp-block-preformatted\">sudo php artisan migrate<\/pre><p>Whenever you modify the database schema, update the migration files to maintain consistent configuration for your app. Check out <a href=\"https:\/\/laravel.com\/docs\/10.x\/migrations\" target=\"_blank\" rel=\"noreferrer noopener\">Laravel&rsquo;s migration guide<\/a> to learn more about it.<\/p><p>Disable the virtual host&rsquo;s default configuration file in Apache using the following command:<\/p><pre class=\"wp-block-preformatted\">sudo a2dissite 000-default.conf<\/pre><p>Enable the new virtual host and the rewrite module using these commands:<\/p><pre class=\"wp-block-preformatted\">sudo a2ensite laravel.conf<\/pre><pre class=\"wp-block-preformatted\">sudo a2enmod rewrite<\/pre><p>Restart Apache using the <strong>systemctl <\/strong>command:<\/p><pre class=\"wp-block-preformatted\">sudo systemctl restart apache2<\/pre><p>Once the deployment process is complete, enter your VPS IP address or domain name into a web browser to check whether the application works correctly. If the files are empty, you should see the Laravel welcome page.<\/p><div class=\"wp-block-image\"><figure class=\"aligncenter size-large\"><a href=\"\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/12\/the-laravel-welcome-page.png\"><img decoding=\"async\" width=\"1024\" height=\"511\" src=\"\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/12\/the-laravel-welcome-page-1024x511.png\" alt=\"The Laravel welcome page\" class=\"wp-image-99979\" srcset=\"https:\/\/www.hostinger.com\/ph\/tutorials\/wp-content\/uploads\/sites\/44\/2023\/12\/the-laravel-welcome-page.png 1024w, https:\/\/www.hostinger.com\/ph\/tutorials\/wp-content\/uploads\/sites\/44\/2023\/12\/the-laravel-welcome-page-300x150.png 300w, https:\/\/www.hostinger.com\/ph\/tutorials\/wp-content\/uploads\/sites\/44\/2023\/12\/the-laravel-welcome-page-150x75.png 150w, https:\/\/www.hostinger.com\/ph\/tutorials\/wp-content\/uploads\/sites\/44\/2023\/12\/the-laravel-welcome-page-768x383.png 768w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><\/a><\/figure><\/div><h2 class=\"wp-block-heading\" id=\"h-laravel-deployment-tips-and-tricks\">Laravel Deployment Tips and Tricks<\/h2><p>In this section, we will discuss several Laravel deployment best practices to help streamline the process.<\/p><p><strong>Use Caching Configuration in Laravel<\/strong><\/p><p>The Laravel framework lets you store frequently accessed data as cache. It reduces the time required to fetch the information and offloads database queries, improving your web application performance.<\/p><p>It also provides various caching backends and drivers. Users can choose one that best suits their needs and configure it easily through the<strong> .env<\/strong> file&rsquo;s <strong>CACHE_DRIVER <\/strong>key.<\/p><div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><a href=\"\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/12\/drivers-configuration-settings-in-laravel-env-file.png\"><img decoding=\"async\" width=\"845\" height=\"183\" src=\"\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/12\/drivers-configuration-settings-in-laravel-env-file.png\" alt=\"Drivers configuration settings in Laravel env file\" class=\"wp-image-99980\" srcset=\"https:\/\/www.hostinger.com\/ph\/tutorials\/wp-content\/uploads\/sites\/44\/2023\/12\/drivers-configuration-settings-in-laravel-env-file.png 845w, https:\/\/www.hostinger.com\/ph\/tutorials\/wp-content\/uploads\/sites\/44\/2023\/12\/drivers-configuration-settings-in-laravel-env-file-300x65.png 300w, https:\/\/www.hostinger.com\/ph\/tutorials\/wp-content\/uploads\/sites\/44\/2023\/12\/drivers-configuration-settings-in-laravel-env-file-150x32.png 150w, https:\/\/www.hostinger.com\/ph\/tutorials\/wp-content\/uploads\/sites\/44\/2023\/12\/drivers-configuration-settings-in-laravel-env-file-768x166.png 768w\" sizes=\"(max-width: 845px) 100vw, 845px\" \/><\/a><\/figure><\/div><p>If you don&rsquo;t specify the cache driver, Laravel will use <strong>file <\/strong>by default. Alternatively, you can set it to <strong>array<\/strong>, <strong>database<\/strong>, <strong>redis<\/strong>, or <strong>memcached<\/strong>.<\/p><p>To enable cache, add the method to your application&rsquo;s codebase. For example, write <strong>Cache::put() <\/strong>to store data for a specified duration:<\/p><pre class=\"wp-block-preformatted\">Cache::put(&lsquo;key&rsquo;, &lsquo;value&rsquo;, $minutes);<\/pre><p>Meanwhile, use the <strong>Cache:rememberForever() <\/strong>method to store the cache indefinitely:<\/p><pre class=\"wp-block-preformatted\">Cache::rememberForever( &lsquo;key&rsquo;, function);<\/pre><p>This framework provides many caching methods for different purposes, like retrieving, removing, or incrementing the stored data. To learn more about them, check out <a href=\"https:\/\/laravel.com\/docs\/10.x\/cache\" target=\"_blank\" rel=\"noreferrer noopener\">Laravel&rsquo;s caching documentation<\/a>.<\/p><p>To manage the cache, you can run the PHP artisan commands in your project&rsquo;s working directory. For example, enter the following to remove the stored data:<\/p><pre class=\"wp-block-preformatted\">php artisan cache:clear<\/pre><p><strong>Use Automatic Laravel Deployment Tools<\/strong><\/p><p>Automating Laravel deployment helps save time and effort since without it, the process involves many steps. There are various tools and platforms for this task.<\/p><p>You can use continuous integration\/continuous deployment (CI\/CD) services like <a href=\"https:\/\/github.com\/features\/actions\" target=\"_blank\" rel=\"noreferrer noopener\">GitHub Actions<\/a> or software like <strong>Jenkins<\/strong>. They let you automate a custom Laravel deployment pipeline.<\/p><p>To set up automation in GitHub Actions, create a <strong>.yml<\/strong> file in your project directory. Define the workflow and its trigger event, like pushing the changes to the <strong>main <\/strong>branch. Then, write the tasks, steps, and environment variables. Read the <a href=\"https:\/\/docs.github.com\/en\/actions\/quickstart\" target=\"_blank\" rel=\"noreferrer noopener\">GitHub Actions quick start guide<\/a> to learn more about it.<\/p><p>For example, you can make it so that whenever a user pushes new code changes to the <strong>main <\/strong>branch, the <strong>.yml <\/strong>file will automatically run the PHP artisan command to generate the application key and restart your web server.<\/p><p><strong>Use Hostinger&rsquo;s Kodee for Easier Deployment<\/strong><\/p><p>Hostinger provides Kodee &ndash; a free <a href=\"\/blog\/vps-ai-assistant\">VPS AI Assistant<\/a> that helps improve your deployment efficiency. You can learn how to deploy a Laravel project on Hostinger and quickly generate instructions and commands for any task using <a href=\"\/ph\/tutorials\/ai-prompts-for-vps-management\">AI prompts for VPS management<\/a>.<\/p><p>For example, tell Kodee, &ldquo;I want to deploy a Laravel application to my Ubuntu server using Git. Explain the steps and generate the commands for this task.&rdquo; It will return a comprehensive response, and you can follow the guide and copy-paste the generated commands.<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"69df780641032\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-large wp-lightbox-container\"><img decoding=\"async\" width=\"1024\" height=\"493\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.hostinger.com\/tutorials\/wp-content\/uploads\/sites\/2\/2024\/10\/steps-to-deploy-laravel-generated-by-kodee-1024x493.png\" alt=\"Kodee AI Assistant explains steps and commands for deploying Laravel\" class=\"wp-image-117147\" srcset=\"https:\/\/www.hostinger.com\/ph\/tutorials\/wp-content\/uploads\/sites\/44\/2024\/10\/steps-to-deploy-laravel-generated-by-kodee-1024x493.png 1024w, https:\/\/www.hostinger.com\/ph\/tutorials\/wp-content\/uploads\/sites\/44\/2024\/10\/steps-to-deploy-laravel-generated-by-kodee-300x144.png 300w, https:\/\/www.hostinger.com\/ph\/tutorials\/wp-content\/uploads\/sites\/44\/2024\/10\/steps-to-deploy-laravel-generated-by-kodee-150x72.png 150w, https:\/\/www.hostinger.com\/ph\/tutorials\/wp-content\/uploads\/sites\/44\/2024\/10\/steps-to-deploy-laravel-generated-by-kodee-768x369.png 768w, https:\/\/www.hostinger.com\/ph\/tutorials\/wp-content\/uploads\/sites\/44\/2024\/10\/steps-to-deploy-laravel-generated-by-kodee-1536x739.png 1536w, https:\/\/www.hostinger.com\/ph\/tutorials\/wp-content\/uploads\/sites\/44\/2024\/10\/steps-to-deploy-laravel-generated-by-kodee-2048x985.png 2048w\" sizes=\"(max-width: 1024px) 100vw, 1024px\" \/><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><p>You can use Kodee to help troubleshoot errors during the Laravel deployment process. For example, &ldquo;I am deploying a Laravel application on an Ubuntu server and encountered an error when running the PHP artisan migrate command. Please diagnose the cause and check my server configuration for possible issues.&rdquo;<\/p><p>To access this feature, open your<strong> VPS configuration page<\/strong> in <strong>hPanel<\/strong> and select Kodee from the sidebar.<\/p><p><div><p class=\"important\"><strong>Important!<\/strong> As with any AI tool, we recommend you to always test the generated steps and commands in a development environment first to avoid accidents that may harm your live server.<\/p><\/div>\n\n\n\n<\/p><p><strong>Utilize Proper Dependency Management<\/strong><\/p><p>Composer lets developers define their app dependencies in the <strong>composer.json<\/strong> file. In addition to simplifying the installation process, it also improves environment stability and version control efficiency.<\/p><p>Run the <strong>composer update <\/strong>command to fetch all dependency patches specified in the file. However, ensure to review the new versions before doing so to avoid incompatibility issues or destructive updates.<\/p><p>To access the file, navigate to your Laravel project root directory. Usually, it is located within the <strong>var\/www\/html\/test-laravel <\/strong>path.<\/p><div class=\"wp-block-image\"><figure class=\"aligncenter size-full\"><a href=\"\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/12\/composer-json-file-content-in-nano.png\"><img decoding=\"async\" width=\"1020\" height=\"530\" src=\"\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/12\/composer-json-file-content-in-nano.png\" alt=\"composer json configuration file content in nano\" class=\"wp-image-99982\" srcset=\"https:\/\/www.hostinger.com\/ph\/tutorials\/wp-content\/uploads\/sites\/44\/2023\/12\/composer-json-file-content-in-nano.png 1020w, https:\/\/www.hostinger.com\/ph\/tutorials\/wp-content\/uploads\/sites\/44\/2023\/12\/composer-json-file-content-in-nano-300x156.png 300w, https:\/\/www.hostinger.com\/ph\/tutorials\/wp-content\/uploads\/sites\/44\/2023\/12\/composer-json-file-content-in-nano-150x78.png 150w, https:\/\/www.hostinger.com\/ph\/tutorials\/wp-content\/uploads\/sites\/44\/2023\/12\/composer-json-file-content-in-nano-768x399.png 768w\" sizes=\"(max-width: 1020px) 100vw, 1020px\" \/><\/a><\/figure><\/div><p>The <strong>composer.json <\/strong>file only applies to a specific environment. To ensure a clean and efficient project structure, maintain detailed documentation of each application or component&rsquo;s dependency configuration.<\/p><p>Regularly updating project dependencies ensures you receive the latest security patches and bug fixes. It also helps avoid incompatibility issues and version conflicts that might harm your application functionality.<\/p><p><strong>Optimize Laravel Performance<\/strong><\/p><p>Laravel performance optimization helps improve application responsiveness and scalability. If you run consumer-facing services, it can also help boost the user experience and brand perception.<\/p><p>There are several methods to optimize Laravel performance in an Ubuntu VPS. Here are some of them:<\/p><ol class=\"wp-block-list\">\n<li><strong>Enable caching<\/strong>. Laravel provides caching backends and devices to store frequently requested data in temporary storage. It helps reduce server load and database queries.<\/li>\n\n\n\n<li><strong>Set up a <\/strong><a href=\"\/ph\/tutorials\/what-is-cdn\"><strong>content delivery network<\/strong><\/a><strong> (CDN)<\/strong>. A CDN caches static content in multiple servers worldwide. It helps ensure your web application performs optimally regardless of the visitor&rsquo;s location.<\/li>\n\n\n\n<li><strong>Utilize queue workers. <\/strong>Queue workers are background processes handling resource-intensive tasks. They help offload these processes from the main application flow to improve performance.<\/li>\n\n\n\n<li><strong>Apply eager loading<\/strong>. Eager loading retrieves data related to the requested one on a single query. It helps reduce load since the database doesn&rsquo;t need to send the information individually.<\/li>\n<\/ol><p>In addition, always track your web application performance to ensure it runs optimally. Doing so lets you quickly catch potential issues impacting uptime or usability. Hostinger offers a built-in server resource monitoring feature accessible via <strong>hPanel<\/strong>.<\/p><div class=\"wp-block-image\"><figure data-wp-context='{\"imageId\":\"69df7806456e8\"}' data-wp-interactive=\"core\/image\" class=\"aligncenter size-full wp-lightbox-container\"><img decoding=\"async\" data-wp-class--hide=\"state.isContentHidden\" data-wp-class--show=\"state.isContentVisible\" data-wp-init=\"callbacks.setButtonStyles\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-on-async--load=\"callbacks.setButtonStyles\" data-wp-on-async-window--resize=\"callbacks.setButtonStyles\" src=\"https:\/\/www.hostinger.com\/tutorials\/wp-content\/uploads\/sites\/2\/2023\/12\/server-resource-monitor-on-hpanel-vps-overview-page.png\" alt=\"The server resource monitor on the VPS overview page\" class=\"wp-image-125921\"><button class=\"lightbox-trigger\" type=\"button\" aria-haspopup=\"dialog\" aria-label=\"Enlarge\" data-wp-init=\"callbacks.initTriggerButton\" data-wp-on-async--click=\"actions.showLightbox\" data-wp-style--right=\"state.imageButtonRight\" data-wp-style--top=\"state.imageButtonTop\">\n\t\t\t<svg xmlns=\"http:\/\/www.w3.org\/2000\/svg\" width=\"12\" height=\"12\" fill=\"none\" viewbox=\"0 0 12 12\">\n\t\t\t\t<path fill=\"#fff\" d=\"M2 0a2 2 0 0 0-2 2v2h1.5V2a.5.5 0 0 1 .5-.5h2V0H2Zm2 10.5H2a.5.5 0 0 1-.5-.5V8H0v2a2 2 0 0 0 2 2h2v-1.5ZM8 12v-1.5h2a.5.5 0 0 0 .5-.5V8H12v2a2 2 0 0 1-2 2H8Zm2-12a2 2 0 0 1 2 2v2h-1.5V2a.5.5 0 0 0-.5-.5H8V0h2Z\"><\/path>\n\t\t\t<\/svg>\n\t\t<\/button><\/figure><\/div><p><div class=\"protip\">\n                    <h4 class=\"title\">Suggested Reading<\/h4>\n                    <p>Looking to configure Laravel on your VPS? Check out our tutorial about <a href=\"\/ph\/tutorials\/how-to-install-laravel-on-ubuntu-18-04-with-apache-and-php\/\">installing Laravel on Ubuntu 18.04 using Apache and PHP<\/a> to learn more about the steps.<\/p>\n                <\/div>\n\n\n\n<\/p><h2 class=\"wp-block-heading\" id=\"h-conclusion\">Conclusion<\/h2><p>Laravel is an open-source PHP web application framework that helps improve development efficiency. To deploy it in Hostinger VPS, navigate to the Operating System menu in hPanel and install the Ubuntu 22.04 with Laravel template. Then, upload your project via CloudPanel&rsquo;s file manager.<\/p><p>Alternatively, users looking for more flexibility can deploy Laravel manually using commands. Here are the steps:<\/p><ol class=\"wp-block-list\">\n<li><strong>Prepare the new server<\/strong>. Install Composer, Apache web server, PHP, and other software on the production environment. Alternatively, use Laravel Forge to manage them on a single platform.<\/li>\n\n\n\n<li><strong>Deploy the application<\/strong>. Set up a virtual host by creating an Apache configuration file. Push your app code from a Git repository to the live server.<\/li>\n\n\n\n<li><strong>Configure the .env file<\/strong>. Copy the<strong> .env.example<\/strong> template into your application folder and change the<strong> .env <\/strong>file&rsquo;s key-value pair to tweak its settings.<\/li>\n\n\n\n<li><strong>Run the Laravel application<\/strong>. Change the project folder&rsquo;s permissions and ownership. Run the <strong>composer install<\/strong> and PHP artisan commands, then disable Apache&rsquo;s default virtual host.<\/li>\n<\/ol><p>To improve the Laravel application deployment efficiency, use Hostinger&rsquo;s Kodee, automation tools, and the Composer dependency manager. Also, set up a CDN, enable cache, and optimize database queries to improve your application performance.<\/p><h2 class=\"wp-block-heading\" id=\"h-how-to-deploy-laravel-faq\">How to Deploy Laravel FAQ<\/h2><p>In this section, we will answer several common questions about deploying a Laravel project.<\/p><div class=\"schema-faq wp-block-yoast-faq-block\"><div class=\"schema-faq-section\" id=\"faq-question-1702523780364\"><h3 class=\"schema-faq-question\">What Do I Need to Deploy a Laravel Project?<\/h3> <p class=\"schema-faq-answer\">To deploy Laravel apps, you need a server running a compatible operating system like Ubuntu. You also need several dependencies, like a web server, PHP, PHP extensions, Composer, Git, and a database.<br><br>It&rsquo;s also possible to use NGINX or Apache. Meanwhile, popular databases for Laravel include MySQL and MongoDB.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1702523791959\"><h3 class=\"schema-faq-question\">Can I Deploy Multiple Laravel Applications on the Same Server?<\/h3> <p class=\"schema-faq-answer\">Yes, you can deploy multiple applications in a Laravel server with a dedicated directory, dependencies, and configuration environments.<br><br>To do so, create separate folders for the Laravel applications within the <strong>\/var\/www\/html <\/strong>path. Set up dedicated virtual hosts for each project and copy the <strong>.env<\/strong> file to every directory.<\/p> <\/div> <div class=\"schema-faq-section\" id=\"faq-question-1702523819906\"><h3 class=\"schema-faq-question\">Can I Scale My Laravel Application?<\/h3> <p class=\"schema-faq-answer\">Yes. You can apply common scaling methods like configuring load balancers, upgrading server resources, and setting up caching mechanisms like <a href=\"\/ph\/tutorials\/how-to-install-and-setup-redis-on-ubuntu\/\">Redis<\/a> or Memcached.<br><br>In addition, this framework has a built-in queue system that offloads resource-demanding tasks from the main flow. It helps improve performance for scaling Laravel applications.<\/p> <\/div> <\/div>\n","protected":false},"excerpt":{"rendered":"<p>Laravel is an open-source PHP web application framework. Its toolkits, libraries, and features help improve development efficiency since users don&rsquo;t need to code all functionality from scratch. This popular framework has a large community of developers, enhancing support and resource availability. However, new users might be unsure how to deploy Laravel due to its various [&#8230;]<\/p>\n<p><a class=\"btn btn-secondary understrap-read-more-link\" href=\"\/ph\/tutorials\/how-to-deploy-laravel\">Read More&#8230;<\/a><\/p>\n","protected":false},"author":337,"featured_media":0,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"rank_math_title":"How to Deploy Laravel Project in %currentyear% + Best Practices","rank_math_description":"Learn how to deploy Laravel: 1. Choose the right VPS provider 2. Prepare the server for deployment 3. Deploy the application + more.","rank_math_focus_keyword":"how to deploy laravel","footnotes":""},"categories":[22639],"tags":[],"class_list":["post-99972","post","type-post","status-publish","format-standard","hentry","category-vps"],"hreflangs":[{"locale":"en-US","link":"https:\/\/www.hostinger.com\/tutorials\/how-to-deploy-laravel","default":0},{"locale":"pt-BR","link":"https:\/\/www.hostinger.com\/br\/tutoriais\/como-implantar-laravel","default":0},{"locale":"fr-FR","link":"https:\/\/www.hostinger.com\/fr\/tutoriels\/comment-deployer-laravel","default":0},{"locale":"id-ID","link":"https:\/\/www.hostinger.com\/id\/tutorial\/cara-deploy-laravel-ke-vps","default":0},{"locale":"de-DE","link":"https:\/\/www.hostinger.com\/de\/tutorials\/laravel-tutorial","default":0},{"locale":"en-UK","link":"https:\/\/www.hostinger.com\/uk\/tutorials\/how-to-deploy-laravel","default":0},{"locale":"en-MY","link":"https:\/\/www.hostinger.com\/my\/tutorials\/how-to-deploy-laravel","default":0},{"locale":"en-PH","link":"https:\/\/www.hostinger.com\/ph\/tutorials\/how-to-deploy-laravel","default":0},{"locale":"pt-PT","link":"https:\/\/www.hostinger.com\/pt\/tutoriais\/como-implantar-laravel","default":0},{"locale":"en-IN","link":"https:\/\/www.hostinger.com\/in\/tutorials\/how-to-deploy-laravel","default":0},{"locale":"en-CA","link":"https:\/\/www.hostinger.com\/ca\/tutorials\/how-to-deploy-laravel","default":0},{"locale":"en-AU","link":"https:\/\/www.hostinger.com\/au\/tutorials\/how-to-deploy-laravel","default":0},{"locale":"en-NG","link":"https:\/\/www.hostinger.com\/ng\/tutorials\/how-to-deploy-laravel","default":0}],"_links":{"self":[{"href":"https:\/\/www.hostinger.com\/ph\/tutorials\/wp-json\/wp\/v2\/posts\/99972","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/www.hostinger.com\/ph\/tutorials\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/www.hostinger.com\/ph\/tutorials\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/ph\/tutorials\/wp-json\/wp\/v2\/users\/337"}],"replies":[{"embeddable":true,"href":"https:\/\/www.hostinger.com\/ph\/tutorials\/wp-json\/wp\/v2\/comments?post=99972"}],"version-history":[{"count":16,"href":"https:\/\/www.hostinger.com\/ph\/tutorials\/wp-json\/wp\/v2\/posts\/99972\/revisions"}],"predecessor-version":[{"id":126834,"href":"https:\/\/www.hostinger.com\/ph\/tutorials\/wp-json\/wp\/v2\/posts\/99972\/revisions\/126834"}],"wp:attachment":[{"href":"https:\/\/www.hostinger.com\/ph\/tutorials\/wp-json\/wp\/v2\/media?parent=99972"}],"wp:term":[{"taxonomy":"category","embeddable":true,"href":"https:\/\/www.hostinger.com\/ph\/tutorials\/wp-json\/wp\/v2\/categories?post=99972"},{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/www.hostinger.com\/ph\/tutorials\/wp-json\/wp\/v2\/tags?post=99972"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}