Production Deployment Checklist
Prepare PHP extensions, filesystem permissions, workers, schedules, SMTP, and monitoring before release.
Updated
environmentCheck()releaseReadiness()databaseIntegrationCheck()What you will learn
- Verify runtime capabilities before deployment.
- Create writable but non-public storage locations.
- Operate workers and schedules as supervised processes.
Run readiness checks#
print_r(MnbExcel::environmentCheck());
print_r(MnbExcel::databaseIntegrationCheck());
print_r(MnbExcel::releaseReadiness(__DIR__));Create production storage directories#
storage/
├── uploads/ # accepted source files
├── temporary/ # short-lived decrypted/generated files
├── exports/ # completed reports
├── imports/ # manifests and failed rows
├── queue/ # filesystem queue backend
└── logs/ # application-controlled logsGrant write access to the PHP/worker account, not to every system user. Keep these directories outside the public document root.
Operate long-running components separately#
- Run queue workers under Supervisor, systemd, Docker, or the hosting process manager.
- Run the scheduler runner continuously or call
runDue()from cron. - Use PDO queue/schedule backends when several application hosts share work.
- Configure SMTP credentials as secrets and monitor delivery failures.
- Rotate logs and clean expired uploads/exports automatically.
Monitor useful signals#
| Signal | Why it matters |
|---|---|
| Rows/second | Detect import/export regressions. |
| Peak memory | Catch accidental materialization. |
| Queue age and retries | Find stalled workers or bad inputs. |
| Failed-row ratio | Identify source-data quality issues. |
| Temporary disk usage | Avoid outage from unbounded package extraction. |
| SMTP/API/database failures | Separate spreadsheet issues from integration issues. |
Was this guide useful?Use GitHub issues for corrections, missing examples, or unclear behavior.
Open an issue