How to Deploy a Full LEMP Stack from the Marketplace
The LEMP stack — Linux, Engine-X (Nginx), MySQL/MariaDB, and PHP — is one of the most popular server configurations for hosting modern web applications. The Kazepute Marketplace offers a pre-configured LEMP stack that you can deploy to a new Breeze in minutes, saving you hours of manual installation and configuration. This guide walks you through the deployment process and essential post-installation steps.
What Is Included in the LEMP Marketplace App
The Marketplace LEMP stack comes pre-installed with:
- Nginx: High-performance web server configured with optimized defaults
- MariaDB: Drop-in MySQL replacement with improved performance and features
- PHP-FPM: FastCGI Process Manager for efficient PHP execution
- Composer: PHP dependency manager pre-installed globally
- Certbot: Let's Encrypt client for free SSL certificates
- UFW: Firewall pre-configured with rules for HTTP, HTTPS, and SSH
Deploying from the Marketplace
Follow these steps to deploy:
- Log in to your Kazepute portal at
kazepute.com/portal - Navigate to the Marketplace section
- Find the LEMP Stack app and click Deploy
- Select your desired Breeze plan (2 GB RAM minimum recommended)
- Choose your preferred datacenter region
- Click Create Breeze and wait for provisioning to complete
First Login and Credentials
After your Breeze is provisioned, SSH in using the credentials from your portal dashboard:
ssh root@your-breeze-ip
A welcome message displays the locations of important configuration files and any generated credentials (such as the MariaDB root password). Save these credentials securely.
Verifying the Stack
Confirm all components are running:
# Check Nginx
sudo systemctl status nginx
nginx -v
# Check MariaDB
sudo systemctl status mariadb
mariadb --version
# Check PHP-FPM
sudo systemctl status php*-fpm
php -v
# Test PHP processing
echo "<?php phpinfo();" | sudo tee /var/www/html/info.php
# Visit http://your-breeze-ip/info.php then delete the file
sudo rm /var/www/html/info.php
Configuring Your First Website
Create an Nginx server block for your domain:
sudo nano /etc/nginx/sites-available/example.com
server {
listen 80;
server_name example.com www.example.com;
root /var/www/example.com/public;
index index.php index.html;
location / {
try_files $uri $uri/ /index.php?$query_string;
}
location ~ \.php$ {
fastcgi_pass unix:/run/php/php-fpm.sock;
fastcgi_param SCRIPT_FILENAME $realpath_root$fastcgi_script_name;
include fastcgi_params;
}
location ~ /\.ht {
deny all;
}
}
# Enable the site
sudo ln -s /etc/nginx/sites-available/example.com /etc/nginx/sites-enabled/
sudo nginx -t && sudo systemctl reload nginx
Securing with SSL
sudo certbot --nginx -d example.com -d www.example.com
Certbot automatically configures Nginx for HTTPS and sets up auto-renewal via a systemd timer.
Creating a Database
sudo mariadb
CREATE DATABASE myapp_db;
CREATE USER 'myapp_user'@'localhost' IDENTIFIED BY 'strong-password-here';
GRANT ALL PRIVILEGES ON myapp_db.* TO 'myapp_user'@'localhost';
FLUSH PRIVILEGES;
EXIT;
Performance Tuning
- Adjust
worker_processesin Nginx to match your vCPU count - Set
pm.max_childrenin PHP-FPM based on available RAM (each PHP worker uses ~30-50 MB) - Configure
innodb_buffer_pool_sizein MariaDB to 50-70% of available RAM - Enable OPcache for PHP to cache compiled bytecode