A powerful and flexible Laravel package for multisite management, each site with different database and .env.
- 🧩 Multisite - Manage multiple sites with separate databases and configurations.
Install the package via Composer:
composer require rdcstarr/laravel-multisite
- Prepare your Nginx or Apache configuration to route requests to the same Laravel application. Example for nginx:
server { listen 80; server_name example.com; root /home/admin/web/{core.local}/public; index index.php index.html index.htm; location / { try_files $uri $uri/ /index.php?$query_string; } location ~ \.php$ { include snippets/fastcgi-php.conf; fastcgi_pass unix:/var/run/php/php8.4-fpm.sock; fastcgi_param SCRIPT_FILENAME $document_root$fastcgi_script_name; include fastcgi_params; } }
- Replace
use Illuminate\Foundation\Application
withuse Rdcstarr\Multisite\Foundation\Application
in./bootstrap/app.php
. - Add next cod before bootstrap application:
$_SERVER['MULTISITE'] = [ 'production' => [ 'sites_path' => '/home/admin/web', // path where all sites are located 'base_path' => '/private', // path to the folder with .env files, e.g. in my case path will be: `/home/admin/web/{site.tld}/private/.env` 'public_path' => '/public_html', // path to the public files, e.g. in my case path will be: `/home/admin/web/{site.tld}/public_html` ], 'local' => [ 'sites_path' => '/var/www/html/.subdomains', // path where all sites are located in local development 'base_path' => '/private', // path to the folder with .env files, e.g. in my case path will be: `/var/www/html/.subdomains/{site.tld}/private/.env` 'public_path' => '/public_html', // path to the public files, e.g. in my case path will be: `/var/www/html/.subdomains/{site.tld}/public_html` ], // List of artisan commands who doesn't require multisite context 'SKIP_VALIDATION' => [ 'theme', ], ];
The package provides dedicated Artisan commands for managing settings directly from the command line:
php artisan multisite:list
php artisan multisite:migrate [--force] [--seed] [--seeder]
php artisan multisite:migrate-fresh [--force] [--seed] [--seeder]
php artisan multisite:queue
php artisan multisite:schedule-run
php artisan multisite:seed [--force] [--class]
composer test
- Changelog for more information on what has changed recently. ✍️
- Rdcstarr 🙌
- License for more information. ⚖️
- [] Change single and daily logs to base path like
/home/admin/web/{site.tld}/private/logs/laravel.log