Free tools Windows power users keep installed

One-click scans. No signup required.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

iTechGuides is reader-supported. When you buy through links on our site, we may earn an affiliate commission. As an Amazon Associate I earn from qualifying purchases. Learn more

To self-host Elgg, provision a Linux VPS with PHP 8.3 or newer, MariaDB 10.6 or MySQL 8.4, a rewrite-capable web server, and an email transport agent. Install the current Elgg release, keep its data directory outside the web root, create a least-privilege database account, configure timed requests, and finish the browser installer. The first account created becomes an administrator.

What you need before installing Elgg

Elgg is a PHP/MySQL social-networking engine that runs on either Apache or Nginx. The current stable installation documentation requires the following minimums:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Component Requirement Why it matters
Database MariaDB 10.6 or newer, or MySQL 8.4 or newer Stores users, content, settings and plugin data.
PHP PHP 8.3 or newer Runs Elgg and its command-line tools.
PHP extensions GD, INTL, JSON, PDO, XML and multibyte support Provides image handling, internationalization, database access, XML processing and Unicode-safe text handling.
Web server Apache with mod_rewrite and PHP as an Apache module, or Nginx with PHP-FPM over FastCGI Elgg relies on URL rewriting and PHP execution.
Email A properly configured mail transfer agent (MTA) Elgg uses email for notifications, password resets and other account messages.
Linux VPS A supported Linux distribution with root or sudo access Needed to install packages, create service accounts and configure the web server.

Check the versions on a newly provisioned server before you copy any application files:

php -v
php -m
mariadb --version    # or: mysql --version

If PHP is older than 8.3, do not proceed by merely suppressing the installer warning. Install a distribution package or repository that provides a supported PHP version, then recheck the loaded extensions. Package names differ between Linux distributions; on Debian- or Ubuntu-based systems they commonly begin with php or a versioned prefix such as php8.3.

#1 Best Overall
Sale
Compressed Air Duster,130000RPM Super Power Cordless Air Duster,Rechargeable Brushless Blower,3 Gear Adjustable Blower with LED Light,Dust Remover for Computer/House/Outdoor/Car
  • Powerful Turbo Fan:CAGIWIRU Electric Air Duster have reached speed up to 130000RPM,Can efficient remove dust and debris.With LED light and Three Adjustable Speed to meet with different cleaning tasks.
  • With Attached USB C Fasting Charging cable.Charing 3 hours,Enjoy up to 240 minutes of use on the lowest setting, For third speed can use for 25mins.with four charging options to meet with your needs.
  • Wide Application: attached 5 different nozzles,making it suitable for a variety of scenes, such as car,pet, pc, keyboards, and other electronic devices. It also serves for office and home clean duster.
  • Handy Design & Portable:Cordless air duster electric nozzle is Light weight and small size, design and comfortable to hold and space saving, convenient to carry around. You can put it in your room or inside the car without taking up space.
  • Economical &Reusable: Built durable materials with a long-lasting battery,our CAGIWIRU air duster it's a sustainable alternative to disposable air cans.

Choose the Elgg release branch

As of October 15, 2026, the Elgg download listing identifies Elgg 7.1.1 as the latest recommended stable release, published October 9, 2026. It identifies Elgg 6.3.8 as the recommended Elgg 6 LTS release, published August 19, 2026.

Branch Release listed by Elgg Best fit Check before committing
Elgg 7 7.1.1 (October 9, 2026) New deployments that want the current stable feature line. Every plugin and theme you require must declare compatibility with Elgg 7 and PHP 8.3+.
Elgg 6 LTS 6.3.8 (August 19, 2026) Sites whose extensions or migration plan require the Elgg 6 long-term-support branch. Confirm the support horizon and that all required extensions still receive Elgg 6 updates.

Verify the release listing immediately before a production deployment. Version numbers, security fixes and plugin compatibility can change. Do not upgrade an existing site across branches until its plugins, themes and custom code have been checked.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Decide between Apache and Nginx

Both supported layouts can serve Elgg. Pick the one your team can patch, monitor and troubleshoot confidently rather than choosing on a theoretical benchmark.

Decision point Apache Nginx
PHP execution PHP as an Apache module PHP-FPM over FastCGI
Rewrite setup Enable mod_rewrite; allow the Elgg .htaccess rules with AllowOverride all. Copy Elgg’s install/config/nginx.dist into the enabled site configuration and adjust its domain, document root and PHP-FPM socket.
Configuration files The correct .htaccess comes from install/config/htaccess.dist. The distribution Nginx file should be the starting point; do not invent a separate rewrite scheme.
Operations Convenient if your administrators already manage Apache modules and per-directory overrides. Convenient if your administrators already manage Nginx server blocks and PHP-FPM pools.
Logs Inspect the virtual host’s access and error logs plus the PHP/Apache log. Inspect the server block’s access and error logs plus the PHP-FPM log.

Provision the VPS and install the stack

The examples below use a Debian- or Ubuntu-style system. Adapt package names and service commands to your distribution. Use a dedicated, non-root deployment account for application files and SSH keys rather than allowing routine administration over password-based root SSH.

1. Update the operating system

sudo apt update
sudo apt full-upgrade

Set the server’s hostname and time zone, enable a firewall that permits SSH and your web ports, and restrict SSH to key authentication. Keep the operating system, PHP, database server and Elgg on a regular patch schedule.

Rank #2
EVEO® Screen Cleaner Spray Kit (Streak-Free) TV Screen Cleaner for Smart TV, Lcd, LEd, Oled | Computer Screen Cleaner Spray and Wipe Microfiber Cloth - TV, Monitor, Laptop, iPad, Car - 6.7oz 1 Pack
  • Screen Cleaner is Your Screen’s New Bestfriend! - EVEO is proud to present a screen cleaner that’s perfectly suited for your TV. Meet your new screen cleaner, computer screen cleaner, laptop cleaner, iPad cleaner, Macbook,tv cleaner or any other electronic device. Our screen cleaner spray and wipe along with the included plush microfiber cloth, easily removes dust, fingerprints & other smudges on the screen’s surface. Clean effectively for a streak-free screen
  • Gentle on your Screens - Our screen cleaner spray and wipes is compatible to be used even for the most sensitive LCD, LED, CRT, and OLED screens in proper use. Be at ease knowing that this product is compatible with all the major brands: LG, SONY, Samsung, Sharp, iPad, iPhone, Android screens, Kindle, PC monitors - we’ve got you covered! Can be used as LCD screen cleaner, tv cleaner, smart tv screen cleaner, and more
  • Premium Super Soft Plush Microfiber Cloth - Included in this efficient screen cleaning kit. This screen cleaner spray and wipe has our signature plush microfiber cloth specially designed to comply with screens and monitors and leave them streak-free. Has been shown to effectively absorbs stubborn stains, zero streaks, and no fiber shedding. Always use this together with our screen cleaner for the best results
  • Easy-to-Use Screen Cleaner Kit + microfiber cleaning cloth - The EVEO Screen Cleaning Kit will easily be your new favorite tool when it comes to taking care of the things you love most, quick and easy solution for a streak-free screen. Simply screw on the sprayer gun on the screen cleaner bottle. Spray the cleaning liquid onto the microfiber cloth, then wipe the screen until desired cleanliness & shine is achieved.
  • Quality Screen Care Kit Worth Purchasing - Enjoy a convenient Screen Cleaner anytime, anywhere you need it. Your satisfaction is our top priority. We stand behind the quality of our products and that’s why, you shouldn’t be worrying at all. We manufacture the Best Screen Cleaner. and can be used for laptop cleaning kit, laptop screen cleaner, tv screen cleaner for smart tv. MacBook screen cleaner, monitor cleaner or screen cleaner spray for electronic devices with microfiber cleaning cloth

2. Install Apache or Nginx

For Apache, install Apache, the PHP Apache module and the required PHP packages. A typical package set is:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
sudo apt install apache2 libapache2-mod-php php php-cli php-mysql php-gd php-intl php-json php-xml php-mbstring unzip curl composer
sudo a2enmod rewrite
sudo systemctl enable --now apache2

For Nginx, install Nginx, PHP-FPM and the same PHP extensions instead:

sudo apt install nginx php-fpm php-cli php-mysql php-gd php-intl php-json php-xml php-mbstring unzip curl composer
sudo systemctl enable --now nginx
sudo systemctl enable --now php8.3-fpm

The service name may include a different supported PHP minor version. Confirm it with systemctl list-units 'php*-fpm.service' and use that socket in the Nginx configuration.

3. Install and secure MariaDB or MySQL

sudo apt install mariadb-server
sudo systemctl enable --now mariadb
sudo mariadb-secure-installation

Use the database server’s hardening wizard to remove anonymous accounts and test databases, and to restrict remote administrative access. Elgg only needs a dedicated database and user; it does not need a database administrator account.

4. Configure an MTA

Install and configure a mail transfer agent that can deliver mail from the VPS, or configure a trusted relay. Test outbound delivery and DNS authentication before opening registration. A working web page with a non-working mail path will still leave users unable to verify accounts or reset passwords.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
Rank #3
Sale
BladeHawks RGB Gaming Mouse Pad Extra Large Extended 31.5x12 Inch-Black | LED mouse pad with 14 lighting modes, covers keyboard & mouse, anti-slip rubber base, waterproof surface, USB powered
  • 【Large size】:Measuring 800 x 300 mm/ 31. 5×12 inches, which is wider and taller than others. Large mouse pad can perfectly fit your keyboard and mouse of any size, and there is also ample space for peripherals such as phones, tablets, etc.
  • 【LED backlight mouse pad】:Blade Hawks RGB mouse pad provides 7 static modes and 7 dynamic modes will give you the options you are looking for. Power-off memory function remembers the last lighting mode you selected. The super glow fiber Chroma will give you a colorful gaming setup that you want.
  • 【Anti-slip rubber base】:Made from Natural rubber, this gaming mousepad will firmly grip your desktop, allowing you to enjoy the ultimate precision in the games you are most passionate about. It also comes with a texture that enhances this ability even further.
  • 【Smooth and waterproof surface】: Micro-textured cloth surface, for extremely precise mouse control and a smooth movement. When liquid splashes on the gaming mouse pad, it forms water droplets and slides down. Will not delay your work or gameplay.
  • 【Plug and play】: This mouse and keyboard pad is powered by USB, plug and play, no driver required. One button control light modes. Press one time to change the lighting mode, press twice to change the brightness, press and hold about 3 seconds turn ON/OFF.

Download Elgg and lay out the files safely

Elgg supports a Composer-based deployment and a release ZIP. Composer is the recommended command-line route for administrators who are comfortable managing dependencies. Pin the exact release you selected instead of silently installing an untested moving target. Use the Composer command shown for that release, or download its release ZIP and verify the archive before extracting it.

Keep the application tree in a controlled location such as /var/www/elgg. The exact directory is your choice; what is not optional is the location of the data directory.

The data directory must be outside the document root

Elgg stores uploaded files, including profile icons and photos, in its data directory. Elgg’s documentation states: “For security reasons, this folder MUST be stored outside of your document root.” Do not put it under /www/, /public_html/ or any other directory that the web server can serve as a URL.

sudo mkdir -p /srv/elgg-data
sudo mkdir -p /var/www/elgg
sudo chown -R www-data:www-data /srv/elgg-data /var/www/elgg
sudo chmod 750 /srv/elgg-data

Replace www-data with the account used by your web server. The web-server identity must be able to create and write the directories Elgg requires. A mode of 777 may appear to fix an upload error, but Elgg explicitly describes it as insecure and not recommended. Grant ownership or a narrowly scoped group permission instead.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

When the installer asks for the data path, use an absolute path with the expected trailing slash, for example /srv/elgg-data/. A missing trailing slash, a typo or a path inside the document root can cause uploads and cache writes to fail later.

Rank #4
Sale
Vaydeer Wrist Rest for Keyboard and Mouse, Computer Ergonomic Wrist Support Pad, Soft Memory Foam Arm Cushion for Desk, Palm Hand Office Laptop Typing
  • 【Softer and More Comfortable】Vaydeer wrist rest has unique diamond pattern, which is the combination of softness and aesthetics. The materials of wrist rest are improved into higher quality memory foam and covered with silky smooth lycra. The computer wrist rest makes you as comfortable and cushiony as like rest your wrists on clouds.
  • 【Ergonomic Wrist Saver】The wrist rests for keyboard and mouse comes with a 17.32×3.15×0.83 inch keyboard wrist pad and a 5.94×3.15×0.83 inch mouse wrist support. Based on ergonomic design, the unique concave shape is the perfect fit for your wrist joints. The wrist rest pad fits most computer keyboards and laptops, improve hand and wrist posture, release your wrist and arm stress.
  • 【Non-Slip Rubber Bottom】Featuring an anti-skid silicone base on the bottom, this wrist keyboard support stays firmly in place on your desk, preventing the padding from sliding around, ensuring stable and consistent wrist support during extended computer sessions.
  • 【Better Experience & Pain Relief】Our keyboard arm rest is beneficial to alleviate the soreness caused by direct contact and friction between your arm and a hard desk surface, reducing the risk of wrist fatigue or carpal tunnel. The soft texture of memory foam can evenly distribute the pressure around your wrists and provide good support with just enough give.
  • 【Helpful in Multiple Scenarios】Whether you're working, studying, writing, typing, gaming, this keyboard and mouse rest combo is an essential accessory to add comfort and support to your hands and wrists. It’s also a great gift for men, women, family, friend, coworker, gamer, teacher, etc.

Create a least-privilege database

Log in locally as the database administrator and create a database with UTF-8 support plus a separate account for Elgg. Use a long random password and save it in your password manager.

sudo mariadb
CREATE DATABASE elgg CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
CREATE USER 'elgg_app'@'localhost' IDENTIFIED BY 'replace-with-a-long-random-password';
GRANT ALL PRIVILEGES ON elgg.* TO 'elgg_app'@'localhost';
FLUSH PRIVILEGES;
EXIT;

The installer needs privileges on the Elgg database so it can create and update tables. It does not need global privileges on other databases. If your database is on another host, restrict the account’s host pattern to the application server’s address and require encrypted database transport.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Configure Apache or Nginx for Elgg

Apache deployment

  1. Enable mod_rewrite and reload Apache.
  2. Point the virtual host’s document root at the Elgg application directory.
  3. Copy Elgg’s supplied install/config/htaccess.dist to the document root as .htaccess.
  4. In the virtual host, permit the Elgg rules to load by setting AllowOverride all for the document root.
  5. Set the server name to the final DNS name, enable the site and reload Apache.
sudo a2ensite elgg.conf
sudo apachectl configtest
sudo systemctl reload apache2

If the rewrite test fails or saving settings returns a 404, inspect both AllowOverride and the presence of the correct .htaccess. A syntactically valid virtual host with overrides disabled will still bypass Elgg’s rewrite rules.

Nginx deployment

  1. Copy install/config/nginx.dist into the enabled Nginx sites configuration.
  2. Change the server name, document root and PHP-FPM socket to match your VPS.
  3. Keep the supplied rewrite and FastCGI handling intact unless you understand the consequence of each change.
  4. Enable the site, test the configuration and reload Nginx.
sudo nginx -t
sudo systemctl reload nginx

Do not point Nginx at the data directory and do not expose it with an alias. The public document root should contain application files only; uploaded content belongs in the separate data path.

If the installer cannot write configuration

Elgg may be unable to create its settings file when the application directory is read-only to the web-server identity. Copy settings.example.php to elgg-config/settings.php, enter the database details manually, and assign ownership and permissions that let the web server read the file without making the whole project world-writable.

Best Value
Sale
Under Desk Cable Management Tray No Drill, Metal Mesh Cable Management Under Desk with Clamp Mount, 2 Hole Cable Tray with Wire Management and Cord Organizer for Home Office Standing Desk
  • 【No Drill Mounted】Cable management tray can be assembled in as little as 3 minutes or less-simply. Side clips easily clampe the edge of desk, pass through the holes on the sides, and secure excess cables with baskets. Desk cable management supports inward or outward installation to meet your needs in different scenarios, and provides you with great convenience when collecting and organizing wires.
  • 【Rubber Pad Protects Desk】Wire organizer under desk built-in soft rubber pads on the clamp protect your desk from scratches, so you will not damage your furniture or office.
  • 【Sturdy and Beautiful】Cord management under desk is made of high-quality carbon steel and holds about 15 lbs. The wire basket has 2 holes on each side of the tray to enable your cables to pass freely. Cable baskets are suitable for desk thickness use from 0.4" to 2.4".
  • 【Space Saving & Keep Organized】Desk cable management tray holds all your power cords, outlet strips, USB hubs and computer transformers hidden from your feet, and the data cables will not enter the vacuum cleaner to keep your desk clean and tidy. Desk wire organizer is also suitable for use in the kitchen and outdoors.
  • 【Reduce Safety Risks】Cable tray under desk keeps all plugs away from your kids, no more worry about tripping. Using 2 holes wire tray saves extra space, helps you easily cabling and wire protection. The mesh design is not easy to accumulate dust, but avoids safety accidents caused by messy wires.
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.Support on Ko-Fi

Run the browser installer

  1. Create a DNS record for the VPS and open the site over its final hostname.
  2. Visit the site in a browser. Elgg checks PHP, extensions, the database connection, the data path and rewrite behavior.
  3. Enter the database name, database user, password and host that you created. For a local database, the host is commonly localhost or the local socket configuration used by your server.
  4. Enter the absolute data-directory path, including its trailing slash, and set the site URL exactly as users will access it.
  5. Set the administrator name, email address and password. The first account created becomes an administrator.
  6. Complete the installer, sign in, and send a test notification or password-reset email before inviting users.

After installation, remove any temporary archive files, confirm that the web server cannot serve the data directory, and tighten permissions on configuration files. Keep a documented backup of the database and the data directory; either one without the other is an incomplete Elgg backup.

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.

Configure Elgg timed requests (cron)

Elgg uses timed requests to perform background work such as sending notifications and cleaning the database. A production site needs a recurring cron entry; otherwise actions that appear to succeed may remain queued indefinitely.

  1. Locate the elgg-cli program in the Elgg application directory.
  2. Run its cron command manually as the web-server or Elgg service identity and confirm that it exits without a PHP or database error. A common layout is php /var/www/elgg/elgg-cli cron; use the command syntax documented by the exact Elgg release if --help shows a different form.
  3. Add that command to the service account’s crontab at the interval recommended for your release and workload.
  4. Redirect output to a protected log or the system journal, then inspect it after the first scheduled run.
sudo -u www-data php /var/www/elgg/elgg-cli --help
sudo -u www-data php /var/www/elgg/elgg-cli cron

Do not run the job as root merely to bypass permissions. If the manual run fails, fix ownership, PHP extensions or database access first; cron will not repair an interactive command that already fails.

Apply SELinux policy when it is enabled

On SELinux-enforcing systems, ordinary Unix ownership can be correct while access is still denied. Label the project root, data directory and their children with httpd_sys_rw_content_t:

sudo semanage fcontext -a -t httpd_sys_rw_content_t '/var/www/elgg(/.*)?'
sudo semanage fcontext -a -t httpd_sys_rw_content_t '/srv/elgg-data(/.*)?'
sudo restorecon -Rv /var/www/elgg /srv/elgg-data

If Elgg must make network connections from PHP, enable the documented booleans:

Special offer. See more information about Outbyte and uninstall instructions. Please review EULA and Privacy policy.
sudo setsebool -P httpd_can_network_connect on
sudo setsebool -P httpd_can_network_connect_db on

Use the booleans only when your architecture requires them, and review AVC denials rather than disabling SELinux globally.

Hardening and operating the VPS

  • Serve the site over HTTPS and redirect plain HTTP to the canonical HTTPS hostname.
  • Use SSH keys, disable password authentication where practical, and limit administrative access by firewall rules.
  • Keep the Elgg data directory outside the document root with restrictive ownership and mode 750 where the web-server account owns it.
  • Use a dedicated database account and never put its password in shell history or public repositories.
  • Back up the database and data directory on separate schedules, and test restoration on a non-production VPS.
  • Apply operating-system, PHP, database and Elgg security updates promptly. Test plugin compatibility before changing the Elgg branch or PHP major/minor version.
  • Monitor web-server errors, PHP-FPM or Apache errors, database health, disk space and the timed-request log.

Troubleshoot the failures administrators see most often

Symptom Likely cause Checks and fix
The requirements page reports missing components Unsupported PHP version or an unloaded extension Run php -v and php -m; install or enable GD, INTL, JSON, PDO, XML and multibyte support for the PHP binary used by the web server, then restart Apache or PHP-FPM.
White page after entering database settings pdo_mysql is missing or loaded by a different PHP installation Confirm php -m | grep -i pdo_mysql, check the web server’s PHP version, install the matching package and restart the PHP service.
Rewrite test fails or long URLs return 404 Apache overrides are disabled, mod_rewrite is off, the wrong .htaccess is present, or Nginx’s supplied rules were not installed Check AllowOverride all, enable rewrite support, compare the file with install/config/htaccess.dist, or restore and adapt install/config/nginx.dist. Confirm the configured site URL.
Settings cannot be saved The web server cannot write elgg-config/settings.php or the virtual host blocks the request Check ownership and mode on the configuration path, inspect web-server error logs, and use settings.example.php to create the file manually if necessary.
Profile images or uploads fail Wrong data path, missing trailing slash, incorrect ownership, restrictive SELinux label or insufficient disk space Verify the absolute path, trailing slash, web-server ownership, mode, SELinux context and free space. Ensure the path is outside the document root.
Notifications or cleanup never run Timed requests are absent, run as the wrong user or fail under cron’s limited environment Run the Elgg CLI cron command interactively as the service identity, inspect its output, then review the recurring crontab and its log.
SELinux reports denials Files have the wrong security context or required network booleans are disabled Apply httpd_sys_rw_content_t to the project and data paths, run restorecon, and enable the documented booleans only when required.

Upgrade without breaking the site

  1. Read the target Elgg release notes and verify every plugin and theme against that branch and PHP version.
  2. Take a tested backup of both the database and data directory.
  3. Clone or snapshot the VPS, or rehearse the upgrade on a staging server with the same PHP and database versions.
  4. Put the site into maintenance mode if your deployment process supports it, update application files using the release’s documented Composer or archive procedure, and run the database upgrade.
  5. Run the requirements checks, timed request manually and a user-facing smoke test: sign in, upload an image, create content, send a notification and perform a password reset.
  6. Keep the previous release available for rollback until logs and scheduled jobs remain healthy.

When this architecture is a good fit

A single Linux VPS is a practical starting point for a small or medium Elgg community when you can administer Linux, patch the stack, monitor disk and mail delivery, and maintain backups. The main operational risks are not the installer itself: they are exposing the data directory, running unsupported PHP or database versions, omitting timed requests, and allowing plugins to drift out of compatibility with the Elgg branch. Resolve those four issues before treating the site as production-ready.

Product prices and availability are accurate as of the date/time indicated and are subject to change. Any price and availability information displayed on Amazon at the time of purchase will apply.