2/16/2021 – I still plan to update this more, just been busy with a new job!
This is a work in progress – pictures will be added, stories will be written, coffees will be spilled.
- Use MySQL Workbench to create a user with a Standard Password, and create a Schema, then give your user permissions on the Schema.
- Open PHP Manager in IIS Manager after installing so it can make some changes to php.ini..enable the extra modules in there as well.
- You probably want to reboot after updating your PATHs and things just so IIS can find everything
- I know this is vague…just trying to get it started.
If this helps you in the mean time, great!
- Dependencies for ImageMagick and other things…
- VC15 Dependencies (PHP7): https://windows.php.net/downloads/php-sdk/deps/vc15/x64/
- VS16 Dependencies (PHP8): https://windows.php.net/downloads/php-sdk/deps/vs16/x64/
- PHP8 doesn’t have ImageMagick deps yet
- IIS Installation
- Control Panel – Programs & Features – Add/Remove Windows Components
- [X] Internet Information Services
- Web Management Tools -> [X] IIS Management Console
- World Wide Web Services -> Application Development Features -> [X] CGI
- Common HTTP Features
- All except Directory Browsing (unless wanted), WebDAV Publishing
- Health and Diagnostics
- [X] HTTP Logging, Request Monitor
- [X] Performance Features (both Dynamic + Static)
- Security
- [X] Basic, IP, Request Filtering, URL Authorization, (if needed) Windows Auth
- [X] Internet Information Services
- Control Panel – Programs & Features – Add/Remove Windows Components
- Downloads
- 7-Zip (for extracting MSI files if needed)
- PHP 7.4.14
- https://windows.php.net/download/ (7.4.14)
- must use “Non Thread Safe” version on IIS
- extract to e.g. C:\PHP\7.4.14
- https://windows.php.net/download/ (7.4.14)
- PHP Manager for IIS 10
- WinCache for PHP Windows Cache Extensions 2.0
- https://sourceforge.net/projects/wincache/files/
- https://sourceforge.net/projects/wincache/files/development/
- For PHP 7.4 – https://sourceforge.net/projects/wincache/files/development/wincache-2.0.0.8-dev-7.4-nts-vc15-x64.exe/download
- extract with 7zip/etc and copy the php_wincache.dll to PHP\7.4.14\ext
- MySQL Community Installer – install server, workbench (during setup)
- WordPress
- https://wordpress.org/download/#download-install
- https://wordpress.org/latest.zip
- extract to C:\inetpub\wwwroot
- ImageMagick… + deps etc
- http://windows.php.net/downloads/pecl/releases/imagick/ – for PHP\7.4.14\ext\ folder
- https://windows.php.net/downloads/php-sdk/deps/vc15/x64/ImageMagick-LATEST-x64.zip – for binaries & dependencies – extract to a folder in your PATH (NOT your ImageMagick install folder if you decide to install it anyway even though you don’t need it..you should not be overwriting anything.. e.g. C:\PHP\7.4.14\extras\imagick and then add this folder to your global PATH)
- A lot of guides on the Internet specify to also install ImageMagick itself – this is not necessary. The dependencies come with everything that is needed, and all the versions will match.
- URL Rewrite
- https://www.iis.net/downloads/microsoft/url-rewrite (scroll to bottom of page for downloads)
- https://download.microsoft.com/download/1/2/8/128E2E22-C1B9-44A4-BE2A-5859ED1D4592/rewrite_amd64_en-US.msi
- OpenSSL (incl. x64 despite URL)
- Web Platform Installer
- I do not recommend you use this. It installs old versions of things.
- I do not recommend you use this. It installs old versions of things.
- Folder Permissions
- Give IIS_IUSRS read access to c:\inetpub
- Give IIS AppPool\DefaultAppPool (or IIS AppPool\yoursite.com) access to c:\inetpub\wwwroot or whatever folder you have created inside c:\inetpub
- yes, the second part of the ‘test settings’ in IIS will fail…this is normal if you’re using local accounts
- yes, the second part of the ‘test settings’ in IIS will fail…this is normal if you’re using local accounts
- web.config
- This is IIS equivalent of .htaccess which does not exist nor get used on IIS.
- It seems WordPress was able to update web.config for pretty link creation and you shouldn’t have to manually do this.
- Force SSL redirect is one you’ll need if you enable SSL and needs to go before the pretty links rule
<rule name="HTTPs 301 redirect" stopProcessing="true">
<match url="(.*)" />
<conditions logicalGrouping="MatchAll" trackAllCaptures="false">
<add input="{HTTPS}" pattern="^OFF$" />
</conditions>
<action type="Redirect" url="https://{HTTP_HOST}/{R:1}" redirectType="Permanent" />
</rule>