Hosting diagnostics

FAIL

Generated 2026-11-06T15:35:50+01:00 in 41 ms. 27 ok 11 warn 1 fail 14 info · JSON · without HTTP probes · shop

This page is a test instrument: it is public and reveals the environment. Remove the route from a real shop.

PHP runtime

StatusCheckValueWhy it matters
warn PHP version 8.1.2-1ubuntu2.28 Runs Laravel 10, which is end of life with unpatched advisories. Laravel 11/12 need PHP 8.2+, and the hosting offers no version choice.
info SAPI fpm-fcgi Served by PHP-FPM, as on a WAYHOST php site.
info Process user mbankole3 (uid 1006) The pool runs as the hosting account, so the app can write wherever the account can.
ok Required extensions ctype, curl, dom, fileinfo, filter, gd, hash, json, mbstring, openssl, pcre, pdo, pdo_mysql, session, tokenizer, xml Everything Laravel 10 and this app need is loaded.
warn Extension bcmath missing Money/decimal maths (brick/money, many payment SDKs) and some UUID libraries need it.
warn Extension intl missing Number/date localisation, Str::of()->...->ucwords on some locales, Laravel 11 Number helper.
ok Extension zip loaded Excel/zip exports (maatwebsite/excel, phpspreadsheet).
ok Extension exif loaded Reading photo orientation (intervention/image) before resizing.
warn Extension redis missing phpredis for cache/queue/session on Redis; the hosting has no Redis server either.
warn Extension pdo_sqlite missing SQLite databases, used by many test setups and small apps.
ok Extension sodium loaded Modern crypto (argon2id via libsodium, paseto, some JWT libs).
warn Extension pcntl missing Signals for queue:work timeouts; never available under FPM anyway.
warn Extension imagick missing Higher quality image processing; GD is the only option here.
info All loaded extensions Core, date, libxml, openssl, pcre, zlib, filter, hash, json, Reflection, SPL, session, standard, sodium, cgi-fcgi, mysqlnd, PDO, xml, calendar, ctype, curl, dom, mbstring, FFI, fileinfo, ftp, gd, gettext, iconv, exif, mysqli, pdo_mysql, Phar, posix, readline, shmop, SimpleXML, sockets, sysvmsg, sysvsem, sysvshm, tokenizer, xmlreader, xmlwriter, xsl, zip, Zend OPcache What this pool actually has, for comparison with other hosts.
ok open_basedir /home/mbankole3/web:/tmp The project is inside it. Anything outside (e.g. /usr/bin/php for the scheduler, /etc, /proc) is invisible to PHP.
ok disable_functions (none) symlink(), proc_open() and set_time_limit() are available.
ok OPcache enabled Compiled PHP is cached between requests.
ok memory_limit 256M Enough for Laravel and a GD thumbnail of a large photo.
warn max_execution_time 60s Long jobs run inside web requests here (no worker, no cron). /_ops raises it with set_time_limit(); nginx still cuts at fastcgi_read_timeout (60s by default).
ok upload_max_filesize / post_max_size 64M / 64M Covers the app's own image limit (4096 KB).
info user_ini.filename .user.ini If set, a .user.ini in the site root can raise upload_max_filesize / memory_limit (PHP_INI_PERDIR values), not open_basedir.

Application

StatusCheckValueWhy it matters
warn Laravel 10.50.4 Laravel 10 stopped receiving security fixes in February 2025. Every 10.x has open advisories, so Composer refuses it unless they are ignored explicitly (see composer.json). Upgrading needs PHP 8.2+.
ok APP_KEY set Cookies, sessions and encrypted values work.
ok APP_DEBUG false Errors are logged, not displayed.
info APP_ENV production migrate and db:seed need --force outside "local"; /_ops passes it.
ok APP_URL https://mbankole3-2.shared-fi01-001.hosting.wayhost.cloud Matches the address this page was requested on.
warn ASSET_URL https://mbankole3-2.shared-fi01-001.hosting.wayhost.cloud The hosting serves the project root, not public/. Without ASSET_URL=<APP_URL>/public, CSS and images 404.
info Document root /home/mbankole3/web/mbankole3-2.shared-fi01-001.hosting.wayhost.cloud/public Points at public/: the safe layout.
info Config / route / view caches config cached, routes cached, events not cached Without SSH, caches are built and cleared from /_ops. A cached config ignores later .env edits until "config:cache" runs again.

Filesystem

StatusCheckValueWhy it matters
ok storage/app/public writable Owned by the account the pool runs as.
ok storage/framework/cache writable Owned by the account the pool runs as.
ok storage/framework/sessions writable Owned by the account the pool runs as.
ok storage/framework/views writable Owned by the account the pool runs as.
ok storage/logs writable Owned by the account the pool runs as.
ok bootstrap/cache writable Owned by the account the pool runs as.
ok .env present, writable key:generate can store the key.
ok public/storage symlink -> /home/mbankole3/web/mbankole3-2.shared-fi01-001.hosting.wayhost.cloud/storage/app/public Uploaded images are served from storage/app/public.
info Free space on the filesystem 168.9 GB Filesystem-wide figure. The account quota is lower and PHP cannot read it.
ok Temporary directory /tmp Uploads and Symfony temp files land here (allowed by open_basedir).

Database

StatusCheckValueWhy it matters
ok Connection mysql://mbankole3_shop@localhost (socket /run/mysqld/mysqld.sock)/mbankole3_shop Connected in 2.9 ms (Localhost via UNIX socket).
info Server version 5.5.5-10.6.23-MariaDB-0ubuntu0.22.04.1 MariaDB 10.6 is what a WAYHOST node installs.
ok Migrations 7 applied, 0 pending Schema is up to date.
info Per-user limits max_user_connections=30, max_statement_time=60s The hosting caps each database user (10 connections, 60 s per statement by default). With pm.max_children=10, 10 busy workers use every connection.

Queue and scheduler

StatusCheckValueWhy it matters
info Queue driver database Jobs wait in a table until a worker runs. The hosting runs none: /_ops "queue:work" is the worker.
ok Pending jobs 0 Nothing waiting.
ok Failed jobs 0 No job has exhausted its retries.
info Last job processed 2 h ago (App\Domain\Orders\Jobs\SendOrderConfirmation) Recorded by a Queue::after listener.
ok Scheduler heartbeat 48s ago via cli, previous beat 60s earlier A system cron drives the scheduler every minute.
fail PHP CLI binary seen from PHP not found From FPM under open_basedir, PHP cannot see /usr/bin/php, so schedule:run builds "'' artisan ..." and every ->command() event fails. /_ops uses an in-process runner instead.

Cache, session, mail, logs

StatusCheckValueWhy it matters
ok Cache (file) read/write ok File cache under storage/framework/cache. No Redis or Memcached on the hosting.
info Session driver file (/home/mbankole3/web/mbankole3-2.shared-fi01-001.hosting.wayhost.cloud/storage/framework/sessions) Garbage collection runs on a 2/100 lottery inside requests, since no cron can do it.
warn Mail driver log -> channel mail Mails are written to storage/logs, not delivered. The hosting provides no SMTP relay; use an external SMTP provider for real mail.
info Log channel daily -> /home/mbankole3/web/mbankole3-2.shared-fi01-001.hosting.wayhost.cloud/storage/logs Daily files laravel-YYYY-MM-DD.log, a predictable name (see "Exposure").