Install Proxmox on Debian Wheezy

In this post, I would like to show how to install Proxmox on debian Wheezy. Proxmox is a web-based GUI for KVM. I use this in my LAB for all the software related testing. It is free, but you can also get commercial support. It is one of those great open source tools.

Check Requirements

Before you can start the installation, you should check if your host is able to install Proxmox. You should have the latest version of Debian Wheezy, Debian Jessie is currently not supported by Proxmox.

You should also check, if your CPU is able to run KVM based virtual machines. You have to enable “vmx” “Intel VT-x” for Intel CPU’s and “svm” “AMD SVM” for AMD based CPU’s. Afterwards you can check if it is enabled by looking into /proc/cpuinfo

grep --color vmx /proc/cpuinfo

or

grep --color svm /proc/cpuinfo

For an intel CPU it could look like this:

Intel-VMX-support
Intel-VMX-support

I do not have any AMD based system to get a sample output, but it should look similar.

You should also make sure, that you have the correct settings in your hosts file. It should look like this:

127.0.0.1 localhost
192.168.2.10 proxmox.hpn.local proxmox

# The following lines are desirable for IPv6 capable hosts
::1 localhost ip6-localhost ip6-loopback
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters

If you can make a check mark on the above requirements, head over to the next step.

Install Proxmox

To install proxmox on your system, you have to add the repository to your source list:

vi /etc/apt/sources.list

Add the following line:

# PVE repository provided by proxmox.com, only for installation (this repo will stay on 3.1)
deb http://download.proxmox.com/debian wheezy pve

Before you can use this repository, you ave to import the repository key:

wget -O- "http://download.proxmox.com/debian/key.asc" | apt-key add -

Update your system:

apt-get update && apt-get dist-upgrade

This will fetch the information from the added repository and install the proxmox kernel.

If not automatically done with the update above, install the Proxmox kernel:

apt-get install pve-firmware pve-kernel-2.6.32-26-pve

Now, the tricky part starts. If you have no physical access to the server, you need to be very careful with the next step. It could happen that you machine will not boot correctly.

You have to configure grub that way, that the Proxmox kernel is loaded automatically. During the installation of the Proxmox kernel, you will see those lines:

Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.2.0-4-amd64
Found initrd image: /boot/initrd.img-3.2.0-4-amd64
Found linux image: /boot/vmlinuz-2.6.32-26-pve
Found initrd image: /boot/initrd.img-2.6.32-26-pve
done

This will tell, which options are available at the boot screen. The default value for grub is “0”. This means, that the first line is option “0”. You should boot line number “3”, which means we need to tell grub to use option “2” for default. To change the default option open this file:

vi /etc/default/grub

Look for this entry:

GRUB_DEFAULT=0

I have to change it to “2”:

GRUB_DEFAULT=2

Save the file and update grub with the new configuration:

# update-grub
Generating grub.cfg ...
Found linux image: /boot/vmlinuz-3.2.0-4-amd64
Found initrd image: /boot/initrd.img-3.2.0-4-amd64
Found linux image: /boot/vmlinuz-2.6.32-26-pve
Found initrd image: /boot/initrd.img-2.6.32-26-pve
done

Using this command will also bring up all boot options, if you missed it in the first place.

You can now reboot your system.

If you system is back online, you can check if the correct kernel was booted by:

uname -a
Linux 2.6.32-26-pve #1 SMP Mon Oct 14 08:22:20 CEST 2013 x86_64 GNU/Linux

The important part is “-pve”.

You can now remove the debian default kernel by:

apt-get remove linux-image-amd64 linux-image-3.2.0-4-amd64 linux-base

If you do so, you have to change the grub configuration again.

Generating grub.cfg ...
Found linux image: /boot/vmlinuz-2.6.32-26-pve
Found initrd image: /boot/initrd.img-2.6.32-26-pve
done

For me, it is now “0” again.

The last step, is to install the rest of the Proxmox files:

apt-get install proxmox-ve-2.6.32 ntp ssh lvm2 postfix ksm-control-daemon vzprocps open-iscsi bootlogd

This will install a lot of packages.

You can now remove the Proxmox repository from your source list again. If you do not have a commercial support contract you have to remove the commercial repository from your system. Therefore open this file:

# vi /etc/apt/sources.list.d/pve-enterprise.list

and remove those lines:

deb https://enterprise.proxmox.com/debian wheezy pve-enterprise

and add those lines:

# PVE pve-no-subscription repository provided by proxmox.com, NOT recommended for production use
deb http://download.proxmox.com/debian wheezy pve-no-subscription

Update the system to the latest Proxmox version:

# apt-get update && apt-get dist-upgrade

As this will install a newer kernel version, reboot the last time.

You can now access the GUI of Proxmox by using this url:

https://your-ip-address:8006

You can use your root credentials, to login to the system.

The next step would be to create networking for the VM’s. I will write a post about the network configuration next time.

10 Tips to Get a 100% Site Health Score in WordPress 5.2

WordPress 5.2 added a new Site Health score to your WordPress dashboard and, as with any score, that probably has you wondering how to get a perfect, 100% score.

In this post, we’re here to help. First, we’ll introduce you to what the new Site Health feature is. Then, we’ll take you through ten tips you can follow to score 100% on your Site Health in WordPress 5.2.

How the Site Health score works in WordPress 5.2

The Site Health functionality in WordPress 5.2 adds robust tools that help you identify potential issues and make it easy for you to fix your site if something goes wrong.

The Site Health tool runs a series of tests and then shares results and recommendations with you based on what it finds.

What’s even better is that the tests are filterable, and plugins and themes can add their own tests or remove existing ones.

Once you update your WordPress website, you’ll find two new pages under Tools > Site Health.

Tips to get 100% site health score - dashboard screenshot

The first page displays your Site Health Status with results categorized as:

  • Critical
  • Recommended
  • Good

These tests are what WordPress uses to calculate your Site Health Score. Needless to say, the critical tests weigh more heavily, and not faring well in them can dampen your chances to get 100% Site Health score.

site health score

The health check results show critical information pertaining to both performance and security. The performance checks include checking for:

  • WordPress version
  • Latest PHP version
  • SQL server version
  • Installation of recommended PHP modules
  • UTF8MB4 support
  • Scheduled events
  • Working HTTP requests
  • REST API availability
  • Performing loopback requests

The security checks include:

  • Active themes
  • Up to date plugins
  • HTTPS connection
  • Secure communication
  • Debug mode off
  • Communication with WordPress.org
  • Background updates enabled

The second page is the Site Health Info page that contains a load of information related to your site health. There’s a convenient button here that can copy all the information to your clipboard so that you can share it with a developer who’s supporting you. For example, if you’re asking a plugin author for help, this gives you a convenient way to provide them with information about your site:

SIte health info

Ten tips to get a 100% Site Health score in WordPress 5.2

Now that you know the checks that WordPress runs to assess your website, here’s what you can do to get a 100% Site Health score.

1. Keep WordPress up to date

We’ve heard this often enough, but in practice, not many of us pay attention to the update notifications that appear with (annoying!) frequency on our dashboard for major updates. Fortunately, updating WordPress is now just a one-click affair. By default, minor changes happen automatically.

Update WordPress

And while it’s possible to disable background updates, it’s really better not to do so.

The test results will let you know if your site is up to date and if it’s communicating with WordPress.org. For the best way to run these updates, check out our guide on how to safely update WordPress.

2. Keep themes and plugins up to date

Don’t stop with updating the WordPress core. Go the whole distance and update all the themes and plugins as well. You can update these extensions from the regular WordPress updates area (Dashboard → Updates), as well as the respective Themesand Plugins areas:

Update plugins

3. Remove unused themes and plugins

Beyond updating themes and plugins that you are using, you’ll also want to remove any themes and plugins that you are not using. Themes and plugins that are not updated are a security risk, which is why it’s safer to remove them.

There is one exception, though – leave the latest default theme installed, even if you’re not using it (e.g. Twenty Nineteen).

4. Use the latest SQL server version

Your database server’s software is what powers the database that WordPress uses to store your content and settings. There are two common options, depending on your host’s configuration:

  1. MySQL
  2. MariaDB (a fork of MySQL)

To improve your site’s performance and security (and Site Health score), you’ll want to make sure you’re using the latest version – WordPress recommends running MySQL version 5.6+ or MariaDB version 10.1+.

If you’re not sure how to do this, the best way to get started is to reach out to your host’s support.

5. Upgrade to the latest PHP version

PHP is the programming language that powers much of WordPress’ functionality.

Upgrading to the latest version offers big performance improvements, as well as better security (because older versions no longer receive security updates).

Currently, WordPress recommends that you use PHP 7.3+.

Many WordPress hosts give you an option to choose your PHP version from your dashboard. Or, you can reach out to your host’s support for help.

6. Make sure debug mode is turned off

WordPress has a few built-in debugging tools that generate helpful messages to developers. The most important tool is WP_DEBUG in your WordPress install.

However, on a live site, the debug mode should not be turned on because it can reveal a load of information about your website to visitors and is, therefore, a security risk. That’s why WordPress will ding your Site Health score if you still have debug mode turned on.

To configure the debug mode, find this line in your wp-config.php file:

define( 'WP_DEBUG', true );

To turn it off, you can either change true to false, or just delete the entire line.

7. Install SSL certificate and use HTTPS

HTTPS (Secure HTTP) is a method of encryption that secures the communication between your server and the browser of any user visiting your website, and it’s what gets you that trust-building green padlock in web browsers.

Additionally, Google Chrome will eventually start marking all non-HTTPS pages as “Not Secure:”:

Insecure website

To avoid this, and get your Site Health score up, you’ll need to install an SSL certificate and then migrate your site to HTTPS.

Many hosts now offer free SSL certificates via Let’s Encrypt that you can install with a few clicks, or you can find other free and cheap SSL certificates.

8. Leave the REST API enabled

The WP REST API helps your WordPress core communicate with the various web, desktop, and mobile applications on the internet. This helps WordPress work effectively as a content management system, storing and serving up content to be visible on the internet.

By default, the WP REST API is enabled, but some plugins (especially security plugins) and developers will disable it.

However, if you want to get a perfect WordPress Site Health score, you’ll need to leave the WP REST API enabled. Most plugins or tools that disable the REST API will also give you a setting to leave it enabled.

9. Make sure WP Cron is enabled

Normally, WordPress handles a number of routine tasks such as backing up, publishing posts, or checking for updates. This function is handled by the cron job system, a special technology used by servers to handle scheduled tasks or recurring events. Many plugins also rely on the WordPress cron system to carry out tasks, but sometimes they hog most of the resources.

To check if WP Cron is working, you can use the free WP-Cron Status Checker plugin to get a new dashboard widget that tells you its status:

WP Cron

If it’s not working, you can check if the following line is in your wp-config.php file:

define('DISABLE_WP_CRON', true);

To re-enable WP Cron, you just need to remove that line. Or, if that’s not the issue, you can reach out to your host’s support for more help.

10. Install all the recommended PHP modules

PHP modules play an important role in executing the tasks on the server that make your site run. The WordPress core relies on a list of PHP modules to help it execute tasks. If you don’t have a certain module on your server, WordPress will either have to use a more inefficient method for that task, or it might just remove the functionality.

If you’re missing one of the recommended and required modules, WordPress will tell you which module is missing and ding your Site Health Score:

Missing PHP module in Site Health score

To fix this, ask your host’s support if they can help you to install the module.

Don’t stress about your WordPress Site Health score

While it can be satisfying to see a perfect 100% score in the Site Health area, you don’t need to get a perfect score to have a secure, functioning WordPress site, and some developers have expressed views against this new scoring methodology.

Overall, you should definitely fix the critical issues, and try to implement recommended issues. But don’t stress yourself out if you can’t eliminate every single recommended issue.