Server Requirements & PHP Configuration

Ensure optimal performance and functionality of NexlifyDesk by configuring your server environment with the proper PHP settings, memory limits, and file upload capabilities.

Ensure optimal performance and functionality of NexlifyDesk by configuring your server environment with the proper PHP settings, memory limits, and file upload capabilities.

⚠️ Important Notice

Configure these settings BEFORE installing NexlifyDesk to avoid “413 Request Entity Too Large” errors and ensure smooth operation with file uploads and ticket processing.

Requirements Overview

NexlifyDesk requires specific server configurations to handle support tickets efficiently, manage file attachments, and process email piping without performance issues.

🚀 Minimum Requirements

  • PHP 7.4+ (PHP 8.0+ recommended)
  • WordPress 6.0+
  • MySQL 5.7+ / MariaDB 10.3+
  • 128MB PHP memory limit
  • 10MB file upload limit

⭐ Recommended Settings

  • PHP 8.1+ with OPcache enabled
  • 512MB+ PHP memory limit
  • 100MB+ file upload limit
  • 60+ seconds execution time
  • IMAP extension enabled

Step 1: Check Current Server Settings

Before making changes, verify your current PHP configuration to understand what needs to be adjusted.

Method 1: Create PHP Info File (Recommended)

  1. Create a file named phpinfo.php in your website root directory.
  2. Add the following content:
    <?php
    phpinfo();
    ?>
  3. Visit yourwebsite.com/phpinfo.php in your browser.
  4. Search for these key settings:
    • memory_limit
    • upload_max_filesize
    • post_max_size
    • max_execution_time
    • max_input_time
  5. Security Tip: Delete the phpinfo.php file after checking.

Method 2: WordPress Admin Check

  1. Log in to your WordPress admin dashboard.
  2. Go to ToolsSite Health.
  3. Click on the Info tab.
  4. Under the Server section, check these PHP limits:
    • memory_limit
    • upload_max_filesize
    • post_max_size
    • max_execution_time
    • max_input_time

Step 2: Essential PHP Configuration Settings

These PHP settings must be configured to prevent errors and ensure optimal performance:

Recommended PHP Settings

Setting Minimum Value Recommended Value Purpose
memory_limit 128M 512M Prevents memory exhaustion during ticket processing
upload_max_filesize 10M 100M Maximum size for individual file attachments
post_max_size 10M 100M Maximum total size for all uploaded files in one request
max_execution_time 30 60 Prevents timeout during email processing and large uploads
max_input_time 30 60 Time limit for parsing uploaded files
max_input_vars 1000 3000 Handles complex forms with many fields

Shared Hosting Configuration

For shared hosting environments, you have several options to modify PHP settings:

📄 Method 1: .htaccess File (Apache)

Create or edit the .htaccess file in your WordPress root directory:

# NexlifyDesk PHP Configuration
php_value memory_limit 512M
php_value upload_max_filesize 100M
php_value post_max_size 100M
php_value max_execution_time 60
php_value max_input_time 60
php_value max_input_vars 3000

🔧 Method 2: php.ini File

Create a php.ini file in your WordPress root directory:

memory_limit = 512M
upload_max_filesize = 100M
post_max_size = 100M
max_execution_time = 60
max_input_time = 60
max_input_vars = 3000

🎛️ Method 3: Control Panel (cPanel/Plesk)

cPanel:

  • Go to MultiPHP INI Editor
  • Select your domain
  • Modify the settings listed above
  • Click Save

Plesk:

  • Go to PHP Settings
  • Select your PHP version
  • Modify the configuration values
  • Click OK

VPS - Nginx Server Configuration

For servers running Nginx with PHP-FPM, you need to configure both PHP and Nginx:

🔧 PHP-FPM Configuration

Step 1: Configure PHP Settings

# Edit PHP configuration for FPM
sudo nano /etc/php/8.2/fpm/php.ini

# Make the same changes as shown above:
memory_limit = 512M
upload_max_filesize = 100M
post_max_size = 100M
max_execution_time = 60
max_input_time = 60
max_input_vars = 3000

Step 2: Restart PHP-FPM (Multiple PHP Versions)

# Restart PHP-FPM for your PHP version
sudo systemctl restart php8.1-fpm
sudo systemctl restart php8.2-fpm
sudo systemctl restart php8.3-fpm
sudo systemctl restart php8.4-fpm

# Check PHP-FPM status
sudo systemctl status php8.2-fpm

🌐 Nginx Configuration

Step 3: Configure Nginx for Large Uploads

Edit your Nginx site configuration file:

# Edit your site configuration
sudo nano /etc/nginx/sites-available/your-site
# OR for default site
sudo nano /etc/nginx/sites-available/default

Add or modify the client_max_body_size directive:

server {
    listen 80;  # or 443 for SSL
    server_name your-domain.com;
    root /var/www/wordpress;

    # Set maximum upload size
    client_max_body_size 100M;  # <--- Add this line

    # PHP processing
    location ~ \.php$ {
        include snippets/fastcgi-php.conf;
        fastcgi_pass unix:/var/run/php/php8.2-fpm.sock;
        fastcgi_read_timeout 60s;  # <--- Add this for longer processing
    }

    # Other configurations...
}

Step 4: Test and Restart Nginx

# Test Nginx configuration
sudo nginx -t

# If test passes, restart Nginx
sudo systemctl restart nginx

# Check Nginx status
sudo systemctl status nginx

💡 Alternative Nginx Configuration Locations

You can also add client_max_body_size 100M; to:

  • Main config: /etc/nginx/nginx.conf (applies globally)
  • Site-specific: /etc/nginx/sites-available/your-site (recommended)
  • Location block: Within specific location directives

VPS - Apache Server Configuration

For VPS or dedicated servers running Apache, modify the PHP configuration files directly:

🐧 Ubuntu/Debian Systems

Step 1: Locate and Edit PHP Configuration

# Find your PHP version
php -v

# Edit PHP configuration (adjust version as needed)
sudo nano /etc/php/8.2/apache2/php.ini

# For PHP-FPM (if using)
sudo nano /etc/php/8.2/fpm/php.ini

Step 2: Modify These Settings

Find and update these lines in the php.ini file:

memory_limit = 512M
upload_max_filesize = 100M
post_max_size = 100M
max_execution_time = 60
max_input_time = 60
max_input_vars = 3000

; Enable required extensions
extension=imap
extension=mysqli
extension=gd

Step 3: Restart Apache

# Restart Apache web server
sudo systemctl restart apache2

# Check Apache status
sudo systemctl status apache2

🔴 CentOS/RHEL/AlmaLinux Systems

# Edit PHP configuration
sudo nano /etc/php.ini

# Restart Apache
sudo systemctl restart httpd

# Check status
sudo systemctl status httpd

Memory Optimization & Performance

Additional optimizations for high-traffic support systems:

🚀 PHP OPcache Configuration

Enable OPcache for better PHP performance:

# Add to php.ini
opcache.enable=1
opcache.enable_cli=1
opcache.memory_consumption=256
opcache.interned_strings_buffer=8
opcache.max_accelerated_files=10000
opcache.revalidate_freq=2
opcache.fast_shutdown=1

💾 Database Optimization

MySQL/MariaDB settings for better performance:

# Add to /etc/mysql/mysql.conf.d/mysqld.cnf
[mysqld]
innodb_buffer_pool_size = 256M
max_allowed_packet = 100M
query_cache_size = 64M
query_cache_type = 1

Step 3: Verify Configuration

After making changes, verify that your settings have been applied correctly:

🧪 PHP Info Check

Create a new phpinfo.php file and verify the settings show your new values.

📊 WordPress Site Health

Go to Tools > Site Health > Info
Expand the Server section
Verify the PHP limits match your configuration.

🛠️ NexlifyDesk Settings Check

After installing NexlifyDesk:
Go to NexlifyDesk > Settings
Check the file upload limits in the interface
Test file uploads to ensure they work.

Common Issues & Solutions

After making changes, verify that your settings have been applied correctly:

🚨 "413 Request Entity Too Large" Error

Cause:
Nginx client_max_body_size is too small

Solution:

  1. Add client_max_body_size 100M; to your Nginx configuration
  2. Restart Nginx: sudo systemctl restart nginx

🚨 File Upload Fails Silently

Cause:
PHP upload limits are too low

Solution:

  1. Increase upload_max_filesize and post_max_size
  2. Ensure post_max_size ≥ upload_max_filesize
  3. Restart web server

🚨 "Maximum Execution Time Exceeded"

Cause:
Script timeout during email processing or large uploads

Solution:

  1. Increase max_execution_time to 60 or higher
  2. For Nginx, add fastcgi_read_timeout 60s;
  3. Restart services

🚨 Settings Not Taking Effect

Possible Causes:

  • Wrong php.ini file location
  • Server not restarted
  • Hosting provider restrictions

Solutions:

  1. Use php --ini to find the correct php.ini
  2. Always restart web server after changes
  3. Contact hosting provider if limits can’t be changed

✅ Configuration Complete!

Once your server is properly configured, you can:

  • ✅ Install NexlifyDesk without “413” errors
  • ✅ Upload large file attachments (up to 100MB)
  • ✅ Process email piping without timeouts
  • ✅ Handle high-volume support tickets efficiently
  • ✅ Enjoy optimal plugin performance

🔒 Security Reminder

After configuration:

  • Remove any phpinfo.php test files
  • Monitor server resources regularly
  • Keep PHP and server software updated
  • Configure appropriate file type restrictions in NexlifyDesk settings