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
In the console, open Websites and click Add Website.
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.
On the site's page, add the DNS records shown under DNS — point your domain here. HTTPS is issued once they resolve.
In the Databases tab, create a database and a user, and grant the user the database. The host is
localhost.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=composerClone 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/cachePoint the web root at Laravel's
public/folder:rm -rf /var/www/html && ln -s /var/www/laravel/public /var/www/htmlTo 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.