Free tools Windows power users keep installed
One-click scans. No signup required.
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
Antihost offers Linux VPS plans with full root access, unlimited traffic on a 1 Gbps port and a 14-day free trial.
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:
Recommended Free Tools
| 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. |
| 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
- 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.
The Tool Desk
Outbyte Driver Updater FREEFix the driver behind crashes, sound loss and screen glitchesFind Drivers →Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →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
- 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:
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.
Rank #3
- 【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.
Do these 3 things before closing this tab:
1Fix the driver behind crashes, sound loss and screen glitches2Clear out junk files and repair common Windows errors3Scan for outdated or missing drivers - takes under a minuteWhen 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
- 【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.
Configure Apache or Nginx for Elgg
Apache deployment
- Enable
mod_rewriteand reload Apache. - Point the virtual host’s document root at the Elgg application directory.
- Copy Elgg’s supplied
install/config/htaccess.distto the document root as.htaccess. - In the virtual host, permit the Elgg rules to load by setting
AllowOverride allfor the document root. - 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
- Copy
install/config/nginx.distinto the enabled Nginx sites configuration. - Change the server name, document root and PHP-FPM socket to match your VPS.
- Keep the supplied rewrite and FastCGI handling intact unless you understand the consequence of each change.
- 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
- 【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.
Run the browser installer
- Create a DNS record for the VPS and open the site over its final hostname.
- Visit the site in a browser. Elgg checks PHP, extensions, the database connection, the data path and rewrite behavior.
- Enter the database name, database user, password and host that you created. For a local database, the host is commonly
localhostor the local socket configuration used by your server. - Enter the absolute data-directory path, including its trailing slash, and set the site URL exactly as users will access it.
- Set the administrator name, email address and password. The first account created becomes an administrator.
- 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.
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.
- Locate the
elgg-cliprogram in the Elgg application directory. - 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--helpshows a different form. - Add that command to the service account’s crontab at the interval recommended for your release and workload.
- 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:
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
750where 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
- Read the target Elgg release notes and verify every plugin and theme against that branch and PHP version.
- Take a tested backup of both the database and data directory.
- Clone or snapshot the VPS, or rehearse the upgrade on a staging server with the same PHP and database versions.
- 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.
- 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.
- 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.
Quick Recap
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.

