Explore complete technical guides covering installation, system requirements, performance benchmarks, customization methods, and troubleshooting.
| Requirement | Minimum | Recommended |
|---|---|---|
| Operating System | Ubuntu 20.04 LTS / CentOS 8 | Ubuntu 22.04 LTS / AlmaLinux 9 |
| Web Server | Apache 2.4+ or Nginx 1.18+ | Nginx 1.22+ (for better static asset handling) |
| PHP | 8.1.x | 8.2.x (Laravel 10 officially supports 8.1‑8.2) |
| PHP Extensions | pdo_mysql, openssl, mbstring, tokenizer, xml, ctype, json, bcmath, fileinfo, gd | Same + redis, sodium |
| Composer | 2.5+ | 2.7+ |
| Node.js | 16.x | 18.x LTS |
| NPM/Yarn | npm 8+ | yarn 1.22+ (optional) |
| Database | MySQL 8.0+ | MySQL 8.0+ (or MariaDB 10.6+) |
| SSL | Let’s Encrypt (free) | Valid wildcard or SAN cert for sub‑domains |
| SSH Access | Required for Composer & Artisan commands | Recommended (root or sudo) |
shop.example.com) → Document Root will be /home/username/public_html/shop. ssh [email protected]# Update packages
sudo apt update && sudo apt upgrade -y
# Install required packages
sudo apt install -y nginx php8.2-fpm php8.2-cli php8.2-mbstring \
php8.2-xml php8.2-bcmath php8.2-json php8.2-zip php8.2-gd \
php8.2-curl php8.2-pdo php8.2-mysql composer nodejs npm git unzip
# Verify versions
php -v
composer -V
node -v
npm -vphp-fpm with Nginx for better concurrency. If you prefer Apache, enable mod_php and skip the php-fpm steps.# Log into MySQL as root
sudo mysql -u root -p
# Create database and user
CREATE DATABASE active_ecms CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'active_user'@'127.0.0.1' IDENTIFIED BY 'StrongP@ssw0rd!';
GRANT ALL PRIVILEGES ON active_ecms.* TO 'active_user'@'127.0.0.1';
FLUSH PRIVILEGES;
EXIT;.env file (never commit to Git). cd /home/username/public_html/shop
git clone https://github.com/your-repo/active-ecommerce-cms.git . unzip active-ecommerce-cms.zip -d /home/username/public_html/shopLaravel needs write access to storage and bootstrap/cache. Apply the following:
cd /home/username/public_html/shop
find . -type d -exec chmod 775 {} \; # directories
find . -type f -exec chmod 664 {} \; # files
chmod -R 775 storage bootstrap/cache
chown -R www-data:www-data storage bootstrap/cache # Apache/Nginx user.htaccess)Place the following in public/.htaccess (Laravel’s default works, but confirm):
<IfModule mod_rewrite.c>
Options +FollowSymLinks
RewriteEngine On
# Redirect to public folder
RewriteCond %{REQUEST_URI} !^/public/
RewriteRule ^(.*)$ /public/$1 [L]
# Laravel front controller
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^ index.php [L]
</IfModule>Enable mod_rewrite and restart:
sudo a2enmod rewrite
sudo systemctl restart apache2Create /etc/nginx/sites-available/active_ecms.conf:
server {
listen 80;
server_name shop.example.com;
root /var/www/active_ecms/public;
index index.php;
charset utf-8;
client_max_body_size 100M;
# Laravel routing
location / {
try_files $uri $uri/ /index.php?$query_string;
}
# PHP processing
location ~ \.php$ {
include fastcgi_params;
fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
fastcgi_param DOCUMENT_ROOT $realpath_root;
}
# Security headers
add_header X-Frame-Options "SAMEORIGIN";
add_header X-Content-Type-Options "nosniff";
}Enable and test:
sudo ln -s /etc/nginx/sites-available/active_ecms.conf /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginxshop.example.com) and configure a proper SSL certificate (Let’s Encrypt) to avoid “mixed content” warnings that can hurt rankings..env)Copy the example file and edit:
cp .env.example .env
nano .envKey entries:
APP_NAME="Active eCommerce CMS"
APP_ENV=production
APP_KEY=base64:GENERATE_WITH_ARTISAN
APP_DEBUG=false
APP_URL=https://shop.example.com
DB_CONNECTION=mysql
DB_HOST=127.0.0.1
DB_PORT=3306
DB_DATABASE=active_ecms
DB_USERNAME=active_user
DB_PASSWORD=StrongP@ssw0rd!
CACHE_DRIVER=redis
QUEUE_CONNECTION=redis
SESSION_DRIVER=fileGenerate the Laravel key:
php artisan key:generate# Install PHP dependencies
composer install --optimize-autoloader --no-dev
# Install front‑end assets
npm install
npm run prod # builds minified Vue.js assetscomposer install --no-dev on production to exclude development packages and reduce autoload size.php artisan migrate --force
php artisan db:seed --class=VendorSeeder # optional demo data
php artisan config:cache
php artisan route:cache
php artisan view:cacheIf you have a queue worker (e.g., for email notifications), start it with Supervisor:
# /etc/supervisor/conf.d/active_ecms_worker.conf
[program:active_ecms_worker]
process_name=%(program_name)s_%(process_num)02d
command=php /var/www/active_ecms/artisan queue:work redis --sleep=3 --tries=3
autostart=true
autorestart=true
numprocs=1
user=www-data
redirect_stderr=true
stdout_logfile=/var/log/active_ecms/worker.logsudo supervisorctl reread
sudo supervisorctl update
sudo supervisorctl start active_ecms_worker:*| Optimization | Command / Setting |
|---|---|
| Opcode cache | Ensure opcache is enabled in php.ini (opcache.enable=1) |
| Static asset caching
Order now for only $5.00 flat. Receive the complete untouched ZIP archive and database SQL within minutes.