4.4 KiB
4.4 KiB
Deployment Notes
This document records the explicit runtime requirements and server changes for Provider Exchange deployments.
Required Runtime
- Linux server.
- Nginx.
- PHP-FPM with PHP
^8.3; PHP 8.5 is acceptable for the current Laravel build. - PHP extensions required by Laravel and current dependencies:
ctypecurldomfileinfofilterhashmbstringopensslpdopdo_sqlitefor SQLite test deployments and the default automated test suitesessiontokenizerxml
- Composer for clean production installs, or an uploaded
vendor/tree for temporary live testing when Composer is unavailable. - Node.js/npm only on build machines. The server can receive prebuilt Vite assets in
public/build. - Writable Laravel directories:
storage/bootstrap/cache/- the SQLite database file for SQLite test deployments.
Local Test Requirements
- The default PHPUnit configuration uses an in-memory SQLite database, so whichever PHP runtime executes
php artisan testmust includepdo_sqliteandsqlite3. - On Windows,
php -mshould list bothPDOandpdo_sqlite; otherwise the feature tests fail before reaching app code withcould not find driver. - WSL Ubuntu is acceptable for local verification when Windows PHP is missing SQLite support, as long as WSL PHP has
pdo_sqliteandsqlite3.
Recommended Production Runtime
- Nginx.
- PHP-FPM 8.5 or current supported PHP version satisfying Composer constraints.
- MariaDB/MySQL or PostgreSQL for production data.
- Redis for cache, session, and queue once traffic or notifications grow.
- Supervisor or systemd units for Laravel queue workers.
- Cron entry for
php artisan schedule:run. - Shared/object storage before multi-server deployment.
ChristIT Test Deployment
Target URL:
https://christit.com/tse
Chosen deployment shape:
- Subdirectory deployment under the existing
christit.comcertificate. - App code path:
/sites/provider-exchange. - Public web root exposed through Nginx should be
/sites/provider-exchange/publiconly. - Existing PHP-FPM socket should be reused:
/run/php/php8.5-fpm.sock. - Do not install or switch PHP 8.3 unless PHP 8.5 proves incompatible.
- Do not alter the existing generic PHP handling for the rest of
christit.com. - Add only a narrow
/tseNginx location and related PHP handler.
Initial test data/runtime:
- SQLite database at
/sites/provider-exchange/database/database.sqlite. APP_URL=https://christit.com.APP_BASE_PATH=for the current Nginx setup, because Nginx passesSCRIPT_NAME=/tse/index.phpand Laravel derives the request base from that.ASSET_URL=https://christit.com/tse.SESSION_PATH=/tse.SESSION_DRIVER=database.CACHE_STORE=database.QUEUE_CONNECTION=database.MAIL_MAILER=log.
ChristIT Deployment Log
2026-07-10:
- Confirmed remote server uses Nginx and PHP 8.5-FPM.
- Confirmed
/run/php/php8.5-fpm.sockexists. - Confirmed
tse.christit.comdoes not currently resolve and no certificate exists for it. - Chose
https://christit.com/tseas the first live test URL. - Uploaded app source to
/home/jbird/provider-exchange-release. - Installed app source into
/sites/provider-exchange. - Remote Composer was not available in noninteractive SSH; uploaded the local
vendor/tree for this temporary test deployment. - Installed
php8.5-sqlite3so the isolated SQLite test database can run under the existing PHP 8.5 runtime. - Added a narrow
/tseNginx block to/etc/nginx/sites-available/christit.com. - Nginx backups created by the helper include:
/etc/nginx/sites-available/christit.com.provider-exchange-tse-20260710-115810.bak/etc/nginx/sites-available/christit.com.provider-exchange-tse-20260710-120003.bak/etc/nginx/sites-available/christit.com.provider-exchange-tse-20260710-120209.bak/etc/nginx/sites-available/christit.com.provider-exchange-tse-20260710-121044.bak/etc/nginx/sites-available/christit.com.provider-exchange-tse-20260710-121151.bak
- Confirmed
nginx -tpasses after the/tseblock was applied. - Confirmed
https://christit.com/tse/redirects tohttps://christit.com/tse/jobs. - Confirmed
https://christit.com/tse/loginloads with a single-prefix form action. - Confirmed seeded admin login succeeds and redirects to
https://christit.com/tse/dashboard. - No PHP-FPM version changes have been made.
- No database server changes have been made.