Alternatives to GUID with PHP

GUID stands for Globally Unique Identifier. It is a string of letters and numbers and useful to allow website visitors to access a site without needing a username and password because although the probability that a GUID will be duplicated is not zero, it is close enough to zero to be negligible.

In fact Wikipedia says that you would have to generate 2.71 Quintillion (an 18 digit number) GUIDs to have a 50% probability of a collision.

However a GUID isn’t pretty, they look like 204FA460-65C6-DAB0-C69E-013ECE71F5D0 which can be scary to non-technical users when used in a URL.

Continue reading “Alternatives to GUID with PHP”

Windows 10 April Update and problems printing to shared printer on a Mac

After installing the Windows 10 April update on my laptop I couldn’t print to the shared printer attached to my Mac any more.
I didn’t remember how I originally got the printer working but I already had Bonjour installed. Bonjour is the recommended way of remote printing between Windows and MacOS (download Bonjour from Apple here https://support.apple.com/kb/DL999)

When I tried to find and connect to the remote printer this time I got the message: “Error 1796 You do not have sufficient access to your computer to connect to the printer”.
My account has Admin rights so that shouldn’t have been a problem. I located where the Bonjour executable was found and right clicked to ‘Run as administrator’ but that gave the same message.

Continue reading “Windows 10 April Update and problems printing to shared printer on a Mac”

ServerPilot Pagespeed Message History

To enable Message History in Pagespeed on a server managed with ServerPilot – useful if you need to diagnose if there are any problems. You need to create a global level config file – adding it for a particular vhost isn’t good enough.

Create a file pagespeed.conf in /etc/nginx-sp/http.d

pagespeed on;
pagespeed MessageBufferSize 100000;
pagespeed FileCachePath /var/cache/pagespeed;
pagespeed Statistics on;
pagespeed StatisticsLogging on;
pagespeed LogDir /var/log/pagespeed;

Create the folder to hold the logs at:

mkdir /var/log/pagespeed;
chmod 755 /var/log/pagespeed;
chown www-data /var/log/pagespeed

This enables Pagespeed for all the sites on the server so if there are any that shouldn’t be using it, you’ll need to add pagespeed off; to a config file in that particular vhost folder.

WordPress WooCommerce SagePay mcrypt

WordPress WooCommerce SagePay Form extension https://woocommerce.com/products/sage-pay-form/ requires the PHP mcrypt extension to operate.

If your site uses this extension and one day stops going through the full checkout process be aware of the following:

mcrypt has been deprecated as of PHP 7.1.0 and will be moved to PECL as of PHP 7.2.0 – this is because it relies upon libmcrypt which is dead and unmaintained since 2007 http://php.net/manual/en/intro.mcrypt.php.

Your host may have disabled the mcrypt extension.

I’ve heard that the WooCommerce SagePay Form extension is currently being updated to use openssl_encrypt so there may be an update soon to rectify this.