Repository navigation
macOS local install: site and /wp-admin both show a "Nothing Here Yet" page #513
Description
Report
A user on macOS, running locally, followed the installation guide. Both the site URL and /wp-admin show the same page titled "Nothing Here Yet". Source: a reply to @PolloraWP on X, 2026-10-20. We have asked which local environment they use; no answer yet.
What the page is not
No Pollora page uses that title. Searched in pollora/framework (5ffbbb4), the skeleton pollora/pollora (736d0aa) and pollora/theme-default (a2599fd):
| Page Pollora can show | Title | When |
|---|---|---|
SetupRequiredResponse |
"Pollora is not set up yet" (503, APP_DEBUG on) or the 503 view |
WordPress not loaded: DB_CONNECTION not mysql, or a database setting missing |
MissingThemePage (theme-missing.blade.php) |
"This site has no theme yet" (503) | WordPress installed, no theme generated |
theme-default index.blade.php, no posts |
"Nothing found" / "There is nothing to show here yet." | Theme active, query with no posts |
FrontendController::renderNotFound() |
Laravel's 404 | No template |
The closest is the theme's empty state. But the theme never answers on /wp-admin: the admin has its own entry point under public/cms/wp-admin. Seeing the same page on / and on /wp-admin suggests the request never reaches Pollora at all, or reaches it on another host.
Likely causes, most likely first
1. APP_URL does not match the URL in the browser
LocalEnvironmentDetectoronly knows DDEV and Laradock. Everywhere else, the URLpollora:env:setupoffers ishttp://localhost, and the skeleton's.env.examplehasAPP_URL=http://localhost.BootstrapsetsWP_HOME = APP_URLandWP_SITEURL = APP_URL/cms, andpollora:installinstalls WordPress on that URL.- On macOS the usual local URLs are
http://<project>.testwith Laravel Herd or Valet, orhttp://localhost:8888with MAMP. - When the two differ, WordPress sends the visitor to
APP_URL:redirect_canonical()sends the front page there;auth_redirect()sends/wp-admintohttp://localhost/cms/wp-login.php.
- Both land on whatever answers on
http://localhost:80: another tool, another site, or the default page of the local server. This is the only cause that explains the same page on both URLs.
To confirm: curl -sI http://<their-url>/ and curl -sI http://<their-url>/wp-admin/ should answer 301 or 302 with a Location on localhost.
2. The server does not run Pollora's front controller
- MAMP, or the Apache that ships with macOS. The document root is the project folder instead of
public/, orAllowOverride Nonedisablespublic/.htaccess. Then nothing reachespublic/index.php, and the server shows its own page for both URLs. - Herd or Valet. The site is not linked or parked. Or it is matched by a driver other than Laravel's: the skeleton has
public/wp-config.php, which WordPress-oriented drivers look for. The request is then served by the wrong front controller. To check on a real Herd install. - Local by Flywheel. It expects a classic WordPress in
app/public. Pollora does not fit that layout.
3. Setup not finished
If pollora:env:setup or pollora:install was skipped or failed, Pollora answers with its own 503 pages, not this one. Unlikely here, but php artisan pollora:doctor would rule it out.
Questions for the reporter
- Local environment: Herd, Valet, MAMP,
php artisan serve, Docker or other? Which document root? - The URL typed in the browser, and
APP_URLin.env. - The output of
curl -sIon/and/wp-admin/. - The output of
php artisan pollora:doctor.
What Pollora could do
- Installer. Detect Herd and Valet (their binary,
~/Library/Application Support/Herd,~/.config/valet) and offerhttp://<directory>.testas the site URL, the same way DDEV is detected today. Otherwise, say plainly thatAPP_URLmust be the URL used in the browser. pollora:doctor. Add a check that the host ofAPP_URLanswers with this project, for example a request toAPP_URLthat carries a token the project recognises. Report it when it does not.- Debug mode. When
APP_DEBUGis on and the request host differs from the host ofAPP_URL, show a page that explains the mismatch instead of redirecting silently. A visitor stays redirected in production. - Documentation. Add a "Local environments on macOS" section to Server configuration, with Herd/Valet (
herd link,.testdomain), MAMP (document rootpublic/,AllowOverride All) andphp artisan serve. Also say that Local by Flywheel is not supported. - Requirements. The documentation asks for PHP 8.4, the skeleton's
composer.jsonaccepts^8.3. Herd defaults to the latest PHP, but a Valet or MAMP user on 8.3 gets acomposer installerror. Not the cause here, but worth aligning.
Generated by Claude Code
Activity
ogorzalka commentedon Oct 20, 2026
Update from the reporter
composer create-project.APP_URLispollora.testin.env, andsiteurlispollora.test/cmsin the database.rootwith no password. That is now Setup refuses an empty database password #515.What this changes
Cause 1 (
APP_URLmismatch) is less likely, sinceAPP_URLand the browser URL now match on the host. Two points remain to check:APP_URLhave a scheme? The setup prompt refuses a value withouthttp://, but a hand-edited.env(likely here, given the password problem) is not checked. WithAPP_URL=pollora.test,WP_HOMEandWP_SITEURLhave no scheme and every URL WordPress builds is relative to the current path.homeandsiteurlin the database have the same scheme asAPP_URL? Valet serves plainhttpunlessvalet securewas run.The Valet driver is ruled out, from Valet's source (
cli/Valet/Drivers/ValetDriver.php,01b8cef).LaravelValetDriveris tried before every specific driver, includingWordPressValetDriver. It serves any directory withpublic/index.phpandartisan, which the skeleton has. Sopublic/wp-config.phpcannot pull a Pollora project to the WordPress driver, unless a customLocalValetDriver.phpsits in the project.The page is not Valet's own either: its 404 template reads "404 - Not Found". The remaining Valet lead is the site name:
<directory>.test.pollora.testonly reaches this project if the directory is namedpollora, or if it was linked under that name.~/.config/valet/config.json("default"). That default would be another project, which could be the one showing "Nothing Here Yet" on every URL.Next questions for the reporter
APP_URL=…in.env, with its scheme.valet links,valet pathsandvalet which(run in the project).~/.config/valet/config.jsonhas a"default"entry, and whetherLocalValetDriver.phpexists in the project.curl -sI http://pollora.test/andcurl -sI http://pollora.test/wp-admin/.php artisan pollora:doctor.The reproduction on a rented Mac planned for tomorrow will cover these cases: Valet with a matching and a mismatching directory name, a default site,
APP_URLwith and without a scheme, and root with no password.Generated by Claude Code
ogorzalka commentedon Oct 21, 2026
First results of the reproduction (Linux, throwaway project)
Installed with
composer create-project pollora/pollora(framework v13.38.0), nginx, PHP 8.4, outside DDEV's own detection, and tried theAPP_URLcases from this issue. A reproduction on a real macOS (Valet, Herd) is running next.APP_URL//wp-admin/https://site.testhttps://site.test/cms/wp-admin/http://other.testhttps://site.testhttps://other.test/cms/wp-admin/site.test(no scheme)https://site.testAPP_URLsends/wp-admin/to that host. If something else answers there (another site, a default page of the local server), the visitor sees that page, which fits this report./itself is still served by Pollora in this test, so the same page on/points to a request that never reaches Pollora (wrong site name or default site in Valet, wrong document root).APP_URLwithout a scheme is a real bug, found along the way: every Artisan command failed withUndefined array key "host", and/wp-admin/answered a 404. Fixed in fix: read an APP_URL without a scheme as http:// #519 (issue APP_URL without a scheme breaks /wp-admin and crashes the console #518): the value is read ashttp://<value>, andpollora:doctorwarns about it..env(installation completed with a MySQL user without a password). The setup prompt itself was the problem: fixed in v13.38.0 (Setup refuses an empty database password #515).Still to check on a Mac: the page Valet and Herd answer on an unknown
.testdomain and on their default site, and a project directory whose name differs from the domain.ogorzalka commentedon Oct 21, 2026
Reproduction on a real Mac: why a Mac setup ends on a 404, a loop or a blank page, fixed in 13.38.1
Machine: macOS 15.8 (arm64, AWS EC2 Mac), PHP 8.4 on the command line, framework 13.38.0, skeleton 13.38.0 (
composer create-project pollora/pollora, installed with an empty MySQL root password).We could not find the text "Nothing Here Yet" in Pollora, WordPress or Valet: it most likely comes from another tool's placeholder page. What we did find are the ways a Mac setup ends on a blank page, a 404 or a redirect loop instead of the site. Each one is fixed in a PR below, with the same Mac as proof.
What fails, and the fix
/redirects to itself:ERR_TOO_MANY_REDIRECTSserver.php, soSCRIPT_FILENAMEis notpublic/index.php; Pollora took the request for a WordPress entry point and redirected to the home URL/cms/wp-admin/, the addresspollora:installprints, answers 404public/directory with anindex.phpis redirected to it/cms/wp-login.phpand/cms/wp-admin/index.phpanswer the site's 404: no way to log inserver.phpsends every.phpURL to the front controller (even apublic/probe.phpreturns the home page). Valet runs those files, Herd does notLocalValetDriver.phpYour Composer dependencies require a PHP version ">= 8.4.1". You are running 8.3.30.php ^8.3but its lock was resolved on PHP 8.4 and held Symfony 8. MAMP's default PHP is 8.3 while the command line (Homebrew) is 8.4/answers 404 and/.envis served as a text file (application key, database password)public/APP_URLwithout a scheme (APP_URL=my-site.test)/wp-admin/404Environments tested after the fixes
//cms/wp-admin/php artisan servephp -S -t publicvalet secure)public/public/LocalValetDriver.phpBefore the fixes: Valet loops on
/; Herd answers 404 on the admin; MAMP stops on the platform check. The black bar at the bottom of each screenshot gives the environment, the URL requested, the final URL and the status.More: Herd admin, MAMP admin, MAMP before, Herd before.
Other findings
pollora:doctorreports 0 errors, 0 warnings.APP_URL(127.0.0.1instead ofmy-site.test), WordPress redirects/cms/wp-admin/to theAPP_URLhost: log in on the address written inAPP_URL..htaccesssending everything topublic/hides.envbut breaks WordPress's trailing-slash redirects (/public/...): not shipped. Site Health and the docs cover the case instead.Shipped
LocalValetDriver.phpfor Herd and Valet, lock resolved for PHP 8.3)Existing project:
composer update, then for Herd/Valet copyLocalValetDriver.phpto the project root, and if the site is served by PHP 8.3 add"platform": {"php": "8.3.0"}toconfigincomposer.jsonand runcomposer update "symfony/*" --with-all-dependencies.If it still fails on your Mac, we need
php -vand the PHP version chosen in your server (MAMP: Preferences › PHP; Herd: site settings): they must both be 8.3 or 8.4.APP_URLfrom.env, without the password lines).php artisan pollora:doctor.curl -I <your address>/andcurl -I <your address>/cms/wp-login.phpanswer (status line andLocation).storage/logs/laravel.log.