You are here: Saotn.org » website

website

Hugo development environment in WSL 2

How to install and configure Hugo for static site development in WSL on Windows 10.

Do you find it too difficult to install Go or Hugo in Windows for your static site development? Have you tried Windows Subsystem for Linux (WSL) 2? Using a default Ubuntu 20.04, it is pretty easy to install Hugo, set up your development environment and configure Hugo to listen on your Ubuntu’s IP address instead of localhost / 127.0.0.1. This makes your Hugo development site accessible for browsers in Windows 10. Neat, right?

Read More »Hugo development environment in WSL 2

How to fix System.Collections.Generic.KeyNotFoundException “The given key was not present in the dictionary” Exception with MySQL Connector/NET and utf8mb4 character set

An System.Collections.Generic.KeyNotFoundException “The given key was not present in the dictionary” can be the result of using a too old MySQL Connector/NET version in your ASP.NET web application. A KeyNotFoundException is thrown when an operation attempts to retrieve an element from a collection using a key that does not exist in that collection. An unsupported character set like utf8mb4 can be such a key, if your Connector/NET doesn’t support this character set. Luckily there is an easy workaround for this.

Read More »How to fix System.Collections.Generic.KeyNotFoundException “The given key was not present in the dictionary” Exception with MySQL Connector/NET and utf8mb4 character set

SSL in WordPress: how to move WordPress to HTTPS? The definitive guide

Having an SSL certificate in your WordPress is the de-facto standard nowadays, did you know that? Google ranks sites having HTTPS higher in their SERP. But in WordPress, how do you configure an SSL certificate and HTTPS URL? You’ll learn the important steps to move WordPress from http to https in this post.

Read More »SSL in WordPress: how to move WordPress to HTTPS? The definitive guide

PHP 5.6 default_charset change may break HTML output

UTF-8 encoding breaks when upgrading PHP 5.6 to PHP 7.0.

An important note for everyone who’s upgrading from PHP 5.4 and PHP 5.5, to PHP 5.6: the PHP default_charset in php.ini changed from “empty” to UTF-8, making UTF-8 the default charset in PHP. This may break HTML output if you try to set a different charset in your HTML head. It may also break functions like htmlentities() and htmlspecialchars. For example:

Read More »PHP 5.6 default_charset change may break HTML output

Conditionally start Application Pools on remote IIS web servers

Start all stopped application pools that have Autostart set to true

Start stopped application pools with AppCmd or PowerShell in a loop. In my routine, I occasionally have to start multiple website application pools when they are in a stopped state. On more than one web server. Being a lazy system administrator, I find it too much work to log on every server. Therefore I start those application pools in a loop. A condition for me to start application pools is that the application pool autostart parameter is set to true. This is because I set autostart to false when I disable hacked websites, and those application pools may not be started until all problems are resolved of course. To start application pools, I use the AppCmd command.

Read More »Conditionally start Application Pools on remote IIS web servers

Check website availability with PHP and cURL

Perform a PHP cURL request to check if your website is up.

Here you’ll find a PHP script to check if your website is up and online available. It uses PHP and cURL. This script comes in handy because website uptime and availability is important, and you want your website to be always online available. If your website is down, it’ll send you an email to notify you about downtime.

Read More »Check website availability with PHP and cURL

Send authenticated SMTP email over TLS from WordPress

How to configure TLS for SMTP email in WordPress. I was suprised WordPress is not able to send email using an SMTP server out-of-the-box. Not to mention using authenticated SMTP or TLS transport for security. A quick Google search showed me multiple plugins to handle this, but I wanted to create something myself. Here is how to override the wp-mail() function and send email using authenticated SMTP and StartTLS from WordPress.

Read More »Send authenticated SMTP email over TLS from WordPress

How to hide the .php file extension with IIS URL Rewrite Module

Extensionless URLs in IIS

Sometimes it’s important to remove -or hide- the file extension of scripts you use. Security by obscurity might be that reason, if you don’t want others to know what script language you are using for your website, or for static site hosts. This example will hide the .php extension using the IIS URL Rewrite module, in a ready to use web.config & .htaccess example.

Read More »How to hide the .php file extension with IIS URL Rewrite Module

Minify JavaScript, CSS and compress images

Fire-and-forget JavaScript and CSS minification and PNG image optimization on the Linux-, Mac OS X and Windows command-line interface. Using OptiPNG and YUI Compressor

Optimize PNG images and minify JavaScript and CSS files, the easy and fast way? With YUI Compressor and OptiPNG on the Windows-, Linux- and macOS command line of course! Compacting HTML, CSS, and JavaScript can speeds up your website because of smaller and faster downloads, parsing, and execution time.

Read More »Minify JavaScript, CSS and compress images

Optimize images for the web in bulk

Optimizing and loss-less compressing images is one of those items that always pops up when analyzing your website with Google PageSpeed Insights. Images have to be loss-less compressed to save many bytes of data and thus bandwidth. This speeds up the download time of your website. But, how do we optimize images for the web? Or, what if I have hundreds of images that needs optimization? Let’s optimize and loss-less compress images in bulk, read on.

Read More »Optimize images for the web in bulk

Add websites and application pools to IIS with PowerShell, in a for loop

How to use PowerShell to create websites and application pools in IIS… A client of the company I work for wanted to quickly add 60 sub-domains to his website. But, the sub-domains had to be created as self contained IIS websites, and running in their own application pools. Luckily, the client wanted 60 consecutive sub-domain names, e.g. “sub01.example.com”, “sub02.example.com”, …, … up till “sub60.example.com”. This made our task a bit easier, because we could easily script this in PowerShell

Read More »Add websites and application pools to IIS with PowerShell, in a for loop