It’s already been 3 years
If you’re reading this, it’s likely that you’ve seen the notice in WPEngine that PHP8.0 will be EOL soon and you’ll need to upgrade to PHP8.2 (Not sure why they skipped 8.1) or the Google gods blessed us with your presence.
Over the last few years we’ve upgraded a few legacy PHP application to be built with newer standards, PHP versions and libraries including moving over to dependency injection (DI). I’ll discuss why I think DI is one of the most important parts of modernising a legacy application.
Have an old or current Classic ASP project that needs converting to PHP?
This is recently just what we did for an internal system, it took a while but we finally got there and launched (Hurar!), I’ll be explaining our process and issues along the way in this blog post. Hopefully this will help someone wanting to achieve the same, what to watch out for and general tips and tricks.
A bit of history first, I started with classic ASP back in around the year 2000, creating some simple websites connecting to an access database. I’d already been programming in VB6 for a couple of years and being able to create dynamic websites in a very similar language was great. ASP did get a few upgrades but essentially it didn’t really change like PHP or ASP.NET has. Having programmed in PHP and C# (ASP.NET and desktop) I knew what was possible (for a sometimes programmer) and the now aging Classic ASP launched around 20 years ago just wasn’t enough. To be honest I’m still surprised that classic ASP lasted so long and has given us such a good run.
Here’s a few details about the website, it was a mostly internal website to manage parts of the business and contained about 200+ ASP files and around 50k lines of code including comments and some HTML.
How do I set up file permissions in Windows for PHP?
When using PHP permissions are misunderstood and common response is just giving too much access which is a security nightmare!
This is extremely important when configuring IIS manually on a VPS or Dedicated server, you want each site isolated from each other. This protects your server and other websites if one site is hacked or compromised.
If you’re just developing locally this isn’t too bad but it’s good practice to always configure it correctly, this will help find errors you may encounter in production but also that we should always be thinking about security.
Any reputable Windows web host would also be configuring their servers automatically using a control panel to configure secure permissions and website isolation so there is no need to worry about this if your with a shared website host. Most control panels will allow you to change if write permissions are enabled or not, this is a common fix for shared hosts and write permission issues.
Web development has changed a lot over the years and security is now a big focus point for web developers so while some would like to leave the IIS & Windows configuration to their server admins it’s good to understand and take responsibility.
It’s not hard to configure and after you’ve done it you’ll feel great knowing that you’re website is substantially more secure so let’s go.
A great way to test PHP is by creating a PHPInfo page.
This is a simple page that displays PHP settings and easily proves if PHP is working or if a specific feature is install or should be working on PHP.
We’ve made a simple tutorial with images to make it easy to get started using this nifty file.
If your running PHP on Windows and using PHP 5.5+ including PHP 7+ the Zend OPcache comes built in by default but isn’t enabled.
You will get massive improvements on any sequential execution of a PHP pages and there is really no reason not to use the Zend OPcache.
So lets enable the PHP OPcache and gain a whole lot of PHP speed!