Crashes, No Sound, or Screen Glitches?
Random freezes, missing sound and display glitches usually trace back to one bad driver. Find and replace yours safely.Free scan · under a minutePC Slower Than It Used to Be?
A free scan shows the junk files, broken settings and background clutter dragging Windows down - then fixes them in one click.Free scan · Windows 10 & 11iTechGuides 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
Need a server to try this on? Antihost offers Linux VPS plans with NVMe storage, full root access and a 14-day free trial.
Install Pligg on an Ubuntu VPS as a conventional LAMP application: prepare Apache, MySQL-compatible database service, and PHP; create a dedicated database; download and stage the project files; complete /install/index.php; then remove the installer and tighten permissions. Pligg is the legacy name associated with the Kliqqi project, whose repository describes it as “Kliqqi formerly known as Pligg CMS.”
The current Kliqqi release page shows version 2.0.2, while the widely copied VPS walkthrough targets 2.0.1. Because the project does not publish a current Ubuntu/PHP support matrix, treat this as a staged deployment: test the selected release on the exact Ubuntu image and PHP version you will run before putting the site on the public internet.
Do these 3 things before closing this tab:
1Clear out junk files and repair common Windows errors2Fix the driver behind crashes, sound loss and screen glitches3Repair Windows errors before they cause bigger problemsWhat you need before starting
This procedure assumes a newly provisioned Ubuntu VPS and an administrator who can connect over SSH. Use a non-root account with sudo, keep the provider’s recovery access available, and take a VPS snapshot or backup before changing the stack.
- An Ubuntu server with a static public address or DNS name.
- SSH access and a non-root administrative account.
- Apache, a MySQL-compatible database service, and PHP.
- A release archive obtained from the Kliqqi/Pligg project source, not an untrusted mirror.
- A password manager or other secure place to retain the database and administrator credentials.
Pligg is an older PHP application. Modern Ubuntu releases may ship a PHP version that the 2.0.x code has not been tested against. Do not infer compatibility from the fact that PHP installs successfully. Build a disposable staging VPS, run the browser installer, exercise login, posting, voting, uploads, administration, and backups, and only then repeat the process on production.
#1 Best Overall
Choose and verify the release
The project release page currently displays 2.0.2 as the latest release shown. Its notes call out a security fix plus Bootstrap 3.2.0 and FontAwesome 4.1.0 updates. The release page displays the date as 16 August without exposing a year in the captured listing, so record the exact archive and checksum you downloaded rather than assuming the date identifies a current maintenance cycle.
| Release reference | What it means for this installation |
|---|---|
| 2.0.2 | Latest version shown on the project release page; includes the documented security fix and front-end library updates. Test it against your Ubuntu/PHP combination. |
| 2.0.1 | Version used by the historical Ubuntu VPS tutorial. Use it only when you have a compatibility reason and have verified the archive and its security status. |
Do not mix files from different releases. Record the version in your deployment notes, verify the archive after downloading, and keep the untouched archive so you can reproduce or roll back the staging installation.
1. Provision and harden the Ubuntu VPS
Log in with your administrative account, update the operating system, and confirm the host name and time zone are correct.
ssh admin@server-address
sudo apt update
sudo apt full-upgrade
hostnamectl
Enable a firewall with SSH allowed before enabling the web ports. The exact SSH port depends on your configuration; never lock yourself out by removing the only working rule.
sudo apt install ufw
sudo ufw allow OpenSSH
sudo ufw allow 80/tcp
sudo ufw allow 443/tcp
sudo ufw enable
sudo ufw status verbose
Use provider snapshots or a tested backup system. A snapshot is not a substitute for an export of the MySQL database and a separate copy of uploaded files; both are required for a practical Pligg rollback.
2. Install Apache, the database service, and PHP
Ubuntu’s PHP guidance places the web server and database service first, followed by PHP, the Apache PHP module, and the MySQL PHP extension. Install the command-line interpreter as well; it is useful for diagnostics even though the initial setup runs in a browser.
sudo apt install apache2 mysql-server php libapache2-mod-php php-mysql php-cli unzip
Check that Apache and the database service started, and confirm the PHP version that the image supplied.
Rank #2
sudo systemctl enable --now apache2
sudo systemctl enable --now mysql
apache2ctl -v
php -v
sudo systemctl --no-pager --full status apache2 mysql
If your organization uses MariaDB or a different web server, treat that as a deliberate compatibility project rather than silently substituting components. The documented installation path is a LAMP server, and the old tutorial’s package commands for Ubuntu 12.04 are not current package guidance.
Before proceeding, create a temporary PHP test page and remove it immediately after checking it. A page containing phpinfo() exposes server details if left online.
echo '<?php phpinfo();' | sudo tee /var/www/html/php-test.php
Open http://server-address/php-test.php from a browser, confirm PHP is being handled by Apache, and then delete the file:
sudo rm /var/www/html/php-test.php
3. Create a dedicated database and least-privilege user
Do not install Pligg with the database administrator account. Generate a long random password, create a database dedicated to this site, and grant that user rights only on that database. The following shell sequence generates the password in memory, creates the database and user, and prints the password once for secure storage.
DB_PASS=$(openssl rand -hex 24)
sudo mysql -e "CREATE DATABASE pliggdb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci; CREATE USER 'pligguser'@'localhost' IDENTIFIED BY '${DB_PASS}'; GRANT ALL PRIVILEGES ON pliggdb.* TO 'pligguser'@'localhost'; FLUSH PRIVILEGES;"
printf 'Save this database password securely: %sn' "$DB_PASS"
unset DB_PASS
If the command reports that the database or account already exists, stop and inspect the existing installation instead of dropping objects. The installer will need these values:
- Database host:
localhost - Database name:
pliggdb - Database user:
pligguser - Database password: the generated secret
- Table prefix: choose a short, unique prefix such as
plg_
A table prefix is not a replacement for database isolation, but a unique value avoids collisions when more than one application shares a database.
4. Download and unpack the project files
Obtain the release archive from the project’s release source and verify that its version matches the one you recorded. The historical walkthrough downloads 2.0.1; for a new deployment, the release page’s 2.0.2 listing is the version to evaluate first.
The Tool Desk
Outbyte PC Repair FREEClear out junk files and repair common Windows errorsFree Scan →Outbyte Driver Updater FREEScan for outdated or missing drivers - takes under a minuteDriver Scan →Rank #3
Copy the verified archive to the server. For example, after downloading it locally, use a command shaped like this with the archive filename you actually obtained:
scp pligg-2.0.2.zip admin@server-address:/tmp/
On the VPS, unpack it outside the document root, inspect the top-level directory, and move the application into its final location. If the archive expands to a differently named directory, use that actual name in the mv command.
cd /tmp
unzip pligg-2.0.2.zip
ls -la
sudo mv pligg-2.0.2 /var/www/html/pligg
Use a dedicated directory such as /var/www/html/pligg while staging. You can later point a virtual host at that directory or move the files to the final document root after testing.
5. Prepare Pligg’s default files
The repository’s setup instructions require several files and directories to be renamed from their .default forms before the browser installer can use them. Run these commands from the application directory and confirm each source file exists before continuing.
What’s actually slowing this PC down?
Pick the symptom - the matching free tool is one click away.
cd /var/www/html/pligg
sudo mv favicon.ico.default favicon.ico
sudo mv settings.php.default settings.php
sudo mv libs/dbconnect.php.default libs/dbconnect.php
sudo mv logs.default logs
Select the language you intend to use and rename its default file to the active language filename described by the repository. Do not rename every language file indiscriminately; retain the languages you need and follow the release’s naming convention.
Some installations also require the application directories used for uploads, cache data, logs, and backups to exist. Check the archive before creating anything, because directory names can vary by release:
sudo find /var/www/html/pligg -maxdepth 2 -type d ( -name avatars -o -name cache -o -name languages -o -name logs -o -name backup ) -print
6. Set ownership and temporary write access
Apache normally runs as www-data on Ubuntu. The installer must be able to write configuration and runtime data, but making the entire application world-writable is unsafe. Assign the files to an administrative deployment account and the Apache group, then grant group write access only to the paths the repository identifies.
Rank #4
sudo chown -R admin:www-data /var/www/html/pligg
sudo find /var/www/html/pligg -type d -exec chmod 750 {} ;
sudo find /var/www/html/pligg -type f -exec chmod 640 {} ;
sudo chmod -R g+rwX /var/www/html/pligg/admin/backup
sudo chmod -R g+rwX /var/www/html/pligg/cache
sudo chmod -R g+rwX /var/www/html/pligg/languages
sudo chmod -R g+rwX /var/www/html/pligg/logs
sudo chmod -R g+rwX /var/www/html/pligg/avatars
sudo chmod g+rw /var/www/html/pligg/settings.php /var/www/html/pligg/libs/dbconnect.php
Replace admin in the ownership command with your actual deployment account. If a named directory is absent in your release, omit that line. Watch the installer for a specific “not writable” message and grant access to only that path. After setup, remove write access from configuration files and any directory that does not need runtime writes.
7. Run the browser installer
Open the installer at http://server-address/pligg/install/index.php. If you configured a DNS name or virtual host, use that host instead. The installer is the supported place to write the database connection and initial settings.
- Choose the language and continue.
- Enter database host
localhost, database namepliggdb, userpligguser, and the generated password. - Enter the table prefix you selected, such as
plg_. - Create a unique administrator username and a long password. Do not reuse the database password.
- Submit the form and read every status message. If a file-permission, PHP-extension, or database error appears, stop and fix it before retrying.
Common failure causes are a typo in the database credentials, a database user created for a different host value, missing PHP database support, and configuration files that Apache cannot write. Check the Apache error log while reproducing a failure:
sudo tail -f /var/log/apache2/error.log
Use the project’s troubleshooting guidance when the installer reports an application-specific error. Do not bypass a failed check by making the whole tree mode 777.
Recommended Free Tools
8. Remove the installer and verify the installation
Once the installer reports success, remove the installation directory. Leaving it available allows somebody to rerun setup or expose diagnostic information.
sudo rm -rf /var/www/html/pligg/install
sudo chmod 644 /var/www/html/pligg/libs/dbconnect.php
sudo chmod 640 /var/www/html/pligg/settings.php
Visit /index.php, create or view a test story, vote if your configuration permits it, and verify that an uploaded avatar and a generated page work. Then open /admin, sign in with the administrator account, and review site settings, modules, language, templates, and email configuration.
After testing, reduce write access further. Keep the Apache group writable only on directories that genuinely need runtime writes, and make configuration files readable but not writable by the web process where the application permits it. Confirm the effective permissions with:
Best Value
namei -l /var/www/html/pligg/libs/dbconnect.php
namei -l /var/www/html/pligg/settings.php
Independent reader supportYour contribution helps us test, update, and keep practical guides available for everyone.9. Configure the web server for a real hostname
The default Apache document root is adequate for staging. Production should use a dedicated virtual host for the site directory, a DNS record pointing to the VPS, and HTTPS. Keep the virtual host’s document root limited to the Pligg directory and disable directory listing. Certificate issuance and renewal depend on the certificate tool and domain setup you choose, so verify those steps separately on your Ubuntu release.
Quick wins for a faster PC:
Fix the driver behind crashes, sound loss and screen glitchesFind Drivers →Repair Windows errors before they cause bigger problemsFix Now →Do not expose database administration ports to the public internet. Keep MySQL bound to localhost unless you have a documented, firewall-restricted reason to permit remote administration.
10. Back up and upgrade safely
Pligg upgrades replace application files and may alter the database schema. Take both backups before every upgrade:
- A logical MySQL dump of the Pligg database.
- A file backup containing uploaded avatars, configuration files, templates, modules, and any local customizations.
The repository upgrade procedure specifically calls out preserving /avatars/, libs/dbconnect.php, favicon.ico, and settings.php. Preserve custom templates and modules as well, because an upgrade can change their assumptions.
- Put the site in a maintenance window and record the currently installed version.
- Export the database and verify that the dump can be read.
- Back up the complete application directory and copy it off the VPS.
- Upload and unpack the new release without overwriting your backups.
- Restore the preserved avatars, configuration files, favicon, templates, and approved customizations into the new tree.
- Open
/install/upgrade.phpand complete the database upgrade. - Delete
/installagain immediately after the upgrade. - Re-enable modules, check template compatibility, test login and posting, and inspect the Apache log.
If the upgrade fails, do not repeatedly rerun it against an uncertain database state. Restore the database dump and previous files, document the error, and reproduce the upgrade on staging first.
Free tools Windows power users keep installed
One-click scans. No signup required.
Manual VPS or managed VPS?
A self-managed Ubuntu VPS gives you direct control but makes you responsible for every operating-system and application boundary. A managed service can reduce routine administration, but you must confirm that its supported PHP versions and permission model can run this legacy application.
| Decision point | Self-managed Ubuntu VPS | Managed VPS |
|---|---|---|
| Ubuntu and PHP versions | You select the image and can stage multiple combinations. | Confirm the provider allows the exact Ubuntu/PHP combination Pligg needs. |
| SSH and root controls | You control accounts, sudo, firewall, and service configuration. | Administrative access and change procedures may be limited. |
| Database administration | You create users, backups, upgrades, and recovery procedures. | Ask whether database backups and restores include the application database. |
| HTTPS and certificates | You configure issuance, renewal, and web-server integration. | Certificate automation may be included, but verify renewal ownership. |
| File permissions | You can grant Apache only the writes the installer requires. | Provider tooling may impose a different ownership model. |
| Monitoring and rollback | You must arrange logs, alerts, snapshots, and off-server backups. | Check what monitoring, restore points, and rollback guarantees are actually included. |
Choose the model based on who will maintain PHP, Apache, MySQL, backups, security updates, and recovery—not merely on the advertised VPS size.
Quick Recap
Troubleshooting checklist
Installer cannot connect to MySQL
- Confirm MySQL is active with
sudo systemctl status mysql. - Use
localhostexactly when the account was created for'pligguser'@'localhost'. - Test the credentials independently:
mysql -u pligguser -p -h localhost pliggdb. - Check that the account has privileges on
pliggdb.*, not only on another database.
Installer reports unwritable files
- Check the parent directories with
namei -l. - Confirm Apache’s user and group with
ps -o user,group,comm -C apache2. - Grant group write access to the named path only, complete the operation, then reduce permissions.
Blank page or HTTP 500 response
- Watch
/var/log/apache2/error.logwhile loading the failing page. - Confirm the PHP version and required database extension with
php -m | grep -E 'mysqli|pdo_mysql'. - Reproduce the issue on staging with the same Ubuntu and PHP versions before changing production.
Uploads or cache fail after a successful install
- Check that the relevant avatar, cache, and log directories exist.
- Verify ownership and group write access for the Apache process.
- Inspect disk space with
df -hand review Apache and Pligg logs.
Security and maintenance reminders
- Delete
/installafter every fresh installation and upgrade. - Keep
libs/dbconnect.phpandsettings.phpout of public write access. - Use a unique database password and a separate administrator password.
- Apply Ubuntu security updates during a planned maintenance window, then retest Pligg features.
- Back up the database and uploaded files off the VPS and periodically test restoration.
- Keep a staging copy because Pligg 2.0.x has no published current Ubuntu/PHP support matrix.
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.

