Common server problems
Oct 15, 2026
Dropdowns open, tabs and buttons do nothing
Cause: livewire.min.js returns a 404, so Alpine.js never loads. On nginx this is the static-file rule described in Installing on CloudPanel and nginx. On Apache it means .htaccess is not being used, or the files are not served through index.php.
Check: open the browser developer tools (F12), Network tab, reload, and look for livewire.min.js.
A blank page or "500 Server Error"
- Open
storage/logs/laravel.logand read the last error. - Check the folder permissions:
storageandbootstrap/cachemust be writable by the web user. - Check the PHP version and extensions in Settings > System Information.
- After changing
.envrunphp artisan optimize:clear, or delete the files inbootstrap/cachethat start withconfigandroutes.
Pages load but no styling
The folder public/build is missing or not readable. It is part of the package. Re-upload it. If a plugin page looks unstyled after an update, run the update again; each release ships a rebuilt stylesheet.
"419 Page Expired"
The session or CSRF token did not match. Causes: the page was open for a long time, cookies are blocked, APP_URL in .env does not match the address you use (http vs https, www vs non-www), or storage/framework/sessions is not writable. Set APP_URL to the real address and run php artisan optimize:clear.
Redirect loops or http/https mix
Behind a proxy or CDN (Cloudflare, Varnish, a load balancer) the app must know the original scheme. WHBMP trusts proxy headers; make sure the proxy sends X-Forwarded-Proto and X-Forwarded-For. With Cloudflare use SSL mode Full or Full (strict), not Flexible.
Everything is slow
- Enable OPcache in PHP.
- Make sure the cron job runs and the queue is not backed up.
- Run
php artisan optimizeafter an update. - Use PHP 8.3 or newer.
Emails are not sent
By default .env has MAIL_MAILER=log, which only writes mail to a log. Set real SMTP in Settings > General Settings > Mail and send a test email. Some hosts, including Oracle Cloud, block outgoing port 25, so use an SMTP relay on port 587 or 465. See Email and SMTP.
The cron job does not run
"Permission denied" when updating
The one-click updater needs the code folders to be writable by the user PHP runs as. System Health and the update page tell you which folder failed. Fix the ownership (chown -R SITEUSER:SITEUSER) rather than using 777.
The site is stuck in maintenance mode
An update that was cut off leaves the site down. The scheduler brings it up again within a few minutes if cron is running. To do it by hand: php artisan up. If you put the site in maintenance mode yourself in General Settings > General, switch it off there.
Admin path forgotten
The admin address comes from ADMIN_PATH in .env (default admin). Read the file over SSH or File Manager.