Hosting Laravel in Cpanel doesn't run application - laravel

I have problem when I'm trying to access home routes on website, but it seems that it doesn't pass form index.php
dir of require and $app are work because when I dd(1); after it, it show result in website
require __DIR__.'/system/vendor/autoload.php';
$app = require_once __DIR__.'/system/bootstrap/app.php';
dd(1);
but , the problem when handling the incoming request in kernel , which means run application in same file (index.php)
the error after sending response
The GET method is not supported for this route. Supported methods: HEAD.

You should not mess with those files. Seems that you havent defined the document root from the application.
Make sure that the document root is set to the folder public/ inside the project folder.

Found solution ,
I should use base URL as "/" not "/FolderProject"
pathInfo: "/"
requestUri: "/"
baseUrl: ""
basePath: ""

Related

How do I access Codeigniter 4 base url on live server?

I uploaded Codeigniter 4 to a shared hosting in a subdirectory.
I can access the installation (the default controller) if I go to http://example.com/ci4/public
but how can I access the default controller if I want to use http://example.com/ci4/
I already added http://example.com/ci4/ in App.php as baseurl. But currenty I'm getting a page not found error.
Try this okay.
I hope it will work
I discovered that when I try to point all my url to public/index.php in my project it return error 404 based on it can't find my controller after rewriting my .htaccess to point to public/index.php in my project root directory.
This is how I solved my problem =>
I move the index.php and the default .htaccess from public directory to my project root directory then I edit the index.php to locate my app directory
E.g
index.php Default find this line
// This is the line that might need to be changed, depending on your folder structure.
$pathsPath = FCPATH . '../app/Config/Paths.php';
Change it to
// This is the line that might need to be changed, depending on your folder structure.
$pathsPath = FCPATH . './app/Config/Paths.php';
I hope this work for you

Laravel 5.5 | Redirect main domain to public folder

I have laravel 5.5 project uploaded to live hosting on /public_html/commerce.
When I go to domain.com/commerce/public then everything looks working perfectly.
But when I point the domain directly to commerce/public, so; when I visit domain.com then all links got broken like this:
domain.com/product/domain.comget-item-sizes-detail
Route for above link:
Route::post('/get-item-sizes-detail', 'ProductController#getItemSizesDetail');
Ajax request:
url:'get-item-sizes-detail',
type:"POST",
dataType:"JSON"
Any suggestions?
Here's a quick fix:
Create a folder in your public_html directory
I will call it webroot you can call it anything you want.
Put all the content of your Laravel public folder inside public_html directory
Put all other remaining files and folder of your Laravel project inside webroot
Edit public_html/index.php, change line 22 require __DIR__.'/../bootstrap/autoload.php'; to require __DIR__.'/webroot/bootstrap/autoload.php'; and change line 36 $app = require_once __DIR__.'/../bootstrap/app.php'; to $app = require_once __DIR__.'/webroot/bootstrap/app.php';
So you don't have to point your main domain to public_html/public again.
Just accessing the maindomain.com should have your project running just like using PHP artisan serve. But still using a service like Forge or Fortrabbit is the best way to host your Laravel app.
Good luck

Laravel TypiCMS redirects to root

I am using TypiCMS Laravel here : github.com/TypiCMS/Base and I am facing the following problem:
I created a new module named "News" by executing command: composer require typicms/news. I also added providers in config/app.php, have publish views and migrations and migrated the database too.
The only problem I am facing is that whenever the url I given, it redirects me to the root directory of my project, that is, http://localhost/mywebsite/public/
Even, if I give invalid route like localhost/mywebsite/public/foobar, instead of showing me error, it again redirects to the root directory.
I have checked the .htaccess and routes.php file and there is not modifications.
Regards:
Adnan
TypiCMS cannot be installed in a subfolder, the root of your site must be http://localhost.

How to set routing between laravel and custom module?

I have two modules one is a Laravel Extension and Second one is custom module(just some html,css,js file).
I have created Two folders as its project requirement.
Let say Folder1(basic bootstrap home page) and Folder2(complete laravel Application).
Website Root
Folder1
--index.html
--css
--js
Folder2
--app
--config
--database
--other laravel foldes
How can configure routes so that from index.php I can call some
controller of laravel with is in Folder2.
And From some view of laravel redirect to index.php in Folder1
I know its not perfect way to do that but its requiremnt of client and we cann't change that.
Thanks in Advance.
You can try to use Puli and add your module Folder1 as a resource.
They have a twig extension too so using it in a Laravel should be pretty seamless
Do following steps make sure you have backup.
1.Put all content folder public folde to root folder so that laravel can understand this is your root.
2.Edit index.php and provide file path to them
require __DIR__.'folder2/bootstrap/autoload.php';
$app = require_once __DIR__.'folder2/bootstrap/app.php';
3.Now laravel routing is working here. so all your laravel routs are now filne.
4.Now for all html files in folder1 you can make a .htaccess rules or make a general rule in root folder.
Redirect 301 /home /folder1/home.html.
5.Now when you access site.com/home it will redirected to folder1 and when you access site.com/laravelHome it will go to folder2.
Hope this will help you.

Installing a CodeIgniter application in a subfolder

I'm trying to install an application made with codeIgniter in a subfolder, so that I can access it using : http://www.domain.com/my_subfolder/
At the root, there's a Wordpress application.
I edited the .htaccess of the Wordpress install to let the request go to the folder /my_subfolder/
It's working fine, the only problem I get is that CodeIgniter is unable to dynamically load the classes in the "libraries" directory. So everything in the CI application works fine until it tries to use an object declared in the "libraries" subfolder, then I get a : Unable to load the requested class: my_class
It doesn't seems that there's a parameter in the "config" folder to change that... any idea?
What you need is to edit your CodeIgniter config.php in System > application > config.
and then edit config.php and set the property:
$config['base_url'] = "http://www.domain.com/my_subfolder/"
Well it seems that the config param base_url should be updated. Also, I used a library with the "MY_" prefix, and I should'nt since I was'nt extending any CI class.
This is 2021. In case anyone is having this same issue with CodeIgniter 4, this is how I solved it when I came across this issue.
Problem
I installed CI in a subfolder in my public_html folder i.e example.com/api. When I visited www.example.com/api, I saw a 403 forbidden error.
Solution
Download and unzip CI on your local machine or use composer.
Rename public folder to the name of your subfolder. In my case, I named it api.
Create another folder and give it any name of choice, for example, let's use mango (yes, I love mangoes). Copy all the remaining files and folders (app, system, writables, env, LICENSE, README, composer, phpunit, spark) into the mango folder. After doing this, we should have 2 folders: api and mango
Copy both folders to your live server cpanel root (Do not copy into public_html or www). Let them be on the same level as public_html
Open api/index.php and change $pathsConfig = FCPATH . '../app/Config/Paths.php'; to $pathsConfig = FCPATH . '../mango/app/Config/Paths.php';
Create a subdomain and point it to /api
Go to the api folder, duplicate the env file and rename it to .env
Open .env and look for app.baseURL=''. Remove the '#' to uncomment that line and the change it to app.baseUrl='http://subdomain' where subdomain is the subdomain you created above e.g http://api.example.com
Open mango/app/config/App.php and look for public $baseUrl and set it to subdomain e.g $baseUrl = 'http://api.example.com'
Your CI project is now well configured. Visit http://api.example.com. and you should see the CodeIgniter welcome page.

Resources