Pre-flight checks
OK
Web PHP runtime Detected 8.4.22; required 8.2.0+, preferred 8.4.0+.
OK
Preferred PHP 8.4 PHP 8.4 is preferred on cPanel when available.
FAIL
Web PHP extensions Missing: bcmath, curl, fileinfo, mbstring, pdo_mysql, zip
OK
cPanel CLI PHP binary Detected 8.4.22; binary: /opt/cpanel/ea-php84/root/usr/bin/php.
OK
cPanel PHP path preference Common cPanel PHP path is /opt/cpanel/ea-phpXX/root/usr/bin/php.
FAIL
CLI PHP extensions Missing: bcmath, curl, fileinfo, mbstring, pdo_mysql, zip
OK
Node.js for cPanel app Detected v22.23.0; required v22+.
FAIL
Bun Detected Unable to start command: bun --version; binary: bun.
FAIL
Composer Unable to start command: composer --version
OK
Repository root structure Root must contain package.json and a Bun lockfile.
OK
Laravel backend structure backend/ must contain artisan and composer.json.
OK
Backend public document root cPanel API domain document root must be /home/votersalert/public_html/backend/public.
OK
Laravel public .htaccess backend/public/.htaccess routes Apache requests to index.php.
WARN
Current web document root This request is served from /home/votersalert/public_html/deploy/installer; API domain should serve /home/votersalert/public_html/backend/public.
OK
Environment files writable Checks root .env and backend/.env permissions.
OK
Laravel writable paths storage/ and bootstrap/cache/ must be writable by the cPanel account.
FAIL
MySQL connectivity Unable to connect with the configured database credentials.
cPanel follow-up
In Setup Node.js App , set application root to public_html and startup file to server.cpanel.mjs.
Add Node app env vars: NODE_ENV=production and NITRO_PRESET=node-server.
Restart the Node.js app after Step 2 completes.
In Domains , confirm the API domain document root is backend/public.
Cron job strings
Laravel scheduler cd /home/votersalert/public_html/backend && /opt/cpanel/ea-php84/root/usr/bin/php artisan schedule:run >> /dev/null 2>&1 Queue worker fallback cd /home/votersalert/public_html/backend && /opt/cpanel/ea-php84/root/usr/bin/php artisan queue:work database --queue=campaign-delivery,default --stop-when-empty --tries=3 --timeout=120 >> storage/logs/queue-cron.log 2>&1 Security note Remove or password-protect this installer after deployment. It writes env files and runs server commands.