# Requirements

Before installing Krayin please make sure your server meets the following requirements,

# 🖥️ Server configuration

  • SERVER: Apache 2 OR NGINX (NGINX with PHP-FPM recommended)
  • RAM: 3GB or higher
  • PHP: 8.3 or higher
  • Composer: 2.5 or higher

Use the per-OS install guides below to set up each component on your system.

Choose ONE web server — not both

Krayin needs a single web server. Pick either Apache 2 (uses mod_php out of the box) OR NGINX (requires PHP-FPM). You do not need to install both.

Recommended: NGINX + PHP-FPM — better performance and the standard Laravel production stack.

# Install Apache 2

Apache serves PHP via the built-in mod_php module, so no separate process manager is needed.

Official documentation: Apache HTTP Server install guide (opens new window)


    — OR —


    NGINX does not execute PHP itself — it forwards PHP requests to PHP-FPM over a socket. You must install both NGINX and PHP-FPM.

    Official documentation: NGINX install guide (opens new window)

      # Install PHP-FPM (required for NGINX)

      Official documentation: PHP-FPM install manual (opens new window)

        Verify PHP-FPM is running:

        php-fpm -v
        

        After installing PHP-FPM, point NGINX at the FPM socket in your server block (typically unix:/run/php/php8.3-fpm.sock on Ubuntu).

        # Install PHP 8.3 or higher

        Run the php.new (opens new window) installer for your OS. It installs PHP and Composer in a single command, so you can skip the Composer section below.

          Close and reopen your command line once the installer finishes. To upgrade PHP or Composer later, re-run the same command.

          Prefer your package manager?

          You can still install PHP via Homebrew (brew install php) on macOS, or the ondrej/php PPA (opens new window) on Ubuntu — see the PHP installation manual (opens new window). On Windows, download from windows.php.net (opens new window).

          Verify the installed version:

          php -v
          

          # Install Composer 2.5 or higher

          If you installed PHP through php.new (opens new window) above, Composer is already on your PATH — skip to the verification command at the bottom of this section.

          Otherwise, install Composer manually:

            Verify the installed version:

            composer --version
            

            # 🧩 PHP Extensions

            Krayin needs two PHP extensions on top of the defaults:

            Extension Used for
            intl Internationalization — locales, currency and date formatting
            gd Image processing — avatars, thumbnails, uploads

            # 1. Enable for your OS

              # 2. Restart PHP

              Apply the change with the restart command for your stack — see Restart so the changes apply below.

              # 3. Verify

              php -m | grep -E '^(intl|gd)$'
              

              You should see both intl and gd printed. If either is missing, double-check step 1 for your OS.

              # ⚙️ PHP Configuration

              These three php.ini overrides are required — without them the installer fails on memory limits and bulk imports / exports time out. Three steps:

              # 1. Find your php.ini

              php --ini
              

              The path printed next to Loaded Configuration File is the file to edit.

              Using NGINX + PHP-FPM?

              That command shows the CLI php.ini. NGINX uses the FPM one — find it with php-fpm -i | grep "Loaded Configuration File" and apply the same three changes there too.

              # 2. Set these three values

              Open the file in any editor and update:

              memory_limit = 4G
              max_execution_time = 360
              date.timezone = Asia/Kolkata
              
              Setting Why
              memory_limit 4G or higher — needed for composer install and bulk CSV imports
              max_execution_time 360 seconds or higher — lets long imports / exports finish
              date.timezone Your local timezone (full list (opens new window))

              WARNING

              If a line starts with ;, remove the ; so the directive takes effect.

              # 3. Restart so the changes apply

              Run the restart command that matches the web server you installed earlier on this page — NGINX + PHP-FPM or Apache + mod_php. Inside that section, pick the tab for your OS.

              Not sure which one you installed?

              You picked it under Install Apache 2 / Install NGINX above. If you went with the recommended path, you're on NGINX + PHP-FPM.

                # Apache + mod_php

                  Verify the new values are live:

                  php -i | grep -E '^(memory_limit|max_execution_time|date.timezone)'
                  

                  CLI php artisan ... commands pick up the new settings automatically — no restart needed.

                  # 🗄️ Supported Database Servers

                  Krayin supports two database servers: MySQL 8.0.32+ OR MariaDB 10.3+. Use collation utf8mb4_unicode_ci for proper Unicode / multilingual support.

                  Choose ONE database — not both

                  Krayin connects to a single database server. Pick either MySQL OR MariaDB.

                  Recommended: MySQL 8.0.32+ — the default Laravel database with the widest hosting and tooling support.

                  Official downloads: dev.mysql.com/downloads (opens new window)


                    — OR —


                    # Install MariaDB 10.3 or higher

                    Official downloads: mariadb.org/download (opens new window)