MAMP crashes on launch - crash

I've got a problem quite annoying I cannot sort out.
I am running MAMP as a localhost server. Everything was working perfectly until I had the (maybe stupid) idea to modify my /private/etc/hosts file in order to add a domain name to my IP address.
In addition to be unable to add this domain name I am now faced with a crash when I try to open the MAMP software, more precisely with the famous
"the program has unexpectedly finished"
It seems that there is a problem with the configuration since an other error message appears and disappears very quickly after I click "ignore" or "restart" but I don't have time to read it. I try to uninstall (and reinstall) MAMP but as it could be expected the problem is still there.
I don't know what to do since it still goes wrong even after I change the hosts file as it was before my first modification (or at least as I think it was before).
Does anybody could help me to fix this problem?
EDIT:
Just in case this could help, this is the content of my current hosts file:
##
# Host Database
#
# localhost is used to configure the loopback interface
# when the system is booting. Do not change this entry.
##
127.0.0.1 localhost
255.255.255.255 broadcasthost
::1 localhost

what is the message when you launch MAMP with command line ? /Applications/MAMP/MAMP.app/Contents/MacOS/MAMP

Related

XAMPP, Apache and IIS on the same machine

Im trying to run XAMPP on the same machine as IIS but I cant make apache work. I changed the ports to 8080 and 4333 but I still cant run it. If I stop IIS service, apache starts normally. Is there any way to make it work here?
thanks.
These should work together as long as not colliding on ports, I currently run both at same time myself, and have run into same pain you have. XAMPP Apache doesn't say which port, it just don't start.
I commented out all "443 Listen" & "NameVirtualHost *:443" entries - (with #) , and changed xampp sites to a non iis port (my case 86) in apache\conf\httpd.conf, but also be sure you check the config(s) in E:\xampp\apache\conf\extra. xampp has "extra" configs there.
Be sure to check that D:\xampp\apache\conf\extra\httpd-vhosts.conf is not set to use\listen on 443.
updating answer here a bit...
Actually you may just need to comment the Listen 443 line, (change to #Listen 443, or change to 4333 or what ever) in D:\xampp\apache\conf\extra\httpd-ssl.conf at about line 36 or so. The section in that file with ..
<VirtualHost default:443>
defined can just sit there unused if you dont need it then, so no need to comment that section out for now.
Sorry, that was actually my issue - I did this so long ago I forgot. Apache files are not set up the same way.
...
Basically there is a port conflict you need to clear up. also be sure you dont leave "copied" or "backed" up conf files with the .conf extension in the conf folders - sometimes those get grabbed and used. Good luck on your dup port Hunt.
... putting my comments here because they may be getting buried...
ok, just try commenting out any listen settings other than the one you need (8081) in the config files instead (httpd.conf, extra/httpd-ssl.conf & extra/httpd-vhosts.conf). You may be bumping into your own listen settings elsewhere in your conf files. one time i mistakenly set 443 in main httpd.conf and in ssl.conf. besides you might not need 443 at all anyway. the answer is in your conf files somewhere. perhaps a file contents search for "listen" in the /conf/ folder might help.
also you may want to check out the "netstat" button from xampp panel - it should tell you a bit more about what is using what ports, that sometimes gives good clues
And if you did not know or are new to xampp/apache VERY IMPORTANT
REMEMBER TO RESTART APACHE AFTER ANY CONF CHANGE !

WAMP localhost redirects to my IP

I had to recently wipe my PC and I'm setting up my development environment again using WAMP.
After installing WAMP, if I visit http://localhost instead of seeing the WAMP homepage I get redirected to http://x.x.x.x, where x.x.x.x is my IP.
I had this issue on another PC and after setting the inbound rules for Apache HTTP Server in my Windows Firewall settings to allow all domains it fixed the issue. I applied this to my PC, and the issue does not seem to be present for Internet Explorer, whereas for Chrome and Firefox the localhost to my IP redirect issue persists even after clearing the cache for each browser.
My C:\Windows\System32\drivers\etc\hosts file looks like this:
127.0.0.1 localhost
::1 localhost
and my firewall rules look like this:
I am not currently using vhosts and I'm on a network at my workplace (if that has any implications?)
I also encountered the same issue when using Laragon which uses vhosts and whenever I visited a virtual host, e.g. mysite.dev it didn't work properly either.
My question on the Laragon forum: https://forum.laragon.org/topic/126/accessing-mysite-dev-redirects-to-url-which-shows-index-php-at-root-folder/3
The Problem
I'm behind a proxy which is used for browsing the web at my workplace. The proxy seemed to be messing up the dns resolution whenever I made a call to localhost (when using wamp) or one of my vhosts (when using Laragon).
This was clear as when I ran the following from the command line: ping site.dev I was getting the expected response from 127.0.0.1. However, when going to site.dev in my browser I was getting redirected to my IP, so essentially my etc/hosts file was being ignored for dns resolution.
The difference between the two being that the browser is using the proxy whereas the command line isn't!
The Solution
After trying many different solutions which seemed to work for localhost (on wamp) only, but not vhosts (on Laragon) I finally got to the solution which was actually so simple!
So, for chrome I simply went to chrome://settings/ > Network - Change proxy settings > LAN Settings > Proxy Server - Advanced
Then in the Exceptions text box I added the following:
*.dev;localhost;127.0.0.1
Here's a screenshot of my settings from Chrome/Internet Options
And that did the trick! Hope this can help someone else.

WAMP virtual host displays in Chrome, but Internet Explorer says "Page can't be displayed"

I installed WAMP and followed this guide to set up virtual hosts. In both Google Chrome and Internet Explorer, http://localhost gets me to "WAMPSERVER homepage" with my virtual host listed under "Your Projects."
Clicking that link to http://mysite.local in Chome brings me to my site as expected.
Clicking that link in Internet Explorer displays the following message instead.
This page can’t be displayed
•Make sure the web address http://mysite.local is correct.
•Look for the page with your search engine.
•Refresh the page in a few minutes.
Since I can see the WAMPSERVER homepage as expected in both browsers, I don't think there's a problem with my WAMP installation. Since my virtual host is working in Chrome, I think it must be configured properly in Apache and in my Windows hosts file.
I just don't understand why Internet Explorer isn't working with my virtual host like I expect it to, and the "Page can't be displayed" message doesn't give me anything helpful to work with.
Does anyone have any suggestions for me? I'd greatly appreciate any pointers or links to other guides I can try. Thanks in advance for any replies!
There's several reasons WAMP/MAMP may not work on a local environment, I'll try to list a few reasons here:
Which httpd.conf?
There are sometimes multiple httpd.conf files that can cause things to go a little bit funny. MAMP/WAMP usually tend to keep all their configuration files within a conf/ directory however, that doesn't mean to say some other httpd.conf file is being used...
You can also run this command on Linux based systems to see which one is being used:
apache2ctl -V | grep SERVER_CONFIG_FILE
vhosts definitions not included in httpd.conf
In the httpd.conf file, there's a line to include the vhosts definitions file, it should be uncommented:
# Virtual hosts
# Include conf/extra/httpd-vhosts.conf // remove the #
Incorrect vhosts definitions
Vhosts need to be defined as follows:
<VirtualHost *>
DocumentRoot "C:/path/to/your/local/site"
ServerName mydomain.local
</VirtualHost>
Hosts file
On OS X/Linux systems this can be found at etc/hosts. Edit that to reflect below (note, you'll need to be root)
127.0.0.1 mysite.local
On windows systems, it can be found in %SystemRoot%\System32\drivers\etc\hosts.
Browser caches
Browser caches always cause an issue with local servers/development. It's worth working with incognito mode on, or deleting all browser caches each and every time you open it up. There's a few plugins available for most browsers that should help too.
Other points to note
Whenever you edit anything to do with httpd.conf, vhosts, hosts file - WAMP/MAMP/Apache needs to be restarted. It's a good idea to shut the server down before doing the changes.
You mentioned that there was a hardcoded link in one/some of your files. It's generally regarded as bad practise to do that for this exact reason. Your code is less portable and can 'break' on other systems. I'd suggest using PHP's __FILE__ or similar to achieve what you want.
Alternatively you could set up local configuration files for your app that are only included when they're present. Have a look at this for a good example of such a set up.
Log everything. Check the logs regularly too.

Xampp gives error while starting Apache HTTPd

Apache shutdown unexpectedly. This may be due to a blocked port,
missing dependencies, improper privileges, a crash, or a shutdown by
another method. Press the Logs button to view error logs and check the
Windows Event Viewer for more clues If you need more help, copy and
post this entire log window on the forums
I found that there was nothing in the logs, and the advice to go to the xampp root with a cmd and run apache_start.bat actually got the error (a missing path in the .conf file) which didn't show up any other way.
All working now.
If this is a fresh install, rather than using the control panel to start Apache, you may want to go to XAMPP's root directory and call apache-start.
In my case, apache was failing to start due to a configuration error
httpd.exe: Syntax error on line 37 of C:/..../xampp/apache/conf/httpd.conf:
ServerRoot must be a valid directory
If that's the case, make sure that you run setup_xampp (Thanks to https://stackoverflow.com/a/17978400/239408 !)
Most likely you have blocked port 80. The most common problem is skype, change skype settings to use a different port, and restart.
Then run apache.
IF you encounter this kind of error in XAMPP
"This may be due to a blocked port, missing dependencies,
improper privileges, a crash, or a shutdown by another method.
Press the Logs button to view error logs and check
the Windows Event Viewer for more clues
If you need more help, copy and post this
entire log window on the forums"
1) First thing you do is click the Netstat on the Xampp (it will give you the list of names, ports, address and PID)
2) Find the Port 80 and Check the Name who uses the port. for Example [httpd.exe]
3) Then go to the window task manager and click the processes
4) Find the Name of the application who uses the port. click the name and click end process
5) then back to the Xampp and click Start
Right click on Xampp Control Panel, and click on 'Run as Administrator'
That solved my problem.
I previously installed my XAMMP on one of my usb keys. Windows exchanged inadvertently their drive letters, making all my paths wrong in my XAMMP setup files. I changed back manually the drive letter of one key (before replugging the other one into my pc) so everything is ok again.
Hope this was helpfull.
JoVD.
As I am working in a corporate environment where developers faces firewall issues, none of the other answers resolved my issue.
As the port is not used by Skype, but by some other internal applications, I followed the below steps to resolve the issue:
Step 1 - From the XAMPP Control Panel, under Apache, click the Config button, and select the Apache (httpd.conf).
Inside the httpd.conf file, somehow I found a line that says:
Listen 80
And change the 80 into any number / port you want. In my scenario I’m using port 8080.
Listen 8080/1
Still from the httpd.conf file, I found another line that says:
ServerName localhost:80
And change 80 to 8080/1.
ServerName localhost:8080
Step 2 - From the XAMPP Control Panel, under Apache, click the Config button again, but this time select the Apache (httpd-ssl.conf). Inside the httpd-ssl.conf file, find line that says
Listen 443
And change the 443 into any number / port you want. I’ll using 4433 as the new port number.
Listen 4433
Still from the httpd-ssl.conf file, find another line that says
ServerName localhost:443
And change 443 to 4433.
ServerName localhost:4433
Remember to save the httpd.conf and httpd-ssl.conf files after performing some changes. Then restart the Apache service.

How to solve "Error: Apache shutdown unexpectedly"?

I've just re-installed XAMPP, and when I try to start my Apache server in the XAMPP Control Panel, I now get the following errors:
16:50:25 [Apache] Status change detected: running
16:50:26 [Apache] Status change detected: stopped
16:50:26 [Apache] Error: Apache shutdown unexpectedly.
16:50:26 [Apache] This may be due to a blocked port, missing dependencies,
16:50:26 [Apache] improper privileges, a crash, or a shutdown by another method.
16:50:26 [Apache] Press the Logs button to view error logs and check
16:50:26 [Apache] the Windows Event Viewer for more clues
16:50:26 [Apache] If you need more help, copy and post this
16:50:26 [Apache] entire log window on the forums
How do I solve this?
As I am working in a corporate environment where developers faces firewall issues, none of the other answers resolved my issue.
As the port is not used by Skype, but by some other internal applications,
I followed the below steps to resolve the issue:
Step 1 - From the XAMPP Control Panel, under Apache, click the Config button, and select the Apache (httpd.conf).
Inside the httpd.conf file, somehow I found a line that says:
Listen 80
And change the 80 into any number / port you want. In my scenario I’m using port 8080.
Listen 8080
Still from the httpd.conf file, I found another line that says:
ServerName localhost:80
Change 80 to 8080.
ServerName localhost:8080
Step 2 - From the XAMPP Control Panel, under Apache, click the Config button again, but this time select the Apache (httpd-ssl.conf). Inside the httpd-ssl.conf file, find line that says
Listen 443
And change the 443 into any number / port you want. I’ll using 4433 as the new port number.
Listen 4433
Still from the httpd-ssl.conf file, find another line that says
<VirtualHost _default_:443>
ServerName localhost:443
And change 443 to 4433.
<VirtualHost _default_:4433>
ServerName localhost:4433
Remember to save the httpd.conf and httpd-ssl.conf files after performing some changes. Then restart the Apache service.
Open Skype.
Tools -> Options -> Advanced -> Connection.
Uncheck the "Use port 80 and 443 for alternatives for incoming connections" checkbox
Sign Out and Close all Skype windows. Try restarting your Apache.
In XAMPP Control Panel V3.2.1, click on "NetStat" button on top right. Make sure port 80 is not used by any other program. Then click on "Shell" Right below it. Issue this command in the shell prompt;
Apache_Start.bat
or type "ap" then tab the TAB key two times which will similarly generate the above command.
You will actually see the exact error why Apache failed. It will be mostly likely virtual host configuration issue or may be something else. It will display the line number on which the error is occurring. Just fix that error. Note that in RootDocument a trailing \ can be a source of error as well. Remove any trailing "".
One thing you can do is to stop the services on port 80 by issuing
net stop http
in a cmd. You'll be asked if you're sure you want to stop those services. I found out that I had a few services I wasn't using and disabled them.
To see who else is using port 80 type in a cmd
netstat -abno
I'm assuming you want to run Apache on port 80. If this is the case and you want to keep the conflicting services you will need to associate them to a new port.
If the problem is not a busy port you can also try the following: select "show debug information" in the XAMPP config panel. When starting Apache you'll be shown something like "Executing "c:\xampp\apache\bin\httpd.exe". If you run that
c:\xampp\apache\bin\httpd.exe
in a cmd you will get some more information (I once for instance had some issue with my httpd.conf file).
Related: How do I free my port 80 on localhost Windows? and Apache won't run in xampp
Follow these steps:
Open your XAMPP control panel then click its "Config"
Choose the "Apache (httpd.conf)" and find this code below and change it into this one:
#Change this to Listen on specific IP addresses as shown below
#to prevent Apache from glomming onto all bound IP addresses.
#Listen 0.0.0.0:80
#Listen [::]:80
Listen 80
# Dynamic Shared Object (DSO) Support
Save it (Ctrl + S)
After that, go back to the XAMPP control panel and click its config again.
Choose "Apache (httpd-ssl.conf)", find this code below, and change it again:
# Note: Configurations that use IPv6 but not IPv4-mapped addresses need two
# Listen directives: "Listen [::]:443" and "Listen 0.0.0.0:443"
#
#Listen 0.0.0.0:443
#Listen [::]:443
Listen 443
Save it (Ctrl + S)
Then, click the "config" (note: above the netstat) and click the "service and port settings".
Change "Main Port" to 8080 and "SSL Port" to 4433, then save it.
Finally, go to the "control panel" -> "Programs & Features" -> "Turn Windows On or Off".
Uncheck your "Internet Information Services", and then click OK.
Just wait for it and your computer/laptop will be automatically restart and try to open your XAMPP control panel again, and then start your Apache.
My problem was that in httpd.conf the DocumentRoot and <Directory> entries were pointing to non-existing folders.
For example, the 'original' httpd.conf had the following entries:
DocumentRoot "c:/Apache24/htdocs"
<Directory "c:/Apache24/htdocs">
If you've installed in C:\xampp then you need to change those entries to match, i.e.
DocumentRoot "c:/xampp/htdocs"
<Directory "c:/xampp/htdocs">
This worked for me...
If you are using windows...
Search 'cmd' in the windows search bar.
Enter this:C:\xampp\apache\bin\httpd.exe
Find which file and which line the error occurred.
For example, mine was in the file below
on line 37.
httpd-multilang-errordoc.conf
Open the code and fix the error by either removing the line or fixing it.
Done! I should work now.
:)
If you're using Windows 7 . Search for IIS in Windows search (Click the Window icon in left bottom and type in where it says 'Search program and files') .
Open IIS (Internet Information Service) .
In the right side in actions panel. Click Stop.
Note: The stop link is faded in screen shot. As I've stopped it.
Problem Solved!
I had the same issue, and it turns out I forgot to run setup_xampp.bat (portable version).
It seems that no one has answered about executing xampp_start.exe.
I did all the previous answers but it did not fixed my issue. I found out that running xampp_start.exe will give you a detailed info about the issue.
This is what I see on my end:
As you can see I was having a path issue or xampp is pointing to non-existing folder.
When I found that there was no process using port 80 by using commands
netstat -abno | find ":80"
there was not a problem of any process using port 80.
Then I ran command (in cmd)
C:\xampp\apache\bin\httpd.exe
it showed some error in the virtual hosts configuration in httpd-vhosts.conf file which was recently edited by me for installation in a WordPress PHP environment in the Eclipse IDE. So I deleted those lines and Apache started perfectly.
The simple thing that you can do is to check if Skype or VMware is installed in your machine or not.
Skype uses port 80 and 443 as an additional port for incoming connections. To change the port number in Skype, go to
Tools > Connection Options > Connection
in the Skype window. Now change the default 80 port number to something other.
VMware Workstation uses port 443 for sharing. To change this, open VMware Workstation and goto
Edit > Preferences > Shared Vms
Click "Change Settings" buton
Then Click "Disable Sharing"
Then change the https port number being used (443)
Then you can click "Enable Sharing" button
That's all you have to do. Restart XAMPP and run the Apache server.
I had the same problem sometime back. I had a old laptop, on which almost all the ports were either blocked or were malfunctioning. This is how I did it.
Open the XAMPP control panel.
Click on Config
Then, go into Apache httpd.conf file. Open it with a text editor.
Search for "80" (Do Ctrl + F and find all of them. Replace it with 8080 or 4040 or 4000).
Save the file. And restart XAMPP.
It worked well for me, and I hope it helps you too.
For me, world wide web publishing-service was using port 80. I killed this by running the following command on cmd:
net stop http
After that, XAMPP ran Apache without any problems.
One of the causes could be that you are not running the XAMPP Control Panel as an administrator.
This error occurs because the port, which is allocated for Apache, is used by another program. To check the application which uses the port, which we allocated for Apache, it can be had by clicking,
Netstat button.
This is the Netstat file,
At first, I have allocated port 8080 for Apache, and I recently installed Oracle DB.TNSLSNR.exe has used 8080 port now.
So, by looking at this file we can choose a port which is not clashing with other applications. In my case, port 8060 is not clashing with any application. By selecting that we can change the httpd.conf file (XAMPP control panel -> Config) as mentioned above.
download new xampp apachefriends
install it
remove all VPN app
open folder XAMPP run setup_xampp.bat
run xampp-control.exe
Sometimes the issue is not a port issue but may be due to a misconfiguration that you did and Apache is not logging the error on the Event Viewer in Windows. To go around this, simply
cd C:\xampp\apache\bin
and then run
httpd.exe
Apache will then spit out the error for you e.g. as below
AH00526: Syntax error on line 2 of C:/xampp/apache/conf/httpd.conf: Invalid command 'This', perhaps misspelled or defined by a module not included in the server configuration
I hope that helps some poor soul :)
In my case, this issue was caused by an attempt to download other product of bitnami, like WordPress. That's common when we install WordPress via XAMPP. It is placed in the xampp/app directory that can be accessed from the XAMPP application homepage.
As a solution, I removed the default installed WordPress from the xampp directory and manually installed WordPress in the htdocs folder of WordPress by downloading it and extracting zip files into the htdoc folder. You also need to restart XAMPP or may system after uninstalling/removing the default WordPress. All is OK for me now.
Make at first sure your \xampp folder is in the root! This is important as the path is relative.
Then make sure you run the xampp_control.exe with admin rights.
Then change the files below to avoid issues with blocked port 80.
In \xampp\xampp-control.ini it should be set:
[ServicePorts]
Apache=8080
ApacheSSL=4433
Find \xampp\apache\conf\httpd.conf and set:
Listen 8080
ServerName localhost:8080
Find \xampp\apache\conf\extra\httpd-ssl.conf and set:
Listen 4433
<VirtualHost _default_:4433>
ServerName www.example.com:4433
Then end all services and restart xampp-control.exe with admin rights. It should run!
I have just encountered this error on my xampp v3.2.2 [win 10 pro x64],
I first tried to run the "net stop http" command in an admin cmd, but it didnt solve the issue, so I went ahead to try the "netstat -abno" command and i found out that the ssl port(443) was in use by vmware.
so my advice, don't just look for what's blocking port 80, also look for potential programs using port 443. because I really don't like changing my default port numbers to 8081 and 4433.
So this is how you can solve this issue...
firstly type the following command
net stop http
then try to start apache, if it still doesn't work. type out the following command
netstat -abno
and you'll definitely get that troublesome app that's using up your precious port.
copy the pid and then use the following command
taskkill /f /pid PID
where PID is the pid you copied.
Hopefully this helps someone.
In my case port was already used by windows IIS service.
You can check if port is being already used from cmd. Open cmd and run this command:
netstat -ano
If it is being used by IIS you can stop it by following command. Open cmd as administrator, then:
iisreset /stop
Now try running XAMPP, it should work.
You can run apache_start.bat file from XAMPP directory for see details about your error details.
Try the following, none of the above solved it for me
Select "Run as administrator"
Then click on the big left box next to Apache
And Choose to uninstall Apache
I have no idea why this worked but it solved my problem directly!
Step 1: In Apache go to Config then select Apache(httpd.conf)
In the notepad, find Listen 80 and add another 80 to change the port to become Listen 8080
Make sure to save before closing the notepad.
Step 2: In Apache go to Config the select Apache(httpd-ssl.conf)
In the notepad, find Listen 443 and add another 3 after 443 to change the port to become Listen 4433
Then search for VirtualHost default:443 and add another 3 to change the port to become VirtualHost default:4433
Make sure to save before closing the notepad.
(Note: There is a similar answer here but it did not work for me until I fond a video on YT)
I solved the problem with stopping the service "Web Deployment Agent Service". Open: System -> Computer Management -> Services -> Web Deployment Agent Service. Stop this service and starting XAMPP works.
I think this is a service by MS Webmatrix.
(German: Systemsteuerung -> System und Sicherheit -> Verwaltung -> Dienste -> Webbereitstellungs-Agent-Dienst)
Best solution
open XAMPP control panel,click on config for Apache, then click on Apache(httpd.config).now in the text editor . ctrl+f --> find "Listen 80" and replace it with "Listen 8079" wtihout the quotations :)
but now you have to use it like this http://localhost:8079/
P.S, I tried to change port settings for skype , stopping the Web Deployment Agent Service which I could not find in windows 10,cmd--> net stop http, and other methods but nothing worked except this .
I had the exact same error message as the OP, but my problem was not addressed by any of the existing answers. Many of the answers deal with conflicts on port 80, which I knew I did not have, since I had had localhost responding on port 80 very recently.
Turns out I had inadvertently changed ServerRoot when I intended to change DocumentRoot (stupid, I know), and though the new ServerRoot directory existed, it did not contain the configuration files and other stuff apache needed, which caused it to fail on startup. The error message probably addresses this scenario by the wording 'missing dependencies'.
On my Windows system, setting ServerRoot back to C:/XAMPP/apache solved the problem.
The Apache server by default runs on ports 80, 443. Your problem is one or both of the two ports are busy. Usually Skype or VMware Workstation use these two ports. So, make sure that they're not running. The best way to make sure the ports are free on windows is :
Click windows button.
In the search bar type resmon, to open the resource monitor resmon.exe.
Open Listening Ports, this will show you the opened used ports.
Now you can see which process is using ports 80 and 443.
Then you can kill the process either from CMD using its PID (which is shown in the resource monitor), or directly from Task Manager.
To kill a process from CMD using PID type Taskkill /PID 26356 /F, where 26356 is the PID.
Best Solution for windows user is :
Open netstat (from XAMPP CONTROL PANEL)
Find PID of process which uses port 80.
Open CMD with Administrative.
Run taskkill /pid PID (instead PID use pid u found from netstat)
Heyy enjoy u Done.....