[php] XAMPP: Couldn't start Apache (Windows 10)

I'm using XAMPP, and I can start Apache, but, MySQL (phpMyAdmin) start!

When I start, I get this error;

10:07:49 [Apache] Error: Apache shutdown unexpectedly.
10:07:49 [Apache] This may be due to a blocked port, missing dependencies,
10:07:49 [Apache] improper privileges, a crash, or a shutdown by another method.
10:07:49 [Apache] Press the Logs button to view error logs and check
10:07:49 [Apache] the Windows Event Viewer for more clues
10:07:49 [Apache] If you need more help, copy and post this
10:07:49 [Apache] entire log window on the forums

I search on it, and, change the port of Apache in Config -> Service and Port setting. I have;

Service name: Apache 2.4
Main port: 122
SSL port: 444

I also uninstall Skype (Windows 8/10/Metro version). Nothing is working. In the httpd.conf file I have;

Listen 122
ServerName localhost:122

I start it via apache_start.bat and get;

(OS 10013)An attempt was made to access a socket in a way forbidden by its access permissions.  : AH00072: make_sock: could not bind to address [::]:445
(OS 10013)An attempt was made to access a socket in a way forbidden by its access permissions.  : AH00072: make_sock: could not bind to address 0.0.0.0:445
AH00451: no listening sockets available, shutting down
AH00015: Unable to open logs

Please note that all the log files don’t exists! Skype is uninstalled.

This question is related to php apache xampp

The answer is


I found a way to solve this problem:

  1. If you are using Skype as well, uncheck the field stating to use ports 80 and 443 (Extra -> Settings -> Advanced -> Connections -> Uncheck Port 80 and 443)
  2. Restart Skype and XAMPP.

If this does not work,

  1. Go to Start and type "services.msc"
  2. Locate "World Wide Web Publishing Service"
  3. Right-click on that entry, select "Stop", then restart XAMPP.

If that did not work and "World Wide Web Publishing Service" was not available,

  1. Go to the Control Panel, navigate to "Uninstall Programs", then "Turn on/off Windows features"
  2. Locate "Internet Information Services"
  3. Click the checkbox and hit "OK".
  4. Restart, then repeat the second approach (services.msc)

I have fixed this issue with mine as well, but I had to change a couple of things. I require that on my Windows 10 machine I keep my C# and Visual Studio development environment, so I didn't want to tinker with any services. All I had to do was download the latest version of XAMPP and change the listening ports for 80 and 443. They were located in two files:

C:\xampp\apache\conf\httpd.conf

Listen 122
ServerName localhost:122

C:\xampp\apache\conf\extra\httpd-ssl.conf

Listen 444

Changing the above from port 80 to 122 and 443 to 444 allowed me to have Apache run and serve pages while keeping everything else the same for my ASP.NET development. Hopefully this helps someone out there. In the end this is a very simple fix.

Direct your browser to: http://localhost:122


I have tried all the above solutions. But it was not working in any way.

Finally, I just uninstalled XAMPP and installed it again. Then it worked for me.

Now I am able to run the server on any port (including 80).


Actually, by default IIS (Microsoft, .NET, etc.) is installed.

  • Go to Control Panel
  • Turn Windows features on or off...
  • Under (IIS) Internet Information Services, uncheck the (WWWS) world wide web services.
  • Click OK.

This could be a permanent solution. :)


Check if your PHP installation works.

Check which php.ini file you are running in Apache's configuration and use it to run php.exe...


In my case it was a simple case of removing IIS because Windows 10 comes with IIS (Internet Information Service) pre installed - that conflicts with XAMPP because these both servers try to use the port 80. If you don't want to use IIS and keep using XAMPP

  1. Go to run/search in Windows 10
  2. Search for 'optional features'
  3. On that list untick Internet Information Service (IIS)

Then restart.


Steps:

  • Open the XAMMP Control Panel
  • Open Apache Config, and then select the Apache - xammp- configuration file
  • Search for "Port 443", and then change it to some other port, let’s say 4433
  • Then restart.

Solving this problem is easy:

  1. Open a command prompt with administrator privileges
    • Find "cmd", right-click on it, then select "Administrator".
  2. In the prompt, type net stop W3SVC and Enter.

You can now click in WAMPP and restart all services. Open your browser and navigate to "localhost".

If you need to start W3SVC again,

  1. Open a command prompt with administrator privileges
  2. In the prompt, type net start W3SVC and Enter.

I tried everything listed in the answers here but none of them worked.

Then all I did was to re-start XAMPP with administrator rights by:

Start menu - right click on XAMPP - select run as administartor

It worked. It is that simple.

I uninstalled IIS services, stopped WWW services, changed ports back to 80, blocked all apache and mysql connections from windows 10 firewall, but yes it still works!


If you have installed SQL Server, some of its services may block the port which XAMPP needs. I solved my problem by disabling SQL Server Reporting Services and now Apache starts without any problems.

Just open the services.msc, scroll down, and find SQL Server Reporting Services. Right click on it and click Stop.


  • Go to the start menu, and type Turn Windows features on or off
  • Uncheck Internet Information Services
  • Press OK

After playing around, really all you have to do is change two lines in the httpd.conf file:

Change "Listen 80" to "Listen 122" (or anything else you want)

and

"ServerName Localhost:80" to "Localhost:122" (or the port you changed above)

Then it all should fire right up :P


I got same problem, but the previous solutions leads us to change the port instead of getting the exact solution. I've searched about the ports of simple HTTP & HTTPS Protocols and found.

If another application is already running, the HTTP or HTTPS ports on the local machine, we'll get this problem obviously just because of those ports already in use and in a busy state.

That's why after changing the port number it was working. But instead of changing the port in the XAMPP server, I've used the following methods and it works for me.

Here's the following step which I've got during this fix up.

  1. Error which I got in XAMPP Server application.

    XAMPP Server Error

  2. At the top corner there's a button named Netstat. It's very useful for looking up the running ports on the system.

    Netstat button

  3. This is the Netstat application where I found an application already running and using the port number 443. In my case, it was vmware-hostd.exe. Your might be a different application. Try to search for port 80 (HTTP) or port 443 (HTTPS).

    Netstat application opened

  4. I just opened the Windows Task Manager, selected that application vmware-hostd.exe, and killed the process by using the End Process button. I've killed that process which was used port 443. And this application wasn't needed at the moment.

    Opened task manager and kill that application

  5. After killing the application in Windows Task Manager, Apache is now available at the moment. Here's the proof.

    Apache working


NOTE: *If you found any kind of application which is used the HTTP or HTTPS ports means port 80 or port 443 and the application isn't important or not vital then only kill the process of that application.

Otherwise, there isn't any need to follow these steps. Then you need to consider to change the port of your XAMPP application as stated in the previous answers.*


It looks like there are many options. The answer depends on your Windows installation. Here is my experience when having the same problem in a Windows 10 fresh install and fix the issue with the following step:

  1. Install Visual C++ Redistributable
  2. Open XAMPP and select configure in the Apache service
  3. Change the port 80 to 9000 or 81 or whatever you want in file httpd.conf on the line Listen 80
  4. Change the port on httpd-ssl.conf and change Listen 443 to Listen 441
  5. Restart XAMPP and start the Apache service. It works for me.

Note: I'm using XAMPP version 5.6.15 and XAMPP Control Panel version 3.2.2.


This advice was great. I had the same problem, but my solution was different, because I was so stupid, that I have renamed directory where XAMPP was located and since I had installed a lot of another programs I couldn't rename it back.

In my case there was original directory C:\Programs\Xampp and renamed it to C:\PROGRAMS_\Xampp and that was the mistake.

The solution was to find all references on C:\Programs and rename them C:\PROGRAMS_ in the XAMPP directory, because for some reason during the installation it writes absolute paths, not relative. Of course, there are some references in the registry too.


enter image description here

Change the port number which port are available in your system By following ways

1. First open the Apache “httpd.conf” file:

#Listen 12.34.56.78:80
Listen 80
ServerName localhost:80

to

#Listen 12.34.56.78:8080
Listen 8080
ServerName localhost:8080

2. Open httpd-ssl.conf:

Listen 443
<VirtualHost _default_:443>

to

Listen 441
<VirtualHost _default_:441>

3. Follow the trick. Now “Start” Apache and if everything goes well, your Apache server should start up.


You may just have updated your Windows to Version 1903 (OS Build:18362.239) or have changed user passwords. Despite having eliminated all port conflicts, I still kept getting the messages described by the OP at the very start of this post.

In the end I cured it by upgrading to XAMPP to 7.3.7. (When forced to reinstall, you might as well upgrade at the same time!)

But the problem reoccurred when I again went to change the 'root' user password.

The console error messages were masking the fact that table mysql.user was corrupt.

Check file mysql_error.log. If you are seeing Fatal error: Can't open and lock privilege tables: Index for table 'user' is corrupt; try to repair it, then have a look at this.


The World Wide Web Publishing service was not the only one responsible in my case.

I have IIS installed, so I had to stop the whole HTTP service.

These are the commands that I've executed in CMD (as administrator):

net stop W3SVC
net stop http

  1. Press Windows+R, and type regedit.

  2. Go to

     HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP
    

    Change the value of Start to 4, which means disabled.

  3. Reboot your computer.


You can change the port of Apache:

  1. Go to C:\xampp\apache\conf\httpd.
  2. Find by combination Ctrl+F line #Listen 12.34.56.78:80 and change the 80 to any you like for example 81
  3. The same with Listen 80 change to 81
  4. The same with ServerName localhost:80 change to 81.
  5. Go to C:\xampp\apache\conf\extra\httpd-vhosts and change 80 to 81

NameVirtualHost *:80 here

VirtualHost *:80 and here (two times)

  1. Restart Apache

To enter your web page, type: http://localhost:81/index.html


It's simply a matter of making port 80 available for your Apache service. The way I solved the problem was:

  1. On Windows 10, right click the start button and select Run
  2. Type services.msc and click OK
  3. Find and right click World wide web publishing service
  4. Select Properties
  5. Change the Startup type value to Automatic (Delayed Start)
  6. Restart your computer.

There you have it. All is back to normal.


I found that running apache_start in gave me the exact error and on which line it was.

My error was that I left a space in between localhost: and the port.


That was simple for me!

Try to run the XAMPP Control Panel as administrator.


I got the same problem and I solved it by uninstalling WAMP server.


Examples related to php

I am receiving warning in Facebook Application using PHP SDK Pass PDO prepared statement to variables Parse error: syntax error, unexpected [ Preg_match backtrack error Removing "http://" from a string How do I hide the PHP explode delimiter from submitted form results? Problems with installation of Google App Engine SDK for php in OS X Laravel 4 with Sentry 2 add user to a group on Registration php & mysql query not echoing in html with tags? How do I show a message in the foreach loop?

Examples related to apache

Enable PHP Apache2 Switch php versions on commandline ubuntu 16.04 Laravel: PDOException: could not find driver How to deploy a React App on Apache web server Apache POI error loading XSSFWorkbook class How to enable directory listing in apache web server Job for httpd.service failed because the control process exited with error code. See "systemctl status httpd.service" and "journalctl -xe" for details How to enable php7 module in apache? java.lang.RuntimeException: Unable to instantiate org.apache.hadoop.hive.ql.metadata.SessionHiveMetaStoreClient The program can't start because api-ms-win-crt-runtime-l1-1-0.dll is missing while starting Apache server on my computer

Examples related to xampp

Xampp localhost/dashboard phpMyAdmin ERROR: mysqli_real_connect(): (HY000/1045): Access denied for user 'pma'@'localhost' (using password: NO) Is there way to use two PHP versions in XAMPP? Where to find htdocs in XAMPP Mac phpMyAdmin access denied for user 'root'@'localhost' (using password: NO) How to downgrade php from 7.1.1 to 5.6 in xampp 7.1.1? How to turn on/off MySQL strict mode in localhost (xampp)? mysqli_connect(): (HY000/2002): No connection could be made because the target machine actively refused it How to install mcrypt extension in xampp Fatal error: Uncaught Error: Call to undefined function mysql_connect()