This article explains how to install PHP 8 and Apache 2.4 on Windows 10 (64-bit).
Linux and macOS users often have Apache and PHP pre-installed or available via package managers. Windows 10 requires a little more effort. The steps below may work with other editions of Windows, PHP, and Apache, but check the documentation of each dependency for specific instructions.
Why PHP?
Table of Contents
PHP remains the most widespread and popular server-side programming language on the Web. It’s installed by most web hosts, and has a simple learning curve, close ties with the MySQL database, superb documentation, and an excellent collection of libraries to cut your development time. PHP may not be perfect, but it should be considered as an option for your next web application. It’s the language of choice for Facebook, Slack, Wikipedia, MailChimp, Etsy, and WordPress — the Content Management System which powers 40% of the web.
Why Install PHP Locally?
Installing PHP on your development PC allows you to safely create and test websites and applications without affecting the data or systems on your live server.
Alternative Installation Options
Before you jump in, there may be a simpler installation options…
Use an All-in-One package
All-in-one packages are available for Windows which contain Apache, PHP, MySQL, and many other dependencies in a single installation file — such as XAMPP, WampServer and Web.Developer.
These packages are easy to use, but they may not exactly match your live server. Installing Apache and PHP manually will help you learn more about the system and configuration options.
Use a Linux Virtual Machine
Microsoft Hyper-V (provided in Windows 10 Professional) and VirtualBox are free hypervisors which emulate a PC so you can install another operating system.
You can install any version of Linux, then follow its Apache and PHP installation instructions. Alternatively, distros such as Ubuntu Server provide them as standard (although they’re rarely the latest editions).
Use Windows Subsystem for Linux 2
WSL2 is also a virtual machine, but it’s tightly integrated into Windows so activities such as file sharing and localhost
resolution is seamless. You can install several Linux distros, so refer to the appropriate Apache and PHP instructions.
Use Docker
Docker creates a wrapper (known as a container) around pre-configured application dependencies such as Apache, PHP, MySQL, MongoDB, and most other web software. Containers look like full Linux Virtual Machines but are considerably more lightweight.
Once you’ve installed Docker Desktop on Windows 10, it’s easy to download, configure, and run Apache and PHP.
Docker is currently considered the best option for setting up a PHP development environment. Check out SitePoint’s article “Setting Up a Modern PHP Development Environment with Docker” for a complete guide to setting it up.
Install Apache (optional)
If you’re still reading, the following sections describe how to install Apache and PHP directly on Windows.
PHP provides a built-in web server which can be launched by navigating to a folder and running the PHP executable with an -S
parameter to set the localhost
port. for example:
cd myproject php -S localhost:8000
PHP pages can then be viewed in a browser at http://localhost:8000.
This may be adequate for quick tests, but your live server will use Apache or similar web server software. Emulating that environment as closely as possible will prevent development errors.
To install Apache, download the latest Win64 ZIP file from https://www.apachelounge.com/download/ and extract its Apache24
folder to the root of your C:
drive. You’ll also need to install the Visual C++ Redistributable for Visual Studio 2015–2019 (vc_redist_x64
); a link is provided on the same page.
Open a cmd
command prompt (not PowerShell) and start Apache with:
cd C:Apache24bin httpd
You may need to accept a firewall exception before the server starts to run. Open http://localhost in a browser and an “It works!” message should appear. Note:
- If you need to change any settings, Apache’s configuration file is located at
C:Apache24confhttpd.conf
. - The web server root folder is located at
C:Apache24htdocs
. Initially, it contains a singleindex.html
file with the “It works!” message.
Also not that, if Apache won’t start, it’s likely another application is hogging port 80. (Skype is the prime candidate and the Windows 10 app won’t let you disable it!) If this occurs, edit C:Apache24confhttpd.conf
and change the line Listen 80
to Listen 8080
or any other free port. Restart Apache and, from that point onward, you can load web files at http://localhost:8080
The server can be stopped with Ctrl + C. The ReadMe
file in the ZIP also provides instructions for installing Apache as a Windows service.
Install PHP
Install PHP by following the steps below. Note that there are several ways to configure Apache and PHP, but this is possibly the quickest method.
Step 1: Download the PHP files
Get the latest PHP 8 x64 Thread Safe ZIP package from https://www.php.net/downloads.php.
Step 2: Extract the files
Create a new php
folder in the root of your C:
drive and extract the contents of the ZIP into it.
PHP can be installed anywhere on your system, but you’ll need to change the paths referenced below if C:php
isn’t used.
Step 3: Configure php.ini
PHP’s configuration file is named php.ini
. This doesn’t exist initially, so copy C:phpphp.ini-development
to C:phpphp.ini
. This default configuration provides a development setup which reports all PHP errors and warnings.
There are several lines you may need to change in a text editor (use search to find the current value). In most cases, you’ll need to remove a leading semicolon (;
) to uncomment a setting.
First, enable any required extensions. This will depend on the libraries you want to use, but the following extensions should be suitable for most applications:
extension=curl extension=gd extension=mbstring extension=pdo_mysql
If you want to send emails using PHP’s mail()
function, enter the details of an SMTP server in the [mail function]
section (your ISP’s server should be suitable):
[mail function] ; For Win32 only. ; http://php.net/smtp SMTP = mail.myisp.com ; http://php.net/smtp-port smtp_port = 25 ; For Win32 only. ; http://php.net/sendmail-from sendmail_from = my@emailaddress.com
Continue reading How to Install PHP on Windows on SitePoint.