Operations Intermediate 2 minute read Updated 2026-06-26 UTC

Shared-hosting PHP compatibility

Practical constraints for running a plain PHP research site on LiteSpeed, Apache, or similar shared hosts.

Research statusDeployment practice guide Publication statePublished Reviewed byMichael Kappel Source reports0

Compatibility target

The application targets PHP 8.1 or newer. That keeps the code modern enough for typed properties, constructor promotion, match, and array_is_list, while avoiding a hard dependency on PHP 8.3.

Host assumptions

ConcernExpected handling
rewritesApache/LiteSpeed .htaccess routes non-file requests to index.php
static assets/assets served directly
private folders.htaccess blocks direct access
logsPHP writes to storage/logs when writable, otherwise host error log
env varsoptional; safe defaults exist
databasenot required
Composernot required

Common failure symptoms

SymptomLikely causeFix
Index of /no root index.php or wrong extraction pathextract v1.2.1 directly into domain root
HTTP 500PHP version too old or parse/runtime errorset PHP 8.1+ and check error log
unstyled pageassets path missingconfirm /assets/css/app.css exists
links 404rewrites disabledenable .htaccess rewrite support
raw folders visible.htaccess ignoreduse Apache/LiteSpeed or server-level deny rules
pseudocode
PROCEDURE diagnose_shared_host()
    IF GET("/").body CONTAINS "Index of /"
        RETURN "root index missing or package extracted one level too high"
    IF GET("/health").status == 500
        RETURN "check PHP version and application error log"
    IF GET("/assets/css/app.css").status != 200
        RETURN "assets were not extracted to root assets folder"
    IF GET("/docs/").status == 200
        RETURN "private folder deny rules are not active"
    RETURN "basic shared-hosting checks passed"
END PROCEDURE

Production setting

Keep APP_DEBUG=0. A detailed exception page is useful locally but not on a public host. If environment variables are unavailable, leave debug off and use the host control panel to inspect errors.