Hosting

Laravel hosting with PHP 8.4 and MariaDB

Run Laravel 12 or 13 on VeloxaHost Classic hosting: PHP 8.2 to 8.4, MariaDB, cron for the scheduler, a root browser console and automatic HTTPS.

A Laravel site on VeloxaHost runs in its own container with Caddy, PHP-FPM from packages.sury.org and a MariaDB server. Classic hosting adds a control panel for databases, cron jobs, PHP settings and logs, plus a browser console with root access.

Read this before you deploy. A PHP site serves /var/www/html, and the console's one-click Deploy Now button copies your repository into that folder, replacing what was there. It does not run Composer. Laravel needs its public/ folder as the document root, and needs vendor/ and .env to survive a deploy. So for Laravel you deploy with Git from the console, as below, not with the Deploy from Git card.

Deploy from Git

  1. In the console, open Websites and click Add Website.

  2. Enter your domain. Under Hosting type, pick Classic hosting (PHP + MySQL + control panel). Under PHP Version, pick 8.3 or 8.4 for Laravel 13, or 8.2 and up for Laravel 12. Keep Start With on Blank Site, then click Create Website.

  3. On the site's page, add the DNS records shown under DNS — point your domain here. HTTPS is issued once they resolve.

  4. In the Databases tab, create a database and a user, and grant the user the database. The host is localhost.

  5. On the Overview tab, under Advanced, click Open Console. It is a root shell in the site's container. Install Git and Composer:

    apt-get update && apt-get install -y git
    php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"
    php composer-setup.php --install-dir=/usr/local/bin --filename=composer
    
  6. Clone your app next to the web root, not inside it, and set it up:

    git clone -b main https://github.com/you/app.git /var/www/laravel
    cd /var/www/laravel
    composer install --no-dev --optimize-autoloader
    cp .env.example .env    # set APP_URL, DB_CONNECTION=mariadb, DB_HOST=localhost, DB_*
    php artisan key:generate
    php artisan migrate --force
    chown -R www-data:www-data storage bootstrap/cache
    
  7. Point the web root at Laravel's public/ folder:

    rm -rf /var/www/html && ln -s /var/www/laravel/public /var/www/html
    
  8. To ship a new version, run this in the console:

    cd /var/www/laravel && git pull && composer install --no-dev --optimize-autoloader && php artisan migrate --force
    

Do not use Deploy Now, the CI Webhook or Auto-deploy on a Laravel site set up this way. They copy the repository into the web root.

Supported versions

PHP Laravel versions that support it
8.4 13, 12 (and 11, now end of life)
8.3 13, 12 (and 11 and 10, now end of life)
8.2 12 (and 11 and 10, now end of life)
8.1 10, now end of life

PHP comes from packages.sury.org. New sites default to PHP 8.3. You can switch between the four versions later in the control panel's PHP tab. Laravel 13 needs PHP 8.3 or newer, and Laravel 12 needs 8.2 or newer. PHP 8.5 is not offered yet. Laravel's own support policy lists which releases still get security fixes.

Each PHP version is installed with these extensions: curl, gd, xml, mbstring, zip, intl, bcmath, soap, imagick, opcache and mysql.

FAQ

Why not use the Deploy from Git button for Laravel?

It replaces everything in /var/www/html with the repository and does not run Composer. Laravel's public/ folder would not be the document root, and vendor/ and .env would be removed on every deploy. Pull with Git from the console instead.

How do I run the Laravel scheduler?

Add a cron job in the Cron jobs tab with the schedule * * * * * and the command php /var/www/laravel/artisan schedule:run. Cron jobs run as the web server's user, and their output goes to the cron log in the Logs tab.

Can I run queue workers?

PHP sites have no process manager for long-running workers. You can process the queue from cron, for example php /var/www/laravel/artisan queue:work --stop-when-empty every minute. For dedicated workers, run Laravel on a VPS.

Can I use SQLite or Redis?

Neither is set up. The PHP SQLite extension and a Redis server are not installed, so set DB_CONNECTION to mariadb or mysql in .env and keep the session, cache and queue drivers on database or file.

Is there push-to-deploy for Laravel?

Not on a managed site today. The CI webhook triggers the same copy-into-web-root deploy as the button. If you want a pipeline that runs Composer and migrations on every push, a VPS lets you run your own deploy script.

Laravel sites run on any managed hosting plan, from Launch at $9.99/month.

Ready to deploy?

Start a free trial, or compare plans to match your team's scale.