<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Technical - Spheron1</title>
	<atom:link href="https://www.spheron1.uk/category/technical/feed/" rel="self" type="application/rss+xml" />
	<link>https://www.spheron1.uk</link>
	<description></description>
	<lastBuildDate>Tue, 13 Jan 2026 11:01:44 +0000</lastBuildDate>
	<language>en-GB</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=7.1</generator>
	<item>
		<title>cPanel Dovecot 2.4 upgrade breaking Windows 7 clients</title>
		<link>https://www.spheron1.uk/2026/01/13/cpanel-dovecot-2-4-upgrade-breaking-windows-7-clients/</link>
					<comments>https://www.spheron1.uk/2026/01/13/cpanel-dovecot-2-4-upgrade-breaking-windows-7-clients/#respond</comments>
		
		<dc:creator><![CDATA[digitaldisaster]]></dc:creator>
		<pubDate>Tue, 13 Jan 2026 11:01:44 +0000</pubDate>
				<category><![CDATA[cPanel/WHM]]></category>
		<category><![CDATA[Email]]></category>
		<category><![CDATA[ciphers]]></category>
		<category><![CDATA[cPanel]]></category>
		<category><![CDATA[Diffie-Hellman]]></category>
		<category><![CDATA[Dovecot]]></category>
		<category><![CDATA[Dovecot 2.3]]></category>
		<category><![CDATA[Dovecot 2.4]]></category>
		<category><![CDATA[ECDSA]]></category>
		<category><![CDATA[IMAP]]></category>
		<category><![CDATA[POP3]]></category>
		<category><![CDATA[RSA]]></category>
		<category><![CDATA[SSL]]></category>
		<category><![CDATA[SSL certificate]]></category>
		<category><![CDATA[SSL/TLS]]></category>
		<category><![CDATA[TLS]]></category>
		<category><![CDATA[WHM]]></category>
		<category><![CDATA[Windows 7]]></category>
		<guid isPermaLink="false">https://www.spheron1.uk/?p=5250</guid>

					<description><![CDATA[<p>cPanel recently rolled out an upgrade from Dovecot 2.3 to 2.4 which has accidentally broken old IMAP and POP3 clients, such as those running on Windows 7 as it removes some key configuration needed to support certain SSL/TLS ciphers. For example, a Microsoft Outlook client running on Windows 7 would report: Receiving reported error (0x800CCC1A) Your server does not support&#46;&#46;&#46;</p>
<p>The post <a href="https://www.spheron1.uk/2026/01/13/cpanel-dovecot-2-4-upgrade-breaking-windows-7-clients/">cPanel Dovecot 2.4 upgrade breaking Windows 7 clients</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">cPanel recently rolled out an upgrade from Dovecot 2.3 to 2.4 which has accidentally broken old IMAP and POP3 clients, such as those running on Windows 7 as it removes some key configuration needed to support certain SSL/TLS ciphers.</p>



<p class="wp-block-paragraph">For example, a Microsoft Outlook client running on Windows 7 would report:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow">
<p class="wp-block-paragraph">Receiving reported error (0x800CCC1A) Your server does not support the connection encryption type you have specified. Try changing the encryption method. Contact your mai server administrator or Internet service provider (ISP) for additional assistance.&#8221;</p>
</blockquote>



<p class="has-luminous-vivid-amber-background-color has-background wp-block-paragraph">Despite the minor version number increment, Dovecot 2.4 is a major update which has significant breaking changes to the structure of the configuration files and thus the old configuration files need to be carefully converted in order to work with Dovecot 2.4.<br><br>Dovecot 2.4 should really have been called Dovecot 3.0. I have no idea why Open-Xchange considered a minor version number bump to be appropriate for this release.</p>



<p class="wp-block-paragraph">The default TLS ciphers enabled for Dovecot (both 2.3 and 2.4) on cPanel are:</p>



<ul class="wp-block-list">
<li>ECDHE-ECDSA-AES128-GCM-SHA256</li>



<li>ECDHE-RSA-AES128-GCM-SHA256</li>



<li>ECDHE-ECDSA-AES256-GCM-SHA384</li>



<li>ECDHE-RSA-AES256-GCM-SHA384</li>



<li>ECDHE-ECDSA-CHACHA20-POLY1305</li>



<li>ECDHE-RSA-CHACHA20-POLY1305</li>



<li>DHE-RSA-AES128-GCM-SHA256</li>



<li>DHE-RSA-AES256-GCM-SHA384</li>
</ul>



<p class="wp-block-paragraph">This is almost identical to the very useful <a href="https://wiki.mozilla.org/Security/Server_Side_TLS#Intermediate_compatibility_(recommended)" title="">Mozilla &#8220;Intermediate&#8221; list</a>, except that the DHE-RSA-CHACHA20-POLY1305 cipher is missing.</p>



<p class="wp-block-paragraph">Windows 7 has very poor support for modern cryptography since it went end-of-life in January 2020 and so hasn&#8217;t received any updates for 6 years now.</p>



<p class="wp-block-paragraph">The supported cipher suites advertised in the SSL/TLS handshake by a Windows 7 client device are:</p>



<figure class="wp-block-table"><table class="has-fixed-layout"><tbody><tr><td><strong>IANA name</strong></td><td><strong>OpenSSL name</strong></td></tr><tr><td>TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA384</td><td>ECDHE-RSA-AES256-SHA384</td></tr><tr><td>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA256</td><td>ECDHE-RSA-AES128-SHA256</td></tr><tr><td>TLS_ECDHE_RSA_WITH_AES_256_CBC_SHA</td><td>ECDHE-RSA-AES256-SHA</td></tr><tr><td>TLS_ECDHE_RSA_WITH_AES_128_CBC_SHA</td><td>ECDHE-RSA-AES128-SHA</td></tr><tr><td>TLS_DHE_RSA_WITH_AES_256_GCM_SHA384</td><td>DHE-RSA-AES256-GCM-SHA384</td></tr><tr><td>TLS_DHE_RSA_WITH_AES_128_GCM_SHA256</td><td>DHE-RSA-AES128-GCM-SHA256</td></tr><tr><td>TLS_RSA_WITH_AES_256_GCM_SHA384</td><td>AES256-GCM-SHA384</td></tr><tr><td>TLS_RSA_WITH_AES_128_GCM_SHA256</td><td>AES128-GCM-SHA256</td></tr><tr><td>TLS_ECDHE_ECDSA_WITH_AES_256_GCM_SHA384</td><td>ECDHE-ECDSA-AES256-GCM-SHA384</td></tr><tr><td>TLS_ECDHE_ECDSA_WITH_AES_128_GCM_SHA256</td><td>ECDHE-ECDSA-AES128-GCM-SHA256</td></tr><tr><td>TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA384</td><td>ECDHE-ECDSA-AES256-SHA384</td></tr><tr><td>TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA256</td><td>ECDHE-ECDSA-AES128-SHA256</td></tr><tr><td>TLS_ECDHE_ECDSA_WITH_AES_256_CBC_SHA</td><td>ECDHE-ECDSA-AES256-SHA</td></tr><tr><td>TLS_ECDHE_ECDSA_WITH_AES_128_CBC_SHA</td><td>ECDHE-ECDSA-AES128-SHA</td></tr><tr><td>TLS_RSA_WITH_AES_256_CBC_SHA256</td><td>AES256-SHA256</td></tr><tr><td>TLS_RSA_WITH_AES_128_CBC_SHA256</td><td>AES128-SHA256</td></tr><tr><td>TLS_RSA_WITH_AES_256_CBC_SHA</td><td>AES256-SHA</td></tr><tr><td>TLS_RSA_WITH_AES_128_CBC_SHA</td><td>AES128-SHA</td></tr><tr><td>TLS_DHE_DSS_WITH_AES_256_CBC_SHA256</td><td>DHE-DSS-AES256-SHA256</td></tr><tr><td>TLS_DHE_DSS_WITH_AES_128_CBC_SHA256</td><td>DHE-DSS-AES128-SHA256</td></tr><tr><td>TLS_DHE_DSS_WITH_AES_256_CBC_SHA</td><td>DHE-DSS-AES256-SHA</td></tr><tr><td>TLS_DHE_DSS_WITH_AES_128_CBC_SHA</td><td>DHE-DSS-AES128-SHA</td></tr><tr><td>TLS_RSA_WITH_3DES_EDE_CBC_SHA</td><td>DES-CBC3-SHA</td></tr><tr><td>TLS_DHE_DSS_WITH_3DES_EDE_CBC_SHA</td><td>EDH-DSS-DES-CBC3-SHA</td></tr><tr><td>TLS_RSA_WITH_RC4_128_SHA</td><td>RC4-SHA</td></tr><tr><td>TLS_RSA_WITH_RC4_128_MD5</td><td>RC4-MD5</td></tr></tbody></table></figure>



<p class="wp-block-paragraph">Most of these are now considered insecure and thus are not enabled on the server side.</p>



<p class="wp-block-paragraph">The overlap between the TLS ciphers supported by the client and the TLS ciphers which are allowed on the server side is just four ciphers:</p>



<ul class="wp-block-list">
<li>ECDHE-ECDSA-AES128-GCM-SHA256</li>



<li>ECDHE-ECDSA-AES256-GCM-SHA384</li>



<li>DHE-RSA-AES256-GCM-SHA384</li>



<li>DHE-RSA-AES128-GCM-SHA256</li>
</ul>



<p class="wp-block-paragraph">Unfortunately, the two ECDHE-ECDSA-* ones will only work if you are using ECDSA SSL certificates. If you are using RSA certificates then you can only use the DHE-RSA-* ones.<br>Still, we have TLS ciphers which are supported by both the client and the server so this should be working&#8230; why isn&#8217;t it?</p>



<p class="wp-block-paragraph">Previously under Dovecot 2.3, cPanel had the following configuration in /etc/dovecot/dovecot.conf for the Diffie-Hellman parameters file necessary for the DHE-RSA-* ciphers to function:</p>



<pre class="wp-block-code"><code># SSL DH parameters
# Generate new params with `openssl dhparam -out /etc/dovecot/dh.pem 4096`
# Or migrate from old ssl-parameters.dat file with the command dovecot
# gives on startup when ssl_dh is unset.
ssl_dh = &lt;/etc/dovecot/dh.pem</code></pre>



<p class="wp-block-paragraph">In Dovecot 2.4 this configuration directive changed to &#8220;ssl_server_dh_file&#8221; (see <a href="https://doc.dovecot.org/2.4.2/installation/upgrade/2.3-to-2.4.html#converted-settings">https://doc.dovecot.org/2.4.2/installation/upgrade/2.3-to-2.4.html#converted-settings</a>) and it isn&#8217;t present anywhere in /etc/dovecot/ post-upgrade on cPanel servers.</p>



<p class="has-pale-cyan-blue-background-color has-background wp-block-paragraph">As a random, aside; the old configuration &#8220;ssl_dh&#8221; option value was for the contents of the certificate, which could be read from a file with the redirect. The new &#8220;ssl_server_dh_file&#8221; option takes file path as the value, which Dovecot then reads itself. As such, when moving from 2.3 to 2.4 it&#8217;s important to ensure that you don&#8217;t copy over the less than symbol that precedes the path, otherwise Dovecot will try to read the contents of that file and treat those as the path that it should use.</p>



<p class="wp-block-paragraph">In order to add the configuration for the Diffie-Hellman parameters file to the Dovecot 2.4 configuration yourself, you will need to make use of the cPanel configuration file templating system, otherwise any manual changes to the configuration files in /etc/dovecot/ will get overwritten the next time cPanel regenerates them.</p>



<p class="wp-block-paragraph">First check if the /var/cpanel/templates/dovecot/main.local file already exists (for example if you already have custom Dovecot configuration or if you are using Imunify360). If not, then copy the file /var/cpanel/templates/dovecot/main.default to /var/cpanel/templates/dovecot/main.local and edit it in your favour editor to add the following configuration to the bottom of the file:</p>



<pre class="wp-block-code"><code># Required for DHE-RSA-AES128-GCM-SHA256 and DHE-RSA-AES256-GCM-SHA384 ciphers needed for Windows 7 clients to work
ssl_server_dh_file = /etc/dovecot/dh.pem</code></pre>



<p class="wp-block-paragraph">Once you have modified the /var/cpanel/templates/dovecot/main.local file, you can run &#8220;/scripts/builddovecotconf&#8221; to regenerate the configuration files from your new template, followed by &#8220;/scripts/restartsrv_dovecot&#8221; to restart the Dovecot service.</p>



<p class="wp-block-paragraph">IMAP and POP3 clients running on old devices such as Windows 7 should once again be able to connect as the DHE-RSA-* TLS ciphers that they rely on are functioning again.</p><p>The post <a href="https://www.spheron1.uk/2026/01/13/cpanel-dovecot-2-4-upgrade-breaking-windows-7-clients/">cPanel Dovecot 2.4 upgrade breaking Windows 7 clients</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.spheron1.uk/2026/01/13/cpanel-dovecot-2-4-upgrade-breaking-windows-7-clients/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Acronis Cyber Infrastructure/Virtuozzo Hybrid Infrastructure S3 admin command line</title>
		<link>https://www.spheron1.uk/2025/12/10/acronis-cyber-infrastructure-virtuozzo-hybrid-infrastructure-s3-admin-command-line/</link>
					<comments>https://www.spheron1.uk/2025/12/10/acronis-cyber-infrastructure-virtuozzo-hybrid-infrastructure-s3-admin-command-line/#respond</comments>
		
		<dc:creator><![CDATA[digitaldisaster]]></dc:creator>
		<pubDate>Wed, 10 Dec 2025 17:04:23 +0000</pubDate>
				<category><![CDATA[Technical]]></category>
		<category><![CDATA[ACI]]></category>
		<category><![CDATA[Acronis]]></category>
		<category><![CDATA[Acronis Cyber Infrastructure]]></category>
		<category><![CDATA[ostor]]></category>
		<category><![CDATA[S3]]></category>
		<category><![CDATA[VHI]]></category>
		<category><![CDATA[Virtuozzo]]></category>
		<category><![CDATA[Virtuozzo Hybrid Infrastructure]]></category>
		<category><![CDATA[Virtuozzo Hybrid Infrastructure (VHI]]></category>
		<guid isPermaLink="false">https://www.spheron1.uk/?p=4947</guid>

					<description><![CDATA[<p>Acronis Cyber Infrastructure (ACI)/Virtuozzo Hybrid Infrastructure (VHI) provides a command line interface (CLI) utility for administering S3 accounts, users, buckets etc. called &#8220;ostor-s3-admin&#8220;, however it isn&#8217;t the most intuitive CLI tool to use and the documentation for this is both somewhat sparse and rather scattered around in multiple different places. The first issue you will probably run into when trying&#46;&#46;&#46;</p>
<p>The post <a href="https://www.spheron1.uk/2025/12/10/acronis-cyber-infrastructure-virtuozzo-hybrid-infrastructure-s3-admin-command-line/">Acronis Cyber Infrastructure/Virtuozzo Hybrid Infrastructure S3 admin command line</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">Acronis Cyber Infrastructure (ACI)/Virtuozzo Hybrid Infrastructure (VHI) provides a command line interface (CLI) utility for administering S3 accounts, users, buckets etc. called &#8220;<em>ostor-s3-admin</em>&#8220;, however it isn&#8217;t the most intuitive CLI tool to use and the documentation for this is both somewhat sparse and rather scattered around in multiple different places.</p>



<p class="wp-block-paragraph">The first issue you will probably run into when trying to use the &#8220;<em>ostor-s3-admin</em>&#8221; command is the following error message: </p>



<pre class="wp-block-code"><code>Volume id (-V) must be specified</code></pre>



<p class="wp-block-paragraph">You can get a list of all of your volume IDs by running &#8220;<em>ostor-ctl get-config -V</em>&#8220;. This will give you something like the following:</p>



<pre class="wp-block-code"><code>VOL_ID             TYPE     STATE
0100000000000002   OBJ     READY</code></pre>



<p class="wp-block-paragraph">You can then specify the appropriate volume ID with the &#8220;<em>-V</em>&#8221; argument to the &#8220;<em>ostor-s3-admin</em>&#8221; command.</p>



<p class="wp-block-paragraph">Another common error that you can run into is something along the lines of:</p>



<pre class="wp-block-code"><code>Request failed due to internal error
Command=list-user-accounts failed with error=8(Requested object not found)</code></pre>



<p class="wp-block-paragraph">Although the exact message that you receive will vary depending upon the command that you are trying to run.</p>



<p class="wp-block-paragraph">This error is caused by not specifying a user account to execute the command as. I resolved this by grabbing the main admin account user ID from the ACI/VHI S3 admin web interface and passing that with the &#8220;<em>-i</em>&#8221; argument.<br>Alternatively you can use &#8220;<em>-e</em>&#8221; instead of &#8220;<em>-i</em>&#8221; and pass the email address of the user account that you want to run the command as.</p>



<p class="wp-block-paragraph">Another rather vague and unhelpful error message that you may receive from &#8220;<em>ostor-s3-admin</em>&#8221; is:</p>



<pre class="wp-block-code"><code>Bad user management cmd</code></pre>



<p class="wp-block-paragraph">This actually means that you have the arguments before the command &#8211; the &#8220;<em>ostor-s3-admin</em>&#8221; utility expects to receive the command (e.g. &#8220;<em>list-user-accounts</em>&#8221; or &#8220;<em>list-all-buckets</em>&#8220;) <em>before</em> the arguments such as the volume ID and user ID/email.</p>



<p class="wp-block-paragraph">So for example the full commands should be run as:</p>



<pre class="wp-block-code"><code>ostor-s3-admin list-all-buckets -V volumeid -i userid</code></pre>



<p class="wp-block-paragraph">Or:</p>



<pre class="wp-block-code"><code>ostor-s3-admin delete-bucket -V volumeid -i userid -b bucketname</code></pre>



<p class="wp-block-paragraph">Obviously you will need to replace &#8220;<em>volumeid</em>&#8220;, &#8220;<em>userid</em>&#8221; and &#8220;<em>bucketname</em>&#8221; with the respective values.</p>



<p class="wp-block-paragraph">The &#8220;<em>delete-bucket</em>&#8221; command is a very handy one that seems to be missing from a lot of the ACI/VHI S3 documentation &#8211; it will delete the specified bucket along with all of the contents, unlike the admin web interface which expects you to empty the bucket yourself first. This does however take a very long time to run on large buckets.</p><p>The post <a href="https://www.spheron1.uk/2025/12/10/acronis-cyber-infrastructure-virtuozzo-hybrid-infrastructure-s3-admin-command-line/">Acronis Cyber Infrastructure/Virtuozzo Hybrid Infrastructure S3 admin command line</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.spheron1.uk/2025/12/10/acronis-cyber-infrastructure-virtuozzo-hybrid-infrastructure-s3-admin-command-line/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ARM64 timescaledb-tune on macOS</title>
		<link>https://www.spheron1.uk/2025/11/01/arm64-timescaledb-tune-on-macos/</link>
					<comments>https://www.spheron1.uk/2025/11/01/arm64-timescaledb-tune-on-macos/#respond</comments>
		
		<dc:creator><![CDATA[digitaldisaster]]></dc:creator>
		<pubDate>Sat, 01 Nov 2025 12:02:56 +0000</pubDate>
				<category><![CDATA[PostgreSQL]]></category>
		<category><![CDATA[ARM64]]></category>
		<category><![CDATA[Brew]]></category>
		<category><![CDATA[Go]]></category>
		<category><![CDATA[Golang]]></category>
		<category><![CDATA[Homebrew]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[macOS]]></category>
		<category><![CDATA[Postgres]]></category>
		<category><![CDATA[psql]]></category>
		<category><![CDATA[Rosetta]]></category>
		<category><![CDATA[Rosetta 2]]></category>
		<category><![CDATA[Tiger Data]]></category>
		<category><![CDATA[TimescaleDB]]></category>
		<category><![CDATA[timescaledb-tune]]></category>
		<category><![CDATA[x86-64]]></category>
		<guid isPermaLink="false">https://www.spheron1.uk/?p=4582</guid>

					<description><![CDATA[<p>Despite Apple having transitioned their desktop and laptop devices from x86-64 to ARM64 with the M1 processor and macOS 11 Big Sur in late 2020, TimescaleDB still don&#8217;t provide ARM64 builds of their &#8220;timescaledb-tune&#8221; utility on macOS in November 2025 through either their official installation method using a Homebrew tap or in the binaries released in the GitHub repository. Trying&#46;&#46;&#46;</p>
<p>The post <a href="https://www.spheron1.uk/2025/11/01/arm64-timescaledb-tune-on-macos/">ARM64 timescaledb-tune on macOS</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">Despite Apple having transitioned their desktop and laptop devices from x86-64 to ARM64 with the M1 processor and macOS 11 Big Sur in late 2020, TimescaleDB still don&#8217;t provide ARM64 builds of their &#8220;timescaledb-tune&#8221; utility on macOS in November 2025 through either their <a href="https://docs.tigerdata.com/self-hosted/latest/install/installation-macos/" title="">official installation method using a Homebrew tap</a> or in the <a href="https://github.com/timescale/timescaledb-tune/releases" title="">binaries released in the GitHub repository</a>.</p>



<p class="wp-block-paragraph">Trying to use the &#8220;timescaledb-tune&#8221; utility (a key part of the installation process for TimescaleDB) on any Mac made in the last 5 years will result in an error unless you have the Rosetta 2 dynamic binary translation feature installed:</p>



<pre class="wp-block-code"><code>unable to execute /opt/homebrew/bin/timescaledb-tune: Bad CPU type in executable</code></pre>



<p class="wp-block-paragraph">This is particularly weird as the TimescaleDB library itself is ARM64.</p>



<p class="wp-block-paragraph">Given that Tiger Data have had 5 years to ship a native ARM64 binary for their &#8220;timescaledb-tune&#8221; utility, it is rather disappointing to see that they are still relying on people installing the optional Rosetta 2 dynamic binary translation feature on their devices. This requirement also doesn&#8217;t seem to be documented anywhere that I can find.</p>



<p class="wp-block-paragraph">Apple are going to be removing most of Rosetta 2 from macOS 28 in 2027, so hopefully Tiger Data will get around to shipping an ARM64 binary before then.</p>



<p class="wp-block-paragraph">In the meantime, we can manually build an ARM64 binary for the &#8220;timescaledb-tune&#8221; utility from source as follows:</p>



<ol class="wp-block-list">
<li>Download the Go installer from <a href="https://go.dev/dl/">https://go.dev/dl/</a> using the &#8220;Apple macOS (ARM64)&#8221; option and run through the installer steps.</li>



<li>Open up your preferred terminal app and run &#8220;go install github.com/timescale/timescaledb-tune/cmd/timescaledb-tune@main&#8221;.</li>



<li>You will find the ARM64 binary for the &#8220;timescaledb-tune&#8221; utility in ~/go/bin/timescaledb-tune</li>
</ol>



<p class="wp-block-paragraph">I really don&#8217;t understand why Tiger Data aren&#8217;t shipping an ARM64 binary for their &#8220;timescaledb-tune&#8221; utility, given how ridiculously simple it is to build one!</p><p>The post <a href="https://www.spheron1.uk/2025/11/01/arm64-timescaledb-tune-on-macos/">ARM64 timescaledb-tune on macOS</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.spheron1.uk/2025/11/01/arm64-timescaledb-tune-on-macos/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>APT/DPKG errors for shim-signed package</title>
		<link>https://www.spheron1.uk/2025/05/07/apt-dpkg-errors-for-shim-signed-package/</link>
					<comments>https://www.spheron1.uk/2025/05/07/apt-dpkg-errors-for-shim-signed-package/#respond</comments>
		
		<dc:creator><![CDATA[digitaldisaster]]></dc:creator>
		<pubDate>Wed, 07 May 2025 10:15:14 +0000</pubDate>
				<category><![CDATA[Ubuntu and Debian]]></category>
		<category><![CDATA[APT]]></category>
		<category><![CDATA[debconf]]></category>
		<category><![CDATA[dpkg]]></category>
		<category><![CDATA[EFI]]></category>
		<category><![CDATA[ESP]]></category>
		<category><![CDATA[GRUB]]></category>
		<category><![CDATA[shim-signed]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<category><![CDATA[UEFI]]></category>
		<guid isPermaLink="false">https://www.spheron1.uk/?p=2299</guid>

					<description><![CDATA[<p>When running a routine &#8220;apt update&#8221; on an Ubuntu server, I was getting the following error: The bizarre thing here is that the /dev/nvme1n1p1 device is nothing to do with the UEFI ESP, that lives on /dev/sdi1 as this particular server can&#8217;t boot from NVMe devices and so uses a small USB stick for /boot/efi and /boot instead. The /dev/sdi1&#46;&#46;&#46;</p>
<p>The post <a href="https://www.spheron1.uk/2025/05/07/apt-dpkg-errors-for-shim-signed-package/">APT/DPKG errors for shim-signed package</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">When running a routine &#8220;<code>apt update</code>&#8221; on an Ubuntu server, I was getting the following error:</p>



<pre class="wp-block-code"><code>Setting up shim-signed (1.51.4+15.8-0ubuntu1) ...
Installing grub to /boot/efi.
Installing for x86_64-efi platform.
Installation finished. No error reported.
mount: /var/lib/grub/esp: /dev/nvme1n1p1 already mounted or mount point busy.
dpkg: error processing package shim-signed (--configure):
 installed shim-signed package post-installation script subprocess returned error exit status 32
Errors were encountered while processing:
 shim-signed
needrestart is being skipped since dpkg has failed
E: Sub-process /usr/bin/dpkg returned an error code (1)</code></pre>



<p class="wp-block-paragraph">The bizarre thing here is that the <em>/dev/nvme1n1p1</em> device is nothing to do with the UEFI ESP, that lives on <em>/dev/sdi1</em> as this particular server can&#8217;t boot from NVMe devices and so uses a small USB stick for <em>/boot/efi</em> and <em>/boot</em> instead.</p>



<p class="wp-block-paragraph">The <em>/dev/sdi1</em> device was mounted on <em>/boot/efi </em>as expected, and the UUID listed in <em>/etc/fstab</em> was correct, so initially I wasn&#8217;t sure where the reference to <em>/dev/nvme1n1p1</em> for the UEFI ESP was coming from.<br>After a bit of digging I found that this was in fact caused by the <em>/var/cache/debconf/config.dat</em> file, which contained the following entry:</p>



<pre class="wp-block-code"><code>Name: grub-efi/install_devices
Template: grub-efi/install_devices
Value: /dev/disk/by-id/usb-SanDisk_Ultra_0401d75aeb6cd405701a2711e62657aae5100e05183ca1b9d69275564cee2e887ef5000000000000000000006c97162200805e188a5581075cac9e0f-0:0-part1, /dev/disk/by-id/nvme-eui.0000000001000000e4d25c49119f5401-part1, /dev/disk/by-id/nvme-eui.0000000001000000e4d25cb9029f5401-part1
Owners: grub-common, grub-efi-amd64, grub-pc
Flags: seen
Variables:
 CHOICES = /dev/nvme1n1p1 (1127 MB; ) on 512110 MB INTEL SSDPEKNU512GZ, /dev/nvme0n1p1 (1127 MB; ) on 512110 MB INTEL SSDPEKNU512GZ, /dev/sdi1 (1127 MB; /boot/efi) on 30765 MB Ultra
 RAW_CHOICES = /dev/disk/by-id/nvme-eui.0000000001000000e4d25c49119f5401-part1, /dev/disk/by-id/nvme-eui.0000000001000000e4d25cb9029f5401-part1, /dev/disk/by-id/usb-SanDisk_Ultra_0401d75aeb6cd405701a2711e62657aae5100e05183ca1b9d69275564cee2e887ef5000000000000000000006c97162200805e188a5581075cac9e0f-0:0-part1</code></pre>



<p class="wp-block-paragraph">I ran the following command to explicitly set it to the UUID of the filesystem on the <em>/dev/sdi1</em> device:</p>



<pre class="wp-block-code"><code>echo "grub-efi-amd64 grub-efi/install_devices multiselect /dev/disk/by-uuid/47E1-19C4" | debconf-set-selections</code></pre>



<p class="wp-block-paragraph">Now the <em>/var/cache/debconf/config.dat</em> file contains:</p>



<pre class="wp-block-code"><code>Name: grub-efi/install_devices
Template: grub-efi/install_devices
Value: /dev/disk/by-uuid/47E1-19C4
Owners: grub-common, grub-efi-amd64, grub-pc
Flags: seen
Variables:
 CHOICES = /dev/nvme1n1p1 (1127 MB; ) on 512110 MB INTEL SSDPEKNU512GZ, /dev/nvme0n1p1 (1127 MB; ) on 512110 MB INTEL SSDPEKNU512GZ, /dev/sdi1 (1127 MB; /boot/efi) on 30765 MB Ultra
 RAW_CHOICES = /dev/disk/by-id/nvme-eui.0000000001000000e4d25c49119f5401-part1, /dev/disk/by-id/nvme-eui.0000000001000000e4d25cb9029f5401-part1, /dev/disk/by-id/usb-SanDisk_Ultra_0401d75aeb6cd405701a2711e62657aae5100e05183ca1b9d69275564cee2e887ef5000000000000000000006c97162200805e188a5581075cac9e0f-0:0-part1</code></pre>



<p class="wp-block-paragraph">After making this change, APT is happy again:</p>



<pre class="wp-block-code"><code>Setting up shim-signed (1.51.4+15.8-0ubuntu1) ...
Installing grub to /boot/efi.
Installing for x86_64-efi platform.
Installation finished. No error reported.</code></pre>



<p class="wp-block-paragraph">I think this confusion was ultimately caused by some stray ESP partitions on the NVMe devices leftover from a previous attempt to install Ubuntu on this server.</p><p>The post <a href="https://www.spheron1.uk/2025/05/07/apt-dpkg-errors-for-shim-signed-package/">APT/DPKG errors for shim-signed package</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.spheron1.uk/2025/05/07/apt-dpkg-errors-for-shim-signed-package/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Removing APNs certificates in cPanel</title>
		<link>https://www.spheron1.uk/2025/04/24/removing-apns-certificates-in-cpanel/</link>
					<comments>https://www.spheron1.uk/2025/04/24/removing-apns-certificates-in-cpanel/#respond</comments>
		
		<dc:creator><![CDATA[digitaldisaster]]></dc:creator>
		<pubDate>Thu, 24 Apr 2025 09:00:00 +0000</pubDate>
				<category><![CDATA[cPanel/WHM]]></category>
		<category><![CDATA[APNs]]></category>
		<category><![CDATA[Apple]]></category>
		<category><![CDATA[Apple Mac OS X]]></category>
		<category><![CDATA[Apple macOS]]></category>
		<category><![CDATA[Apple Mail]]></category>
		<category><![CDATA[cPanel]]></category>
		<category><![CDATA[iPad]]></category>
		<category><![CDATA[iPhone]]></category>
		<category><![CDATA[WHM]]></category>
		<guid isPermaLink="false">https://www.spheron1.uk/?p=2976</guid>

					<description><![CDATA[<p>For many years cPanel has provided support for push notifications on Apple devices for IMAP, CalDAV and CardDAV using the Apple Push Notification service (APNs).In order to set this up, you need to provide APNs certificates for com.apple.mail, com.apple.calendar and com.apple.contact from Apple, which can be installed Service Configuration -> Manage Service SSL Certificates -> iOS Mail Push Notifications (APNs)&#46;&#46;&#46;</p>
<p>The post <a href="https://www.spheron1.uk/2025/04/24/removing-apns-certificates-in-cpanel/">Removing APNs certificates in cPanel</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">For many years cPanel has provided support for push notifications on Apple devices for IMAP, CalDAV and CardDAV using the Apple Push Notification service (APNs).<br>In order to set this up, you need to provide APNs certificates for com.apple.mail, com.apple.calendar and com.apple.contact from Apple, which can be installed Service Configuration -> Manage Service SSL Certificates -> iOS Mail Push Notifications (APNs) in WHM.</p>



<p class="wp-block-paragraph">Traditionally you needed an old copy of macOS Server in order to get these APNs certificates, but it was also possible to obtain the certificates using third party scripts such as <a href="https://github.com/scintill/macos-server-apns-certs">https://github.com/scintill/macos-server-apns-certs</a> which had reverse engineered the Apple APIs for issuing certificates.<br>Unfortunately, in October 2024 <a href="https://support.apple.com/en-us/101601" title="">Apple discontinued this API</a> and so it was no longer possible to issue new APNs certificates for com.apple.mail, com.apple.calendar and com.apple.contact.</p>



<p class="wp-block-paragraph">Whilst it is annoying that we can&#8217;t provide push notifications to Apple users anymore thanks to these changes, this actually becomes a service affecting problem when these certificates expire as it causes any cPanel servers still using the old Calendar and Contacts Server (CCS) plugin (which behind the scenes is the old open source <a href="https://github.com/apple/ccs-calendarserver" title="">Apple/Darwin Calendar and Contacts Server</a>) to break as the &#8220;cpanel-ccs&#8221; service will stop and refuse to start with a message about the expired APNs certificates:</p>



<pre class="wp-block-code"><code>-- Unit cpanel-ccs.service has begun starting up.
Apr 22 17:57:34 myserverhostname.com ccs_init&#91;24103]: Using /opt/cpanel-ccs/.develop/virtualenv/bin/python as Python
Apr 22 17:57:34 myserverhostname.com ccs_init&#91;24103]: Starting server...
Apr 22 17:57:34 myserverhostname.com ccs_init&#91;24103]: /opt/cpanel-ccs/bin/caldavd  -f /opt/cpanel-ccs/conf/caldavd-dev.plist -P caldav -t Combined
Apr 22 17:57:36 myserverhostname.com ccs_init&#91;24103]: Reading configuration from file: /opt/cpanel-ccs/conf/caldavd-dev.plist
Apr 22 17:57:36 myserverhostname.com ccs_init&#91;24103]: APNS certificate expired /var/cpanel/ssl/caldav_apns/cert.pem
Apr 22 17:57:36 myserverhostname.com systemd&#91;1]: cpanel-ccs.service: control process exited, code=exited status=1
Apr 22 17:57:36 myserverhostname.com systemd&#91;1]: Failed to start Apple Calendar Server.
-- Subject: Unit cpanel-ccs.service has failed</code></pre>



<p class="wp-block-paragraph">Frustratingly, cPanel doesn&#8217;t provide a way to remove an existing APNs certificate, only to install new ones&#8230; given that no new APNs certificates can be issued, this leaves us rather stuck!<br>Sadly this kind of lack of attention to detail for basic management tasks is common throughout cPanel.</p>



<p class="wp-block-paragraph">Even more frustratingly, cPanel seem to have removed all of their documentation about the APNs feature,  so the only evidence that it ever existed are some very old posts on their badly mangled forum.</p>



<p class="wp-block-paragraph">After a bit of poking around, I managed to find that you can manually remove the /var/cpanel/ssl/*apns/*.pem* certificate files and then update the CCS config in /opt/cpanel-ccs/conf/caldavd-dev.plist to remove any mention of them with the following commands:</p>



<pre class="wp-block-code"><code>rm -f /var/cpanel/ssl/*apns/*.pem*
/opt/cpanel-ccs/bin/rebuildccsconfig
systemctl restart cpanel-ccs.service</code></pre>



<p class="wp-block-paragraph">After this, the  &#8220;cpanel-ccs&#8221; service will run normally again so CalDAV and CardDAV services are restored for all users.</p>



<p class="wp-block-paragraph">The one last thing to do is go to Service Configuration -> Service Manager in WHM and disable &#8220;APNSPush&#8221; under &#8220;tailwatchd&#8221;.</p><p>The post <a href="https://www.spheron1.uk/2025/04/24/removing-apns-certificates-in-cpanel/">Removing APNs certificates in cPanel</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.spheron1.uk/2025/04/24/removing-apns-certificates-in-cpanel/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Sendmail on Plesk &#8211; user is not allowed to send mail</title>
		<link>https://www.spheron1.uk/2020/05/28/sendmail-on-plesk-user-is-not-allowed-to-send-mail/</link>
					<comments>https://www.spheron1.uk/2020/05/28/sendmail-on-plesk-user-is-not-allowed-to-send-mail/#respond</comments>
		
		<dc:creator><![CDATA[digitaldisaster]]></dc:creator>
		<pubDate>Thu, 28 May 2020 13:59:11 +0000</pubDate>
				<category><![CDATA[Plesk]]></category>
		<guid isPermaLink="false">https://www.spheron1.uk/?p=989</guid>

					<description><![CDATA[<p>I recently ran into a strange problem on a Plesk server where one subscription was inexplicably unable to send email using sendmail (which is what the PHP mail() function uses). The following was being logged in /var/logs/maillog for each attempt: plesk sendmail[1628571]: handlers_stderr: ERROR:__main__:Rejecting message: system user uid='&#60;user ID>&#8217; is not allowed to send mailplesk sendmail[1628571]: handlers_stderr: DATA REPLY:554:5.7.0 Your&#46;&#46;&#46;</p>
<p>The post <a href="https://www.spheron1.uk/2020/05/28/sendmail-on-plesk-user-is-not-allowed-to-send-mail/">Sendmail on Plesk – user is not allowed to send mail</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">I recently ran into a strange problem on a Plesk server where one subscription was inexplicably unable to send email using sendmail (which is what the PHP mail() function uses).</p>



<p class="wp-block-paragraph">The following was being logged in /var/logs/maillog for each attempt:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>plesk sendmail[1628571]: handlers_stderr: ERROR:__main__:Rejecting message: system user uid='&lt;user ID>&#8217; is not allowed to send mail<br>plesk sendmail[1628571]: handlers_stderr: DATA REPLY:554:5.7.0 Your message could not be sent. The user &lt;user name> is not allowed to send email.<br>plesk sendmail[1628571]: handlers_stderr: REJECT<br>plesk sendmail[1628571]: REJECT during call &#8216;limit-out&#8217; handler</p></blockquote>



<p class="wp-block-paragraph">When calling sendmail from the command line, logged in as the user in question, I got:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>Mail handler &#8216;limit-out&#8217; said: REPLY:554:5.7.0 Your message could not be sent. The user logbookloans247 is not allowed to send email.</p></blockquote>



<p class="wp-block-paragraph">Plesk have a particularly useless knowledge base article which says that this is due to the mail service being disabled for the domain; https://support.plesk.com/hc/en-us/articles/360002410214-Unable-to-send-an-email-via-Wordpress-Rejecting-message-system-user-uid-xx-is-not-allowed-to-send-mail</p>



<p class="wp-block-paragraph">This is nonsense &#8211; disabling the mail service is routine when email for a domain is hosted externally and so the server shouldn&#8217;t act as the final destination for email to this domain so as not to cause problems for any locally generated email destined for that domain.<br>Just to double check, I enabled the mail service on the domain, but unsurprisingly the problem persisted.</p>



<p class="wp-block-paragraph">I checked several other Plesk servers and there were no other occurrences of this message in the mail logs, so this appeared to be an account specific problem.<br>I therefore tried fiddling with the outbound mail limits for the domain and the subscription, but no luck.</p>



<p class="wp-block-paragraph">Eventually I stumbled on some users on the Plesk forums having a similar but unrelated problem, however this led me to the <em>/usr/local/psa/admin/sbin/mailmng-outgoing</em> command and through a bit of experimentation I found that the system user seemed to be missing, which I was able to add with the following command:</p>



<pre class="wp-block-preformatted">/usr/local/psa/admin/sbin/mailmng-outgoing --add-sysuser --main-domain-name=&lt;domain name> --sysuser=&lt;system user></pre>



<p class="wp-block-paragraph">After doing this, sendmail and thus mail() worked as normal.</p><p>The post <a href="https://www.spheron1.uk/2020/05/28/sendmail-on-plesk-user-is-not-allowed-to-send-mail/">Sendmail on Plesk – user is not allowed to send mail</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.spheron1.uk/2020/05/28/sendmail-on-plesk-user-is-not-allowed-to-send-mail/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Changing the locale in Ubuntu Server</title>
		<link>https://www.spheron1.uk/2019/04/03/979/</link>
					<comments>https://www.spheron1.uk/2019/04/03/979/#respond</comments>
		
		<dc:creator><![CDATA[digitaldisaster]]></dc:creator>
		<pubDate>Wed, 03 Apr 2019 19:58:48 +0000</pubDate>
				<category><![CDATA[cPanel/WHM]]></category>
		<category><![CDATA[Mac OS X]]></category>
		<category><![CDATA[Ubuntu and Debian]]></category>
		<category><![CDATA[Apple Mac OS X]]></category>
		<category><![CDATA[Apple macOS]]></category>
		<category><![CDATA[cPanel]]></category>
		<category><![CDATA[locale]]></category>
		<category><![CDATA[macOS]]></category>
		<category><![CDATA[perl]]></category>
		<category><![CDATA[SSH]]></category>
		<category><![CDATA[Ubuntu]]></category>
		<guid isPermaLink="false">https://www.spheron1.uk/?p=979</guid>

					<description><![CDATA[<p>When logging into any cPanel server via SSH from an Ubuntu jump server I was seeing some strange warnings from Perl which I didn&#8217;t see when logging in from my laptop running macOS: perl: warning: Setting locale failed. perl: warning: Please check that your locale settings: LANGUAGE = (unset), LC_ALL = (unset), LANG = &#8220;C.UTF-8&#8221; are supported and installed on&#46;&#46;&#46;</p>
<p>The post <a href="https://www.spheron1.uk/2019/04/03/979/">Changing the locale in Ubuntu Server</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></description>
										<content:encoded><![CDATA[<p class="wp-block-paragraph">When logging into any cPanel server via SSH from an Ubuntu jump server I was seeing some strange warnings from Perl which I didn&#8217;t see when logging in from my laptop running macOS:</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>perl: warning: Setting locale failed.<br> perl: warning: Please check that your locale settings:<br>     LANGUAGE = (unset),<br>     LC_ALL = (unset),<br>     LANG = &#8220;C.UTF-8&#8221;<br>     are supported and installed on your system.<br> perl: warning: Falling back to the standard locale (&#8220;C&#8221;).<br> perl: warning: Setting locale failed.<br> perl: warning: Please check that your locale settings:<br>     LANGUAGE = (unset),<br>     LC_ALL = (unset),<br>     LANG = &#8220;C.UTF-8&#8221;<br>     are supported and installed on your system.<br> perl: warning: Falling back to the standard locale (&#8220;C&#8221;).<br> perl: warning: Setting locale failed.<br> perl: warning: Please check that your locale settings:<br>     LANGUAGE = (unset),<br>     LC_ALL = (unset),<br>     LANG = &#8220;C.UTF-8&#8221;<br>     are supported and installed on your system.<br> perl: warning: Falling back to the standard locale (&#8220;C&#8221;).</p></blockquote>



<p class="wp-block-paragraph">After a quick rummage, I found that the reason was that the &#8220;<em>LANG</em>&#8221; environment variable on my laptop was defaulting to &#8220;en_GB.UTF-8&#8221;, whilst on the Ubuntu jump server it was &#8220;C.UTF-8&#8221;.<br></p>



<p class="wp-block-paragraph">The cPanel server runs some Perl stuff when bash starts and if it doesn&#8217;t like your locale settings, then it spits out these warnings.<br></p>



<p class="wp-block-paragraph">The &#8220;<em>LANG</em>&#8221; environment variable is part of the locale system and so the best way to fix this is to update the locale settings configured on the Ubuntu jump server.</p>



<p class="wp-block-paragraph">By default, SSH on both macOS and Ubuntu is configured to send the local &#8220;<em>LANG&#8221;</em> and &#8220;<em>LC_*&#8221;</em> environment variables used for locale settings to the remote system.</p>



<p class="wp-block-paragraph">You can use the &#8220;<em>locale</em>&#8221; command to see your current locale settings as well as &#8220;<em>locale -a</em>&#8221; to see installed locales.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>$ locale<br> LANG=C.UTF-8<br> LANGUAGE=<br> LC_CTYPE=&#8221;C.UTF-8&#8243;<br> LC_NUMERIC=&#8221;C.UTF-8&#8243;<br> LC_TIME=&#8221;C.UTF-8&#8243;<br> LC_COLLATE=&#8221;C.UTF-8&#8243;<br> LC_MONETARY=&#8221;C.UTF-8&#8243;<br> LC_MESSAGES=&#8221;C.UTF-8&#8243;<br> LC_PAPER=&#8221;C.UTF-8&#8243;<br> LC_NAME=&#8221;C.UTF-8&#8243;<br> LC_ADDRESS=&#8221;C.UTF-8&#8243;<br> LC_TELEPHONE=&#8221;C.UTF-8&#8243;<br> LC_MEASUREMENT=&#8221;C.UTF-8&#8243;<br> LC_IDENTIFICATION=&#8221;C.UTF-8&#8243;<br> LC_ALL=</p><p>$ locale -a<br>  C<br>  C.UTF-8<br>  POSIX<br>  en_US.utf8</p></blockquote>



<p class="wp-block-paragraph">In my case I wanted to use en_GB.utf8, which wasn&#8217;t installed. You can use the &#8220;<em>locale-gen</em>&#8221; command to generate locales, but they are also provided in official Ubuntu packages , so I installed the &#8220;<em>language-pack-en</em>&#8221; package from the Ubuntu repositories using APT.<br>This added several English locales and then I could reconfigure Ubuntu to use the one that I needed.</p>



<blockquote class="wp-block-quote is-layout-flow wp-block-quote-is-layout-flow"><p>$ apt-get install language-pack-en<br> Reading package lists… Done<br> Building dependency tree<br> Reading state information… Done<br> The following additional packages will be installed:<br>   language-pack-en-base<br> The following NEW packages will be installed:<br>   language-pack-en language-pack-en-base<br> 0 upgraded, 2 newly installed, 0 to remove and 3 not upgraded.<br> Need to get 420 kB of archives.<br> After this operation, 3756 kB of additional disk space will be used.<br> Do you want to continue? [Y/n] y<br> Get:1 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 language-pack-en-base all 1:18.04+20180712 [419 kB]<br> Get:2 http://archive.ubuntu.com/ubuntu bionic-updates/main amd64 language-pack-en all 1:18.04+20180712 [1904 B]<br> Fetched 420 kB in 0s (3606 kB/s)<br> Selecting previously unselected package language-pack-en-base.<br> (Reading database … 50814 files and directories currently installed.)<br> Preparing to unpack …/language-pack-en-base_1%3a18.04+20180712_all.deb …<br> Unpacking language-pack-en-base (1:18.04+20180712) …<br> Selecting previously unselected package language-pack-en.<br> Preparing to unpack …/language-pack-en_1%3a18.04+20180712_all.deb …<br> Unpacking language-pack-en (1:18.04+20180712) …<br> Setting up language-pack-en (1:18.04+20180712) …<br> Setting up language-pack-en-base (1:18.04+20180712) …<br> Generating locales (this might take a while)…<br>   en_AG.UTF-8… done<br>   en_AU.UTF-8… done<br>   en_BW.UTF-8… done<br>   en_CA.UTF-8… done<br>   en_DK.UTF-8… done<br>   en_GB.UTF-8… done<br>   en_HK.UTF-8… done<br>   en_IE.UTF-8… done<br>   en_IL.UTF-8… done<br>   en_IN.UTF-8… done<br>   en_NG.UTF-8… done<br>   en_NZ.UTF-8… done<br>   en_PH.UTF-8… done<br>   en_SG.UTF-8… done<br>   en_ZA.UTF-8… done<br>   en_ZM.UTF-8… done<br>   en_ZW.UTF-8… done<br> Generation complete.</p><p>$ locale -a<br>  C<br>  C.UTF-8<br>  en_AG<br>  en_AG.utf8<br>  en_AU.utf8<br>  en_BW.utf8<br>  en_CA.utf8<br>  en_DK.utf8<br>  en_GB.utf8<br>  en_HK.utf8<br>  en_IE.utf8<br>  en_IL<br>  en_IL.utf8<br>  en_IN<br>  en_IN.utf8<br>  en_NG<br>  en_NG.utf8<br>  en_NZ.utf8<br>  en_PH.utf8<br>  en_SG.utf8<br>  en_US.utf8<br>  en_ZA.utf8<br>  en_ZM<br>  en_ZM.utf8<br>  en_ZW.utf8<br>  POSIX<br> $ update-locale LANG=en_GB.utf8</p></blockquote>



<p class="wp-block-paragraph">The locale settings are stored in &#8220;<em>/etc/default/locale</em>&#8220;, so you can either edit this file manually or use the handy &#8220;<em>update-locale</em>&#8221; utility to do it for you.<br>Either way, once you start a new session, you are using the new locale settings and Perl no longer complains when you SSH to a cPanel server.</p><p>The post <a href="https://www.spheron1.uk/2019/04/03/979/">Changing the locale in Ubuntu Server</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.spheron1.uk/2019/04/03/979/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>ProCurve SSH &#8211; no matching cipher found</title>
		<link>https://www.spheron1.uk/2018/09/24/procurve-ssh-no-matching-cipher-found/</link>
					<comments>https://www.spheron1.uk/2018/09/24/procurve-ssh-no-matching-cipher-found/#respond</comments>
		
		<dc:creator><![CDATA[digitaldisaster]]></dc:creator>
		<pubDate>Mon, 24 Sep 2018 10:48:09 +0000</pubDate>
				<category><![CDATA[HP ProCurve]]></category>
		<category><![CDATA[ciphers]]></category>
		<category><![CDATA[HP]]></category>
		<category><![CDATA[HPE]]></category>
		<category><![CDATA[OpenSSH]]></category>
		<category><![CDATA[ProCurve]]></category>
		<category><![CDATA[ProVision]]></category>
		<category><![CDATA[SSH]]></category>
		<guid isPermaLink="false">https://www.spheron1.uk/?p=971</guid>

					<description><![CDATA[<p>I recently ran into a strange problem where I suddenly couldn&#8217;t SSH to any of our HPE ProCurve 2800 series (2824, 2848) devices from either macOS or Linux. I&#8217;m still not really sure what started this as OpenSSH definitely hasn&#8217;t been updated recently on the Linux client device at the very least, so I don&#8217;t see any reason for the&#46;&#46;&#46;</p>
<p>The post <a href="https://www.spheron1.uk/2018/09/24/procurve-ssh-no-matching-cipher-found/">ProCurve SSH – no matching cipher found</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>I recently ran into a strange problem where I suddenly couldn&#8217;t SSH to any of our HPE ProCurve 2800 series (2824, 2848) devices from either macOS or Linux. I&#8217;m still not really sure what started this as OpenSSH definitely hasn&#8217;t been updated recently on the Linux client device at the very least, so I don&#8217;t see any reason for the list of ciphers supported on the client to have changed.</p>
<p>Anyway, the error message given by the OpenSSH client was:</p>
<blockquote><p>Unable to negotiate with port 22: no matching cipher found. Their offer: des,3des-cbc</p></blockquote>
<p>These ProCurves are pretty old and their SSH support is rather limited (1024 bit keys for example), so it&#8217;s not hugely surprising that their supported ciphers are also old and crappy.<br />
Luckily, with OpenSSH you can specify the cipher(s) that you want to use on the command line when you&#8217;re connecting:</p>
<blockquote><p>ssh -c 3des-cbc</p></blockquote>
<p>This fixed the issue and lets me connect, but isn&#8217;t particularly convenient. However, you can also specify this in your ~/.ssh/config file so that it is applied automatically:</p>
<blockquote><p>Host &lt;blah&gt;<br />
Ciphers 3des-cbc</p></blockquote>
<p>Just enter one or more hosts to match against (separated by spaces) and OpenSSH will automatically apply the specified options when connecting to any of them.</p><p>The post <a href="https://www.spheron1.uk/2018/09/24/procurve-ssh-no-matching-cipher-found/">ProCurve SSH – no matching cipher found</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.spheron1.uk/2018/09/24/procurve-ssh-no-matching-cipher-found/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>OpenLiteSpeed WordPress cache mysteriously not working</title>
		<link>https://www.spheron1.uk/2018/09/17/openlitespeed-wordpress-cache-mysteriously-not-working/</link>
					<comments>https://www.spheron1.uk/2018/09/17/openlitespeed-wordpress-cache-mysteriously-not-working/#respond</comments>
		
		<dc:creator><![CDATA[digitaldisaster]]></dc:creator>
		<pubDate>Mon, 17 Sep 2018 15:48:09 +0000</pubDate>
				<category><![CDATA[LiteSpeed]]></category>
		<category><![CDATA[LSCache]]></category>
		<category><![CDATA[LSCWP]]></category>
		<category><![CDATA[LSWS]]></category>
		<category><![CDATA[OLS]]></category>
		<category><![CDATA[OpenLiteSpeed]]></category>
		<category><![CDATA[Wordpress]]></category>
		<guid isPermaLink="false">https://www.spheron1.uk/?p=969</guid>

					<description><![CDATA[<p>The OpenLiteSpeed web server (OLS) and LiteSpeed Cache for WordPress (LSCWP) plugin provide a great way of both speeding up WordPress and handing large numbers of visitors. OLS is an open source derivative of the LiteSpeed Web Server (LSWS), which delivers most many of the key features, including the high performance LiteSpeed Cache (LSCache). Whilst it can&#8217;t read  Apache configuration files&#46;&#46;&#46;</p>
<p>The post <a href="https://www.spheron1.uk/2018/09/17/openlitespeed-wordpress-cache-mysteriously-not-working/">OpenLiteSpeed WordPress cache mysteriously not working</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>The <a href="https://openlitespeed.org">OpenLiteSpeed web server</a> (OLS) and <a href="https://en-gb.wordpress.org/plugins/litespeed-cache/">LiteSpeed Cache for WordPress</a> (LSCWP) plugin provide a great way of both speeding up WordPress and handing large numbers of visitors.</p>
<p>OLS is an open source derivative of the <a href="https://www.litespeedtech.com/products/litespeed-web-server">LiteSpeed Web Server</a> (LSWS), which delivers most many of the key features, including the high performance <a href="https://www.litespeedtech.com/support/wiki/doku.php/litespeed_wiki:cache">LiteSpeed Cache</a> (LSCache). Whilst it can&#8217;t read  Apache configuration files like its bigger brother LSWS (and thus can&#8217;t be used with a hosting control panel like cPanel or Plesk), it&#8217;s great for working with a handful of sites configured manually</p>
<p>Whilst the LSCWP plugin has a lot of useful features which can be used even without the LSCache from OLS/LSWS, the main selling point is the integration with LSCache to deliver blazing fast page load times along with massive scalability under load.</p>
<p>I recently ran into a bizarre issue where the cache just completely stopped working for no obvious reason, which led to hours of pulling apart WordPress and OLS to try and work out why.</p>
<p>Aside from pages loading very slowly, the main clue was that the X-Litespeed-Cache header was completely missing, although the X-Litespeed-Cache-Control header was present as normal. This would normally mean some kind of issue with the cache storage location (/usr/local/lsws/cachedata/ by default, unless override by the storagePath configuration option in the cache module settings).<br />
I couldn&#8217;t see any issues with the cache storage location, but tried adjusting it elsewhere anyway without any luck.</p>
<p>I verified that all of the <a href="https://openlitespeed.org/mediawiki/index.php/Help:How_To_Set_Up_LSCache_For_WordPress#Cache_Module_Configuration">settings for the cache module</a> were configured as per those listed on the OLS wiki and eventually out of frustration deleted the whole cache module definition from the server configuration and added it back, at which point the cache started working again!</p>
<p>I&#8217;ve absolutely no idea why removing and re-adding the exact same configuration should make any difference whatsoever, but I have now verified identical behaviour on two different servers with completely independent configurations.</p><p>The post <a href="https://www.spheron1.uk/2018/09/17/openlitespeed-wordpress-cache-mysteriously-not-working/">OpenLiteSpeed WordPress cache mysteriously not working</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.spheron1.uk/2018/09/17/openlitespeed-wordpress-cache-mysteriously-not-working/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
		<item>
		<title>Rspamd, bayes expiry and Redis &#8211; ERR Number of keys can&#8217;t be greater than number of args</title>
		<link>https://www.spheron1.uk/2018/08/15/rspamd-bayes-expiry-and-redis-err-number-of-keys-cant-be-greater-than-number-of-args/</link>
					<comments>https://www.spheron1.uk/2018/08/15/rspamd-bayes-expiry-and-redis-err-number-of-keys-cant-be-greater-than-number-of-args/#respond</comments>
		
		<dc:creator><![CDATA[digitaldisaster]]></dc:creator>
		<pubDate>Wed, 15 Aug 2018 14:30:10 +0000</pubDate>
				<category><![CDATA[Spam]]></category>
		<category><![CDATA[bayes]]></category>
		<category><![CDATA[redis]]></category>
		<category><![CDATA[rspamd]]></category>
		<guid isPermaLink="false">https://www.spheron1.uk/?p=962</guid>

					<description><![CDATA[<p>I recently enabled the bayes expiry module (https://rspamd.com/doc/modules/bayes_expiry.html) in Rspamd and found myself staring at the following error in the Rspamd logs with no idea what it meant: lua; bayes_expiry.lua:332: cannot perform expiry step: ERR Number of keys can&#8217;t be greater than number of args The only reference that I could find to this online was a single post on&#46;&#46;&#46;</p>
<p>The post <a href="https://www.spheron1.uk/2018/08/15/rspamd-bayes-expiry-and-redis-err-number-of-keys-cant-be-greater-than-number-of-args/">Rspamd, bayes expiry and Redis – ERR Number of keys can’t be greater than number of args</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></description>
										<content:encoded><![CDATA[<p>I recently enabled the bayes expiry module (https://rspamd.com/doc/modules/bayes_expiry.html) in Rspamd and found myself staring at the following error in the Rspamd logs with no idea what it meant:</p>
<blockquote><p>lua; bayes_expiry.lua:332: cannot perform expiry step: ERR Number of keys can&#8217;t be greater than number of args</p></blockquote>
<p>The only reference that I could find to this online was a single post on the Rspamd mailing list, which had gone unanswered (https://groups.google.com/d/msg/rspamd/jFG-MTLzZw8/-8WIIY_ECAAJ).</p>
<p>It turns out that I had the &#8220;<em>expire</em>&#8221; setting defined twice in /etc/rspamd/local.d/classifier-bayes.conf. After fixing this, restarting Rspamd and waiting a couple of minutes, I started to see the expected log entries from the bayes expiry module executing its expiry processing step every minute:</p>
<blockquote><p>lua; bayes_expiry.lua:368: finished expiry step 9995 (lazy): 1001 items checked, 163 significant (0 made persistent), 0 insignificant (0 ttls set), 0 common (0 discriminated), 838 infrequent (837 ttls set), 4 mean, 20 std</p></blockquote>
<p>&nbsp;</p><p>The post <a href="https://www.spheron1.uk/2018/08/15/rspamd-bayes-expiry-and-redis-err-number-of-keys-cant-be-greater-than-number-of-args/">Rspamd, bayes expiry and Redis – ERR Number of keys can’t be greater than number of args</a> first appeared on <a href="https://www.spheron1.uk">Spheron1</a>.</p>]]></content:encoded>
					
					<wfw:commentRss>https://www.spheron1.uk/2018/08/15/rspamd-bayes-expiry-and-redis-err-number-of-keys-cant-be-greater-than-number-of-args/feed/</wfw:commentRss>
			<slash:comments>0</slash:comments>
		
		
			</item>
	</channel>
</rss>

<!--
Performance optimized by W3 Total Cache. Learn more: https://www.boldgrid.com/w3-total-cache/?utm_source=w3tc&utm_medium=footer_comment&utm_campaign=free_plugin

Object Caching 0/253 objects using Redis
Page Caching using Disk: Enhanced 
Lazy Loading (feed)
Database Caching using Redis

Served from: spheron1.uk @ 2026-08-27 23:11:44 by W3 Total Cache
-->