Technical Changelog

The Sosik-Hamor Family website is currently running on SilverStripe CMS, an open-source web content management system. Sean Sosik-Hamor is using the sosik-hamor.com domain to learn SilverStripe because of its popularity among non-profit organizations, businesses, and governments.

The default template is being used for now because there's no reason to get fancy. Yet!

Wednesday, October 13, 2021

Upgraded to SilverStripe 4.9.

Friday, February 26, 2021

SilverStripe Upgrader was installed globally to prepare for the upgrade to SilverStripe 4.7

composer update
composer global require silverstripe/upgrader
upgrade-code all --skip-add-namespace
php vendor/silverstripe/framework/cli-script.php dev/build

Sorry, there was a problem with handling your request.

The website returned a 500 Internal Server Error after upgrading, and required executing a dev/build.

Wednesday, August 5, 2020

During installation and troubleshooting, I noticed a mysqlnd error while running ./vendor/bin/sake dev/build "flush=1". This error also appeared tens of thousands of times in error_log even though the mysqlnd PHP library was installed and available:

[2020-08-04 16:09:46] error-log.NOTICE: E_USER_NOTICE: mysqlnd PHP library is not available, numeric values will be fetched from the DB as strings {"code":1024,"message":"mysqlnd PHP library is not available, numeric values will be fetched from the DB as strings","file":"/home/REDACTED/public_html/vendor/silverstripe/framework/src/ORM/Connect/MySQLiConnector.php","line":89} []

If this were a standard LAMP installation, or a deployed container, then the fix would have been straightforward. I simply would have checked /etc/php/7.2/apache2/conf.d to make sure that mysqlnd loading properly.

But, since this is a managed cPanel installation, my troubleshooting options were limited to CLI within my homedir and the web dashboard. Luckily, the fix was somewhat intuitive, albeit falling into "did you turn it off and turn it back on" territory.

I ran PHP Selector by running cPanel Dashboard → Software → Select PHP Version. I then bumped the PHP version up to 7.4 which selected a new combination of mysql modules by default. Both mysqlnd and nd_mysqli were now selected and the errors immediately subsided.

Thanks to CloudLinux OS for their article on Missing MySQL extension or "MySQL_ND vs MySQL".

Wednesday, July 29, 2020

Initial installation of SilverStripe CMS. Note: All PHP dependencies are managed by Composer. Only run composer from within the webroot of your website. Run composer info to see information about currently-installed packages.

Installed wilr/silverstripe-googlesitemaps

composer require "wilr/silverstripe-googlesitemaps"

Hitting the links in sitemap.xml resulted in a 500 Internal Server Error so I followed the troubleshooting tip and browsed to /sitemap.xml?flush=1. All URLs on the site then returned 500 Internal Server Error with a default unpopulated template and no content.

If SilverStripe returns a 500 Internal Server Error after running composer to require a dependency then run the following from the webroot: ./vendor/bin/sake dev/build "flush=1"

This solved the problem after successfully running, but returned the error:

mysqlnd PHP library is not available, numeric values will be fetched from the DB as strings

The mysqlnd PHP library is active but not being seen by sake for some reason.

Created the default mysite/_config/googlesitemaps.yml as suggested by the documentaton.

I've also found an interesting quirk where the default editor adds an   instead of a space every time you paste something into the editor.

To-do