Server setup

Shared hosting with cPanel, or your own VPS — both end with a WordPress site you install Quickmunch into.

Shared hosting (cPanel, Plesk and friends)

This is the no-command-line path, and Quickmunch is built to live happily here.

  1. Check the PHP version (Select PHP Version / MultiPHP Manager): 7.4 or newer, 8.2 recommended, with the extensions from System requirements ticked.
  2. Raise the PHP limits (MultiPHP INI Editor or your panel's equivalent): upload_max_filesize and post_max_size to 64M, memory_limit to 256M, max_execution_time to 300 and max_input_vars to 3000. The theme upload is the first thing that fails without this.
  3. Turn on HTTPS (SSL/TLS Status or Let's Encrypt) before you install WordPress, so the site's address is https:// from the start rather than changed afterwards.
  4. Install WordPress. Your panel's one-click app installer is the easy route. By hand: create a database and a user in MySQL Databases, add the user to the database with all privileges — the step people miss — upload the WordPress download to the folder your domain serves (usually public_html), extract it there, and open your domain to run WordPress's setup.
  5. Install Quickmunch — see Installing Quickmunch.

VPS — Apache

Serve the WordPress folder directly and let it manage its own .htaccess:

<VirtualHost *:80>
    ServerName example.com
    DocumentRoot /var/www/quickmunch

    <Directory /var/www/quickmunch>
        AllowOverride All
        Require all granted
    </Directory>
</VirtualHost>

Enable mod_rewrite, give the web server ownership of the folder, then browse to the domain and run WordPress's setup:

sudo a2enmod rewrite && sudo systemctl reload apache2
sudo chown -R www-data:www-data /var/www/quickmunch

VPS — Nginx + PHP-FPM

server {
    listen 80;
    server_name example.com;
    root /var/www/quickmunch;
    index index.php;
    client_max_body_size 64M;

    location / {
        try_files $uri $uri/ /index.php?$args;
    }

    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/run/php/php8.2-fpm.sock;
    }

    location ~ /\.(?!well-known).* { deny all; }
}

Nginx has no .htaccess, so two lines above matter more than they look. try_files is what makes pretty permalinks work — and with them every dashboard address. client_max_body_size is what lets the theme upload through: Nginx's own default is 1 MB, and it refuses the file before PHP ever sees it.

Either way, afterwards

  • HTTPS. Let's Encrypt is free on most panels and on any VPS via certbot. Online card payments, push notifications and the installable customer app require it.
  • Permalinks. Settings → Permalinks → Post name, then save. The dashboards live at their own addresses and do not exist on Plain.
  • Writable folders. wp-content and wp-content/uploads must be writable by the web server user.
  • A real cron (optional). WordPress runs its scheduled jobs when somebody visits. On a quiet site, a server cron entry makes them run on time — see Scheduled tasks.