Silverstripe Install Issues

Silverstripe Version:
5.3.0
Question:
I’m installing Silverstripe on IIS (Windows Server 2016 X64).
Environment is:
Silverstripe 5.3.0
PHP 8.4.2
MySQL 8.0.40
IIS URL Rewrite Module 2 (Installed)
Composer
GIT 2.47.1

Details of your query go here
Having worked through a number of issues myself (mainly around security permissions), I’m now stuck.

The errors I’m getting are:
PHP Warning: mkdir(): Permission denied in C:\inetpub\wwwroot\rangitikeiwoodworks\vendor\silverstripe\framework\src\Core\TempFolder.php on line 26
PHP Deprecated: SilverStripe\Admin\LeftAndMain::getSchemaResponse(): Implicitly marking parameter $errors as nullable is deprecated, the explicit nullable type must be used instead in C:\inetpub\wwwroot\rangitikeiwoodworks\vendor\silverstripe\admin\code\LeftAndMain.php on line 533
PHP Deprecated: SilverStripe\ORM\DataExtension::augmentSQL(): Implicitly marking parameter $dataQuery as nullable is deprecated, the explicit nullable type must be used instead in C:\inetpub\wwwroot\rangitikeiwoodworks\vendor\silverstripe\framework\src\ORM\DataExtension.php on line 51
PHP Deprecated: SilverStripe\Assets\FileDefaultPermissions::canEdit(): Implicitly marking parameter $member as nullable is deprecated, the explicit nullable type must be used instead in C:\inetpub\wwwroot\rangitikeiwoodworks\vendor\silverstripe\assets\src\FileDefaultPermissions.php on line 20
PHP Deprecated: SilverStripe\Assets\FileDefaultPermissions::canView(): Implicitly marking parameter $member as nullable is deprecated, the explicit nullable type must be used instead in C:\inetpub\wwwroot\rangitikeiwoodworks\vendor\silverstripe\assets\src\FileDefaultPermissions.php on line 31
PHP Deprecated: SilverStripe\Assets\FileDefaultPermissions::canDelete(): Implicitly marking parameter $member as nullable is deprecated, the explicit nullable type must be used instead in C:\inetpub\wwwroot\rangitikeiwoodworks\vendor\silverstripe\assets\src\FileDefaultPermissions.php on line 42
PHP Deprecated: SilverStripe\Assets\FileDefaultPermissions::canCreate(): Implicitly marking parameter $member as nullable is deprecated, the explicit nullable type must be used instead in C:\inetpub\wwwroot\rangitikeiwoodworks\vendor\silverstripe\assets\src\FileDefaultPermissions.php on line 53
PHP Deprecated: SilverStripe\Security\DefaultPermissionChecker::canEdit(): Implicitly marking parameter $member as nullable is deprecated, the explicit nullable type must be used instead in C:\inetpub\wwwroot\rangitikeiwoodworks\vendor\silverstripe\framework\src\Security\DefaultPermissionChecker.php on line 19
PHP Deprecated: SilverStripe\Security\DefaultPermissionChecker::canView(): Implicitly marking parameter $member as nullable is deprecated, the explicit nullable type must be used instead in C:\inetpub\wwwroot\rangitikeiwoodworks\vendor\silverstripe\framework\src\Security\DefaultPermissionChecker.php on line 27
PHP Deprecated: SilverStripe\Security\DefaultPermissionChecker::canDelete(): Implicitly marking parameter $member as nullable is deprecated, the explicit nullable type must be used instead in C:\inetpub\wwwroot\rangitikeiwoodworks\vendor\silverstripe\framework\src\Security\DefaultPermissionChecker.php on line 35
PHP Deprecated: SilverStripe\Security\DefaultPermissionChecker::canCreate(): Implicitly marking parameter $member as nullable is deprecated, the explicit nullable type must be used instead in C:\inetpub\wwwroot\rangitikeiwoodworks\vendor\silverstripe\framework\src\Security\DefaultPermissionChecker.php on line 43
PHP Deprecated: SilverStripe\Assets\InterventionBackend::__construct(): Implicitly marking parameter $assetContainer as nullable is deprecated, the explicit nullable type must be used instead in C:\inetpub\wwwroot\rangitikeiwoodworks\vendor\silverstripe\assets\src\InterventionBackend.php on line 114
PHP Deprecated: SilverStripe\Assets\Image_Backend::__construct(): Implicitly marking parameter $assetContainer as nullable is deprecated, the explicit nullable type must be used instead in C:\inetpub\wwwroot\rangitikeiwoodworks\vendor\silverstripe\assets\src\Image_Backend.php on line 36
PHP Deprecated: SilverStripe\SiteConfig\SiteConfigPagePermissions::canEdit(): Implicitly marking parameter $member as nullable is deprecated, the explicit nullable type must be used instead in C:\inetpub\wwwroot\rangitikeiwoodworks\vendor\silverstripe\siteconfig\code\SiteConfigPagePermissions.php on line 19
PHP Deprecated: SilverStripe\SiteConfig\SiteConfigPagePermissions::canView(): Implicitly marking parameter $member as nullable is deprecated, the explicit nullable type must be used instead in C:\inetpub\wwwroot\rangitikeiwoodworks\vendor\silverstripe\siteconfig\code\SiteConfigPagePermissions.php on line 30
PHP Deprecated: SilverStripe\SiteConfig\SiteConfigPagePermissions::canDelete(): Implicitly marking parameter $member as nullable is deprecated, the explicit nullable type must be used instead in C:\inetpub\wwwroot\rangitikeiwoodworks\vendor\silverstripe\siteconfig\code\SiteConfigPagePermissions.php on line 41
PHP Deprecated: SilverStripe\SiteConfig\SiteConfigPagePermissions::canCreate(): Implicitly marking parameter $member as nullable is deprecated, the explicit nullable type must be used instead in C:\inetpub\wwwroot\rangitikeiwoodworks\vendor\silverstripe\siteconfig\code\SiteConfigPagePermissions.php on line 53
PHP Deprecated: SilverStripe\Versioned\DataDifferencer::__construct(): Implicitly marking parameter $fromRecord as nullable is deprecated, the explicit nullable type must be used instead in C:\inetpub\wwwroot\rangitikeiwoodworks\vendor\silverstripe\versioned\src\DataDifferencer.php on line 62
PHP Deprecated: SilverStripe\Versioned\DataDifferencer::__construct(): Implicitly marking parameter $toRecord as nullable is deprecated, the explicit nullable type must be used instead in C:\inetpub\wwwroot\rangitikeiwoodworks\vendor\silverstripe\versioned\src\DataDifferencer.php on line 62
PHP Deprecated: SilverStripe\Versioned\Versioned::augmentSQL(): Implicitly marking parameter $dataQuery as nullable is deprecated, the explicit nullable type must be used instead in C:\inetpub\wwwroot\rangitikeiwoodworks\vendor\silverstripe\versioned\src\Versioned.php on line 458
PHP Deprecated: SilverStripe\Versioned\Versioned::augmentLoadLazyFields(): Implicitly marking parameter $dataQuery as nullable is deprecated, the explicit nullable type must be used instead in C:\inetpub\wwwroot\rangitikeiwoodworks\vendor\silverstripe\versioned\src\Versioned.php on line 899
PHP Deprecated: SilverStripe\Admin\Forms\LinkFormFactory::getForm(): Implicitly marking parameter $controller as nullable is deprecated, the explicit nullable type must be used instead in C:\inetpub\wwwroot\rangitikeiwoodworks\vendor\silverstripe\admin\code\Forms\LinkFormFactory.php on line 30
PHP Deprecated: SilverStripe\Forms\FormFactory::getForm(): Implicitly marking parameter $controller as nullable is deprecated, the explicit nullable type must be used instead in C:\inetpub\wwwroot\rangitikeiwoodworks\vendor\silverstripe\framework\src\Forms\FormFactory.php on line 28
PHP Deprecated: SilverStripe\AssetAdmin\Extensions\RemoteFileModalExtension::getSchemaResponse(): Implicitly marking parameter $errors as nullable is deprecated, the explicit nullable type must be used instead in C:\inetpub\wwwroot\rangitikeiwoodworks\vendor\silverstripe\asset-admin\code\Extensions\RemoteFileModalExtension.php on line 120
PHP Deprecated: SilverStripe\AssetAdmin\Forms\AssetFormFactory::getForm(): Implicitly marking parameter $controller as nullable is deprecated, the explicit nullable type must be used instead in C:\inetpub\wwwroot\rangitikeiwoodworks\vendor\silverstripe\asset-admin\code\Forms\AssetFormFactory.php on line 71

plus a whole bunch more along the same theme.

Lower your PHP version. Version <=8.3 for SilverStripe 5.x should not throw any of these warnings.

Furthermore, they’re warnings and deprecation notices, not errors.

The only real issue in your list of notices is the warning that permission denied, which, under Windows, is a mystery. You’d probably get better/easier results using a Linux based server instead of Windows based.

Thanks. I thought Win2016 might be a long shot, but tried it anyway since I come from a Windows background.

Have reloaded the machine with Ubuntu 24.04 LTS and have run into an issue.

When trying to install via Composer, it throws an error:

composer create-project silverstripe/installer rangitikeiwoodworks
Creating a “silverstripe/installer” project at “./rangitikeiwoodworks”
Installing silverstripe/installer (5.3.0)

In ProjectInstaller.php line 69:

mkdir(): Permission denied

create-project [-s|–stability STABILITY] [–prefer-source] [–prefer-dist] [–prefer-install PREFER-INSTALL] [–repository REPOSITORY] [–repository-url REPOSITORY-URL] [–add-repository] [–dev] [–no-dev] [–no-custom-installers] [–no-scripts] [–no-progress] [–no-secure-http] [–keep-vcs] [–remove-vcs] [–no-install] [–no-audit] [–audit-format AUDIT-FORMAT] [–ignore-platform-req IGNORE-PLATFORM-REQ] [–ignore-platform-reqs] [–ask] [–] [ [ []]]

I tried running it again using sudo, but it said that wasn’t really a good idea, so I backed out of it.

Guessing it needs permissions somewhere, but not being at all familiar with Linux, I wouldn’t know where to start.

Forgot to add, I have MySQL and PHP installed and have verified that both are running / operational.

Assuming this is just for local development and not for a production server, I can’t recommend DDEV enough. It will set up and manage docker containers for you with everything you need - there’s even a preset configuration for Silverstripe CMS so you can get started developing within minutes (after installing DDEV and its dependencies, of course).

You can run it on Windows which means you’ll be in an OS you’re familiar with most of the time. The docker containers are linux-based but you usually don’t have to interact with them at that level unless you really want to.

Have you had any luck with the windows server (Using 2019) setup?

I have a similar setup but for some reason the assets show a broken link sometimes but get fixed after reloading the page.