OmniMart is built with the Laravel 13 Framework and is optimized for PHP 8.4+ (the installer strictly enforces PHP >= 8.4).
Before launching the web installer, please ensure your environment (whether a local development workspace or a production web server) matches the requirements verified by the installer below.
Core Software Requirements
These requirements apply equally to both local development environments (localhost) and production web servers:
| Requirement | Local Environment (Localhost) | Production Server |
|---|---|---|
| PHP Version | PHP 8.4+ (Strictly required by installer) | PHP 8.4+ (Standard CGI/FPM or CLI) |
| Database | MySQL 8.0+ or MariaDB 10.4+ | MySQL 8.0+ or MariaDB 10.4+ |
| Web Server | Laravel Herd (Recommended), Laragon, XAMPP, or Docker | Nginx, Apache with mod_rewrite, or LiteSpeed |
| HTTPS Support | Optional for localhost development | Strongly recommended (Required for Stripe, PayPal, and live payment webhooks) |
Required PHP Extensions & Functions
The OmniMart installer (RequirementsChecker) automatically inspects and validates the following 20 PHP extensions and the symlink function:
| Extension / Function | Type | Purpose & Usage in OmniMart |
|---|---|---|
bcmath | Extension | High-precision arithmetic calculations for order subtotals, discounts, tax rates, and currencies |
ctype | Extension | Character type verification and text parsing |
curl | Extension | HTTP queries for 10+ payment gateways, Twilio SMS, and license verification |
dom | Extension | XML document processing and HTML DOM parsing |
exif | Extension | Reading image metadata and camera orientation for product photo uploads |
fileinfo | Extension | Detecting accurate file MIME types for upload security |
filter | Extension | Data filtering, email sanitization, and URL validation |
gd | Extension | Image manipulation, product thumbnail generation, and brand logo resizing |
hash | Extension | Secure cryptographic hashing algorithms and token validation |
iconv | Extension | Character set conversion for multilingual text |
json | Extension | Fast JSON data encoding and parsing for settings, payment parameters, and attributes |
mbstring | Extension | Multi-byte string handling for international languages and RTL scripts |
openssl | Extension | Encrypted secure connections, CSRF tokens, and payment API communication |
pcre | Extension | Regular expression pattern matching |
pdo | Extension | Core database abstraction layer |
pdo_mysql | Extension | Database connection driver for MySQL and MariaDB |
session | Extension | User session handling across customer, staff, and admin auth guards |
tokenizer | Extension | Source code parsing and template compilation |
xml | Extension | XML document handling and RSS/sitemap feeds |
zip | Extension | Handling compressed archives, CSV backups, and digital product downloads |
symlink | PHP Function | Required to generate symbolic links between storage/app/public and public/storage |
Important: The PHP
symlinkfunction must be enabled on your server (not listed indisable_functionsinphp.ini). If disabled, the installer will flag it as an error.
Required PHP Directives (php.ini)
To ensure smooth file uploads, CSV imports, and database migrations, configure your php.ini directives with the following minimum and recommended values:
| Directive | Minimum Value | Recommended Value | Reason |
|---|---|---|---|
upload_max_filesize | 32M | 64M - 128M | Uploading high-resolution product galleries & digital download files |
post_max_size | 32M | 64M - 128M | Submitting multi-image product forms and bulk CSV spreadsheets |
memory_limit | 256M | 512M | Compiling views, processing large CSV imports, and running migrations |
max_execution_time | 120 | 300 | Preventing timeout errors during installer database migration & seeding |
max_input_time | 120 | 300 | Allowing complete transmission of large multipart catalog uploads |
cPanel Configuration Guide
If you are deploying OmniMart to a cPanel shared hosting account:
- Log in to your cPanel Control Panel.
- Navigate to Software → Select PHP Version (then click the Options tab), or open MultiPHP INI Editor and select your domain.
- Set your active PHP version to 8.4.
- In the extensions list, confirm that all required extensions (such as
curl,fileinfo,gd,mbstring,pdo_mysql,zip) are checked. - Update the values for
upload_max_filesize,post_max_size,memory_limit, andmax_execution_time. - Click Apply / Save Changes.
Directory Permissions
The web installer (PermissionsChecker) strictly verifies write access to the following 4 core application directories:
| Directory Path | Required Permission | Description |
|---|---|---|
storage/app/ | 775 / Writable | Application file storage, digital products, and installation verification file (storage/verified) |
storage/framework/ | 775 / Writable | Framework compiled views, sessions, and file caches |
storage/logs/ | 775 / Writable | Application error logs (laravel.log) |
bootstrap/cache/ | 775 / Writable | Compiled bootstrap configuration, services, and route cache |
Setting Permissions via Terminal (Linux / VPS):
On Linux / VPS servers, you can set the appropriate permissions using the terminal:
chmod -R 775 storage bootstrap/cache
chown -R www-data:www-data storage bootstrap/cache
(Replace www-data:www-data with your web server's user/group if running cPanel or custom user environments).
Setting Permissions via cPanel File Manager (Shared Hosting):
- Open cPanel File Manager and navigate to your website root directory.
- Right-click on the directory (e.g.
storage). - Select Change Permissions from the context menu.
- Set permissions to 775 (or 755 depending on your host) and ensure write permissions are checked.
- Click Change Permissions to save.