Installing WAMP, (Windows Apache Web Server, MySql and PHP) on your machine requires some configuration before you start.
• If WAMP is already installed, you have to uninstall it.
• Find an editor that handles Unix line breaks correctly.
• Make sure “localhost” is in your host file and pointing to 127.0.0.1.
• If you have Skype, make sure it doesn’t use ports 80 and 443.
• Do you use IIS or any other web server? Disable them.
• Make sure that you have all required Visual C++ redistributables.
- Are all Visual C++ redistributables that WAMP require installed?
- Is WAMP already installed?
- Choose another text editor than Notepad
- Make sure that localhost is defined in the hosts file
- Make sure no other app is using port 80
Are all Visual C++ redistributables that WAMP require installed?
This is covered in this article: Installing WAMP, Part 1, Visual C++ redistributables.
I suggest that you start here if you are uncertain, it will tell you how to check your status.
Is WAMP already installed?
If you have a previous installation of WAMP, you have to uninstall it first.
This is described here: http://forum.wampserver.com/read.php?2,123606
But be warned, if you only have 20 minutes, don’t start this process. It is a quite involved process.
Choose another text editor than Notepad
Why you have to choose a text editor that handles Unix line breaks correctly
Did you know that every line in a text file has one or two invisible characters that tells the computer that the line ends, and the next letter should start at a new line? You don’t see them as characters like “A” or “q”. Instead, whenever a text editor or word processor sees them, it puts the following characters on a new line. And you add them to the text just like you write the “A” when you press a key on the keyboard. Yes, it’s the Enter key I’m talking about.
And did you also know that the characters are different if you use Windows or a Linux? In fact, Windows actually uses two characters, while Linux only use one. But what has this got to do with installing WAMP?
A lot, actually.
Some of the software in the WordPress package was originally developed for Linux and the configuration files in these use the Linux line ending, using only one character. So, if you would use the Windows variant, that uses two characters, when it only expects one, the system wouldn’t know what to do with the second character. And it would break. Your system would be corrupted and unable to run.
Do not use Notepad
It is important that you use a text editor that can handle both Windows and Linux line endings. And apparently, notepad.exe does not do that. It will translate all Linux endings to Windows endings. You won’t see it, but it will break the system.
There are a lot of editors that can handle this properly, I recommend Notepad++, because I use it and like it. But as I said, it’s far from the only one.
You can download it here: https://notepad-plus-plus.org/downloads/
Make sure that localhost is defined in the hosts file
I’m not going to explain what the hosts file is used for here; you just have to take my word for that you need this entry in it.
The name of the file is “hosts”. No “.txt” or anything extra, just hosts.
It is stored here on your machine: Windows\System32\drivers\etc\hosts
The file looks something like this:
Verify that you also have the last line in the image in your hosts file.
Also, make sure that it doesn’t have the character “#” in front of it. That means that it is commented out, and that is basically the same as it isn’t in the file at all. This is wrong: “# 127.0.0.1 localhost”
Make sure no other app is using port 80
Port 80 is the standard port for the web browsers. Whenever you write a web address and press Enter, you send it to the web server through that port. Every web server uses this. And of course, so does Apache too.
But there is a problem. Only one application can use port 80 at a time. If you have more than one that compete for the ownership of the port, you have a problem. Now, I can’t list all and everyone, but here are two that are common.
• Skype Classic (version 7)
• Other web servers, like IIS
A short explanation of ports
To understand this problem, you have to know a bit about TCP/IP ports. I’m not going to give you the full explanation of them here, but a short introduction is in place.
If you are familiar with this already, skip to The Solution for Skype below. But for the rest of us…
When you want to look at a page on the web, you enter a URL. Like for instance https://www.developerkingdom.se. What you actually do is give the browser the address to the computer where the page is.
Now, www is not the only thing that uses the Internet. There are many other applications that talk to each other. So there has to be a way to tell them apart, that this piece of information is for the web server and that is for your mail application. Yet another information package is for the game you’re playing.
And this is why we have TCP/IP ports.
Let’s make a comparison with an apartment building. You have the address where your friend lives, the street name and the house number. But the house has several doors. Each of them has a letter. To visit your friend, you just can’t show up to the address, you also have to know in which door he lives in. For example, Bigstreet 43 C.
Translating this to the web, the URL, like developerkingdom.se, is the street address. The letter on the door is the TCP/IP port number 80:
Port 80 is the standard port for the world wide web. And as I said, every web server uses this. So we don’t have to tell the browser this. That’s why you never write “:80”.
Now, the problem is, what if several people try to live in the same apartment at the same time? That’s basically what happens if you have two applications that both are trying to use port 80.
The solution for Skype
Skype, version 8 and higher does not use port 80, so you won’t have any problems with that. But if you still use Skype Classic, version 7 or older, you can go into the configuration and disable the use of port 80.
• In Skype, go to Tools -> Options -> Advanced -> Connection
• Uncheck the option “Use port 80 and 443 as alternatives for incoming connections”
• Click Save
• Exit and restart Skype
• Restart Wamp, so it can claim port 80.
The solution for IIS
• In Windows, open Windows Administrative Tools
• Double click on “Services”
• Find “World Wide Web Publishing Service”
• Right click it and select “Stop”
• Right click it again and select “Properties”
• Find the “Startup type” dropdown list
• Select “Manual”
• Click OK