'How can I deploy my Laravel project to root folder in Hostinger with git?
I'm trying deploy my project to Hostinger with git, but I can't deploy direct to root folder (/home/uXXXXXXXX). The path in cPanel is directly to /home/uXXXXXXX/public_html.
Is there anyway to deploy to root folder? My project is in Laravel. What is the best way to deploy to shared host? Because part of the folders need to be in the root and others in /public_html. Will I have always move folders manualy in my hosting?
I'm a little confused in this part. I'll appreciate any help
Solution 1:[1]
The other answers might work but there's no way am complicating something so basic.
What if you have the website working locally in a public
folder rather than public_html
and then you have to make changes to your local branch and re-deploy to git? You'll face errors when your local branch is not in sync with your remote branch.
The best way to do is:
- create a new
.htaccess
file inside public_html directory - Add these codes
RewriteCond %{HTTP_HOST} ^your-domain.com$ [NC,OR]
RewriteCond %{HTTP_HOST} ^www.your-domain.com$
RewriteCond %{REQUEST_URI} !your-laravel-folder/public/
RewriteRule (.*) /your-laravel-folder/public/$1 [L]
In the above lines you should replace the following:
your-domain.com
– Type your own domain name and also replace your-laravel-folder
with your folder name.
Solution 2:[2]
you can actually clone it using ssh access.
open ur ssh for a particular domain. go to the root folder. u can clone it there.
you can keep your project files there. even though u have top copy the contents of puclic folder inside your laravel project to public_html folder, and also edit the index.php so that all resources must be pointed to the project folder outside public_html
Inorder to update your project you will have to clone it from ssh again
Solution 3:[3]
Step 1: configuration
- Install Laravel locally.
- Rename
public
folder topublic_html
- add
Schema::defaultStringLength(191);
to boot function inApp/Providers/AppServiceProvider.php
. - Initialize git and commit.
Step 2: push to GitHub
create a repo in github
push local repo just created moments ago to GitHub.
step 3: server management
Login with SSH from your local terminal
change directory to correct domain (if you have many domains)
run
ls
command it should returnpublic_html
(only if there are no other files in root directory, if any backup and delete them)backup and delete public_html directory.
rm -rf public_html
basically all your data is located in public_html/ directory
run
git clone YOUR-REPO@git ./
useful links:
Sources
This article follows the attribution requirements of Stack Overflow and is licensed under CC BY-SA 3.0.
Source: Stack Overflow
Solution | Source |
---|---|
Solution 1 | Skykid Felix |
Solution 2 | Shagal Sajid |
Solution 3 |