Laravel hosting

Laravel hostingbeyond shared hosting

Connect the repository, set the environment and the app goes live. Queues and the scheduler run too, with no hand-made cron and no ticket for every composer install.

  • Free SSL
  • Hourly billing
  • Iran and Germany clusters
  • Free subdomain
lexoya / laravel-shopmain
$ git push origin main
✓ repository cloned
✓ composer install
✓ npm run build
✓ php artisan migrate
live your-project.lexoyacloud.ir

Those six lines are the whole deploy: no SSH, no hand-made cron.

What is Laravel hosting?

Laravel hosting is hosting that comes with the framework prerequisites already in place: the right PHP version, Composer and artisan, the document root on public, and a way to run background work such as queues and the scheduler. That is the real difference from shared hosting: there PHP lives only as long as one web request, and an always-on worker has nowhere to run.

A Laravel project runs on three kinds of infrastructure: shared hosting for low-traffic sites, a VPS for full control at the cost of maintenance, and a cloud platform that delivers deploys, scaling and background processing without server management. The right choice depends on whether the project needs a permanent queue worker.

What a Laravel project actually needs

This is the buying checklist. If a provider misses one item, the problem shows up later as an error, not on the sales page.

PHP version and extensions

Laravel 11 needs PHP 8.2 or newer. PDO, mbstring, openssl, intl, gd and zip must be enabled, and the version must be changeable, not pinned.

Document root on public

If the domain points at the project root, .env and the source become readable from outside. The document root has to be the public folder.

Build tooling: Composer and artisan

Dependency install and commands such as migrate and config:cache should run at deploy time, without a ticket.

A front-end build step

With Vite or Mix you need a place to run npm ci and npm run build, or the styles are never compiled.

An always-on worker

Queues rely on a long-running process. Without a worker, jobs sit in the queue and the user waits on a screen that never finishes.

A per-minute scheduler

schedule:run has to fire every minute. The limited cron of shared hosting usually breaks right here.

Cache and queue on Redis

File cache and a database queue work up to a point. Under real traffic, Redis is where the difference shows.

Storage outside the server

User uploads on a container’s local disk vanish with the next deploy; they belong on S3.

Shared hosting, VPS or a cloud platform?

None of them is simply better. Read the table against what your project actually does.

MetricShared hostingVPSLexoya cloud platform
ResourcesShared with dozens of othersDedicated, managed by youDedicated per project
Queues and workersUsually absent or cappedSupervisor, set up by youA separate worker project
SchedulerLimited cronFull cronCalled every minute
DeploymentManual upload or Git on the boxYour own scriptsPush to git, automatic build
Maintenance and securityWith the providerWith youWith us
CostLow and flatLow, but your time is notUsage-based, hourly

For a simple company site with a few hundred daily visits, shared hosting is still the cheapest option. Once you have queues, workers or frequent deploys, the maintenance cost of a VPS outweighs the price difference.

Deploying Laravel on Lexoya

Six steps from repository to domain. None of them needs SSH.

  1. Connect the repository

    Connect GitHub, GitLab or Gitea and pick the main branch.

  2. Pick the project type

    Choose the Laravel type. If the repo has a Dockerfile, point at its path; otherwise the built-in Laravel template is used.

  3. Environment variables

    Set APP_KEY, the database connection and QUEUE_CONNECTION. Secrets stay in the panel, not in the repository.

  4. Deploy

    Build, dependency install and release run for you. Every stage has a log, and a failed stage says why.

  5. Queue worker

    Create a Supervisor project running php artisan queue:work so jobs are processed apart from web traffic.

  6. Domain and SSL

    Attach your domain or use the free subdomain; the SSL certificate is issued and renewed automatically.

Queues, scheduler and background work

Five settings that separate “it starts on the server” from “it works in production”.

Queues on Redis

Point the queue driver at Redis and run the worker separately. Failed jobs need retries and logs.

Scheduler

schedule:run fires every minute and runs your kernel; there is no cron entry to define in a panel.

WebSockets with Reverb

Reverb takes its own port and domain and runs beside the main app. For heavy loads keep the worker and the socket server apart.

Horizon dashboard

If you run on Redis, Horizon comes up too. Put authentication in front of its route.

User files on S3

Set FILESYSTEM_DISK=s3 so uploads survive every deploy and stay shared across releases.

How the cost works

Cost follows the resources the project consumes: CPU, memory, disk and traffic, billed hourly. There is no fixed plan with a hidden ceiling; you choose the shape and pay for that.

  • Hourly billing, no setup fee
  • Managed database as a separate, visible line
  • A monthly estimate before you buy
Estimate the monthly cost

Moving from your current host

Most migration downtime comes from two places: transactional email and the payment gateway. Plan those two separately.

  1. Full backup

    Dump the database and copy storage/app/public.

  2. Code into git

    Push the repository without .env or vendor.

  3. Environment

    Set APP_URL, SESSION_DOMAIN and the new database connection.

  4. Deploy and migrate

    Run migrate --force, then test the payment gateway and user login.

  5. Switch DNS

    Change the domain record and keep the old host running until the new one is stable.

Common errors, and the fix

These are the errors that come up again and again in support.

A 500 right after deploy

Fix

Usually APP_KEY is empty or storage is not writable. Generate the key and fix the folder permissions.

Queued jobs never run

Fix

The worker is down or QUEUE_CONNECTION points at the wrong driver. Start the worker project and fix the driver.

Uploaded images vanish after each deploy

Fix

Files were written to the container’s local disk. Switch FILESYSTEM_DISK to S3.

Login fails with a 419

Fix

The session domain no longer matches, or the proxy is not trusted. Set SESSION_DOMAIN and the trusted proxies.

composer install stalls from Iran

Fix

Reaching packagist from inside Iran is not reliable. Run the deploy on the Germany cluster.

Styles stay stale after a deploy

Fix

The front-end build did not run, or the config cache is stale. Add npm run build and config:cache.

Frequent questions

On shared hosting PHP runs only to answer a request, and a permanent worker has no home. Laravel hosting keeps queues, the scheduler and artisan commands running.

Get the Laravel project live today

Connect the repo, set the variables and watch the first deploy. The free subdomain and SSL are there from the start.

Start a Laravel deploy