I have installed xampp on Windows7(64bit).I want to work with PHP, Apache and MySql.
The server Apache and the MySql services are running properly on the Xampp control panel.
But when I run the localhost on my web browser it just shows connecting. Nothing else. Compare to previous enviroment it runs well with IIS.
Try doing a netstat -a on your cmd and see if there are any other services which are running on port 80.You can also use netstat -b to find the name of the service however this requires cmd to be run as administrator. The most likely culprit is that there are some other services running on this port which do not allow Xampp to start up properly? Do you have a service like skype . If so that is the reason your not able to access particular page. An other thing you can do is to go into httpd.conf and change the listen to some other port other than 80 and test it out.Dont forget to add localhost:your selected port once you change the port to test it out.
If you changed your port number, then type localhost:'port number' to get to the xampp page.
ex: If your port number is 8080, then type localhost:8080.
Its possible that IIS or any other program (like Skype) causes Apache not to start. Although it shows "running" its actually not running.
To solve this, there is an easy trick: Install Apache as an service and restart your computer. This wil work most of the time, since there are a lot of programs that reserve port 80 its hard to find these programs and disable them.
if it's not the port, then go to htdocs, delete dashboard file and index file and you are good to go! :)
If you changed your apache listining port from 80 to 8080 ,then . . . write
localhost:8080/your_URL ... it will work :)
If you have following errors:
[Wed Jun 10 10:32:13.697671 2015] [core:warn] [pid 1408:tid 248] AH00098: pid file C:/xampp/apache/logs/httpd.pid overwritten -- Unclean shutdown of previous Apache run?
Failed loading /usr/local/lib/php/extensions/no-debug-zts-20060613/usr/local/Zend/lib/ZendExtensionManager.sote does NOT include an ID which matches the server name
which i am extracted from Apache Error log file.
Then you need check for running process of apache, you can do command also or you can do using GUI. I am explaining GUI method, open task manager(using ctrl+shift+esc) and go into process list and be assure that all the processes are visible including other logged in users. And search for Apache process and end them . You are done run it using XAmpp or wamp control panel.
Related
I've tried deleting skype but that didn't work, I've tried turning off the world wide web thing off, IIS off nothing seems to work.
12:51:22 PM [Apache] Problem detected!
12:51:22 PM [Apache] Port 80 in use by "Unable to open process" with PID 4!
12:51:22 PM [Apache] Apache WILL NOT start without the configured ports free!
12:51:22 PM [Apache] You need to uninstall/disable/reconfigure the blocking application
12:51:22 PM [Apache] or reconfigure Apache and the Control Panel to listen on a different port
Open a CMD prompt as administrator and execute the following command:
net stop was /y
Open the Run dialog box (press Win+R), then type: services.msc
Then search for World Wide Web Publishing Service (WWW-Publishing Service) and Web Deployment Agent Service and stop them. You should also disable them.
Start Apache again with XAMPP :)
Link Ref: https://www.sitepoint.com/unblock-port-80-on-windows-run-apache/
Another very easy option is to simply set Apache to listen on a different port. This can be done by clicking on the "Config" button on the same line as the "Apache" module, select the "httpd.conf" file in the dropdown, then change the "Listen 80" line to "Listen 8080". Save the file and close it.
Now it avoids Port 80 and uses Port 8080 instead without issue. The only additional thing you need to do is make sure to put localhost:8080 in the browser so the browser knows to look on Port 8080. Otherwise it defaults to Port 80 and won't find your local site.
This will also require you to restart Apache for the change to take effect.
Voila! Fixed.
In httpd.conf change the following lines and then restart the application:
Listen 80 to Listen 8080
ServerName localhost:80 to ServerName localhost:8080
When you press "Start" the application can still say that you have an error like "Port 80 in use by "Unable to open process" with PID..." but it will still work.
If the error includes "Port 443 in use by "Unable to open process" with PID..." you need to change both httpd.conf and httpd-ssl.conf.
In httpd-ssl.conf change:
Listen 443 to Listen 4433
<VirtualHost _default_:443> to <VirtualHost _default_:4433>
ServerName www.example.com:443 to ServerName www.example.com:4433
Extracted from this article:
Go to your run command and enter:
netstat -o -n -a | findstr 0.0:80
The last number here is the process ID using it. This is most often IIS or other web relates service and is easy to resolve, but every so often (very often it would seem looking around on google) it appears to be PID 4 – which according to the Windows Task Manager is the NT Kernel and System. Not very helpful given killing this will result in a blue screen of death.
The thing hogging port 80 has nothing to do with IIS or web anything, it's SQL Server Reporting Services. Turn off anything that resembles a SQL Server Services and start Apache again, no need for a reboot.
So problems with PID 4 listening to port 80? Check your SQL services and turn them off.
UPDATE -
Comment from #sangam:
Worked at a shot. In my case, it turned out to be SQL server reporting
services. I stopped the service for all the installed instances, and
it worked (without machine reboot).
So I have faced the same problem when trying to start Apache service and I would like to share my solutions with you.
Here are some notes about services or programs that may use port 80:
Skype: Skype uses port 80/443 by default. You can change this from Tools -> Options -> Advanced -> Connections and disable the checkbox "use port 80 and 443 for addtional incoming connections".
IIS: IIS uses port 80 be default so you need to shut it down. You can use the following two commands: net stop w3svc, net stop iisadmin.
SQL Server Reporting Service: You need to stop this service because it may take port 80 if IIS is not running. Go to local services and stop it.
VMware Workstation: If you are running VMware Workstation, you need to stop the VMware Workstation server - port 443 as well.
These options work great with me and I can start Apache service without errors.
The other option is to change Apache listen port from httpd.conf and set another port number.
Hope this solution helps anyone who faces the same problem again.
You might need to stop the "Web Deployment Agent Service"
Press Win+R and type services.msc
Right click on Web Deployment Agent Service and select "Stop"
Restart XAMPP
Also after double clicking "Web Deployment Agent Service" you can make the Startup type to Manual, So that "Web Deployment Agent Service" will not start automatically
As there is comment by #johnkarka on the question, this port is used by SQL Server reporting service as well. After stopping this, Apache started fine.
Go to "SQL Server Configuration Manager"
Click on "SQL Server Reporting Service" and stop it
The funny thing is IIS was working fine in same configuration but not Apache, had to stop SQL Reporting service to make it work on default port (80).
After changing the main port 80 to 8080 you have to update the port in the control panel:
Then click here:
And here:
Then save and restart.
Open Task Manager (Ctrl+Alt+Delete).
Go to "Details" tab.
Sort by PID number.
End process that is using PID number indicated in error.
Restart XAMPP.
What worked for me was stopping the Internet Information Services (IIS). If you are using Windows 7, click on your Start button and in your search box, type "iis". Click on "Internet Information Services (IIS) Manager". When the window pops up, and assuming you've got none of the icons selected, you should just be able to click Stop on the right action pane. My XAMPP Apache started right up. Hope it all worked out for you.
In windows 10, to free up port 80:
in my case, I open "Services" from "Search Windows" (on the left corner on screen), then stop all of SQL server services MSSQLSERVER and it works again
I had this problem too and stoping services using port 80 didn't helped. I resolved it by following this procedure (found on a french board):
Launch RegEdit
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP
Change the value of "start" to 4 (disabled)
Reboot your computer
Not sure how this affect other services, but it solved permanently the issue and so far I didn't see any issue.
Using Windows 10.
If you've SQLServer Reporting Services running locally then you need to stop that also..
I've had the same problem, but in my case Apache was already running and for some reason the XAMPP config tool didn't show that. It happened after I started XAMPP for the first time after the installation. After crashing the other Apache instances all was fine and ports 80 and 443 were free again.
So before making changes to your systeem, make sure something as obvious as the above isn't happening.
"SQL Server Reporting Service" was causing issues in my system, after stopping it, Apache started working fine
I have the same issue, I solved the problem, just disabled
"BranchCache Service" in services.
Somehow windows updates, this service is triggered in startup, and uses 80 ports. When you check via netstat you could see the system is used this but couldnt understand which service is used.
Click services on the Xampp control panel (filename is services.msc, extra info).
First, look for IIS, if it is running. Stop it (stop this service option on the left after clicking on the service name.). Then, this is the main problem, Look for Web deployment Service (not the exact name though it has Web deployment at the beginning.). Stop this service too. Try again and Apache should work.
If you are running Skype, exit out of that too, run Apache, then launch Skype
I've had same problem, when I was installed MS WebMatrix, IIS Server was blocked the port 80 which XAMPP was running on. I tried to find World Wide Web Publishing Service and stop it, but could not find it on list. Best way is changing a port.
Please refer with this
link ref.
For those with ASP.NET, C# or having SQL Server users, If you are using SQlServer OR Visual Studio Your port might encounter. easiest thing you might want to do is on Command> servies.msc and then find SQl Server Reporting Service and then stop it.
if the service is http.sys
You need to change the binded IP address for http.sys
netsh http add iplisten ipaddress=::
Work fine without restart the os.
The Web Deployment Agent Service is deployed with WebMatrix and was the cause of my woes. It may also be distributed with other applications installed using Microsoft’s Web Platform Installer.
Uninstall it solved my problems!
For me usually works:
- Turn off Skype
- Turn off all SQL Server processes displayed in services.msc
- Turn off World Wide Web Publishing in services.msc
It usually works afters you stop IIS Server and Skype
XAMPP - Port 80 in use by “Unable to open process” with PID 4! 12
run the comment in cmd tasklist
and find which the PID and process name related to this now open window task manager
you can also open window task manager by using CTRL+ALT+DEL
now click on the process tab and find the name which using PID and right click on that and
end process
now again restart the xampp
I had same issue. After some googling arrived to this page. Since I guess this error may have various reasons, so listen to my experience:
Xampp red line log:
12:53:54 PM [Apache] Problem detected!
12:53:54 PM [Apache] Port 443 in use by "Unable to open process" with PID 3908!
...
Finally it turned out that I had this line of code in my php codes :
$res = file_get_contents("http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]");
The purpose of this piece of code was to get a mirror of php result from somewhere in my server. But it's just stucked in a loop that gets its own content!
I repaired code:
$res = file_get_contents(str_replace("my_uri.php" , "mirror_uri.php" , "http://$_SERVER[HTTP_HOST]$_SERVER[REQUEST_URI]"));
Then I restarted apache ... and that apache error never happened again.
So sometimes searching for probable halting points in your code is a good approach.
In Ubuntu by default, the system will not allow you to occupy privileged ports [ 0 to 1023], other than specifying the port as 80, you need to run XAMP with sudo.
I write this, because i coudn't find answear for the same question.
In my case PID was 2484.
you must find a process or service with this PID:
open cmd (in Windows) and write:
tasklist
Find your PID in this list and read name of process or service.
Now you can kill this using Task Manager
find this name on Process list
click End Process.
That's my case. Possibly you must open services.msc and stop Service with your PID.
On my computer xampp it worked fine :)
I'm debugging my PHP app on CentOS7 using Apache.
My application is a Web GUI to manage the Torque batch system and I used the qmgr, which is a command line tool provided by Torque to do the management work.
Because only the root user can execute the qmgr and the Apache server cannot be running as root user, I have written a C program as a wrapper for anyone to execute commands as root user.
But the PHP application always give the following output:
socket_connect_unix failed: 15137
qmgr: cannot connect to server (errno=15137) could not connect to trqauthd
This means the PHP app cannot raise a socket connection to connect the Torque server.
Here is some additional information:
The command called by the PHP application can be executed correctly in the shell
The same PHP app can be executed correctly on a CentOS6 server with Apache
SELinux and the firewall are disabled
I have tried the two versions (5.1 and 4.10) of Torque, the result is the same
Apache and PHP are used with the default RPM's of CentOS7.
I thought there are some new security limits that maybe influence Apache on the CentOS7 server.
Please give me some suggestions, thank you!
I had the exact same problem.
The cause is that newer Apache.httpd versions default to having the systemd property PrivateTmp set to true. This causes the httpd service to see a private /tmp directory that is actually mapped to some other location in the file system, instead of the real /tmp directory. PHP, running in the Apache process, has the same /tmp directory as the Apache service, and so do any processes forked from PHP (e.g. using exec or system etc). So when PHP calls qsub (etc), that too will see the private /tmp directory.
This causes the error you mentioned because qsub internally uses the unix socket /tmp/trqauthd-unix to communicate with trqauthd. But qsub sees the "fake"/private /tmp directory instead of the real one, so it doesn't find the socket.
This explains why the command works when you run it manually in a console--in that case, qsub sees the real /tmp directory, as opposed to the private one it sees when forked from PHP (running the Apache service).
One solution is to simply change the PrivateTmp property in the file httpd.service from true to false. You can find this file under the /etc/systemd directory. The subfolder it is in probably depends on the linux distribution, so use the find command to locate it:
find /etc/systemd -name httpd.service
This really helped me!
I have been struggling a lot having a php script using exec()-command. For some reason I got permission denied. Having tried vary many things, including running my scripts in shell as the www-data user, but with no success, this was finally the solution to my problem.
BTW, for Ubuntu the apache service config file is located at cat /etc/systemd/system/multi-user.target.wants/apache2.service
All of a sudden I am encountering this problem on my mac. I cant start my MySQL Database. I can only start my ProFTPD and Apache Web Server.
This is the application log:
Starting all servers...
Starting MySQL Database...
Starting Apache Web Server...
/Applications/XAMPP/xamppfiles/apache2/scripts/ctl.sh : httpd started
Starting ProFTPD...
Checking syntax of configuration file
/Applications/XAMPP/xamppfiles/proftpd/scripts/ctl.sh : proftpd started
I have even did some research through stackoverflow. First i tried to end the process through my activity monitor by i couldnt find the keyword sql on the filter search area. The second method i tried was adding the unset DYLD_LIBRARY_PATH
but that didnt even worked for me.
Can i know how to solve this problem. Helps would be really appreciated. Thank you
#1. Open XAMPP Installation Directory
#2. Open "etc" Folder
#3. Find "my.cnf" file and open it in any text editor
#4. Change Port from 3306 to 3307 (if you have installed skype or other apps)
#5. Add "innodb_force_recovery=1" under "myisam_sort_buffer_size=8M"
#6. Save "my.cnf" file
#7. Restart Mysql Server By Your Terminal by command:
"sudo /Applications/XAMPP/xamppfiles/bin/mysql.server start"
You Get A message "Starting MySQL SUCCESS! "
For me, Xampp Control panel was not launching, and in Stackoverflow some where it was mentioned to add Read / Write for every one on every file of xampp, when I did that. It allowed me to launch xampp control panel but mysql was not starting.
Later I debuged and found that /Applications/XAMPP/xamppfiles/etc/my.cnf should not be writeable by everyone, mysql will ignore my.cnf if it is for everyone. I changed the permission to read only for this file, and able to start mysql server
I just solve the answer by going to the activity monitor and search for sql under all process and terminate it. then i restart my mac and now my sql database is working great for me.
I Know this post was originally posted last year, but I just had the same problem and I found the solution for me. So here it is, just in case this can help somebody else.
I tried all the suggestions I found online, including trying to terminate MySQL on the activity monitor, but then I realized that when you download/upgrade XAMPP - MySQL, the option to automatically start MySQLserver on Startup is ON. You need to turn it off. Here is what you do:
Go System Preferences and click on the Mysql icon, You should get this window:
Uncheck that option. You will be asked for your password. After you are done with that, restart your computer and the problem should be fixed.
I hope that help somebody who is as confused as I was. lol ✌🏼
Xampp Control Panel> Manage Server> Mysql Database > Configure > change the port from 3306 to 3307
At least it worked for me in mac.
For me using macOS Catalina, I had to delete this 2 files then quit and restart the manager-osx:
MyName-MacBook-Pro.local.err
tc.log
The folder path is this: /Applications/XAMPP/xamppfiles/var
Note: the 2 files were automatically regenerated after I start and Apache and MySQL
If mysql is not starting in xampp, it might be a port conflict issue. Mysql run by default on port 3306. you need to check if another application is occupying that port. use following command to check app occupying a port
lsof -nP -i4TCP:3306
if you find an application occupying that port, stop the application and restart xampp. As an alternative, you can go to php.ini file or click configure in the dropdown and change the mysql port to 3307
I spent whole day trying to resolve this issue. Changing the port no from 3306 to 3307 worked for me. Simply open the configure module and change the port number. Hope it works for you.
In case this may help. I followed all the steps above still nothing worked for me. And I follow this article MySQL database won't start in xampp and it worked. what is says is:
Steps
Open terminal and type
sudo su
and then put in your password
Then type
ps aux | grep mysql
You will need to get the process id of mysql. There should be number near the top, something like 739 or 8827 (in my case I got 74689, just look after mysql or _mysql process id)
Kill the process using
kill -9 {process id}
this should look something like this: kill -9 739
Restart MySQL in manager-osx
If any of the above don’t work, This should work:
sudo /Applications/XAMPP/xamppfiles/bin/mysql.server start
I tried the suggested solutions above however none worked for me. So I uninstalled XAMPP and then reinstalled it and so now MySQL server starts up ok.
I have an nginx app that was running on localhost and now I can no longer access it. I'm truly at a loss for how to diagnose the problem.
Some things I've investigated:
TimPeterson$ sudo lsof -i :80 ->shows tons of stuff, but nothing that looks like my app
System Preferences -> sharing ->toggle "web sharing" -> doesn't help
I'm not a total noob in that I've had this server running for over a year but obviously I did something or some software update jacked some part of the configuration.
You'll want to check the error log for anything related to nginx. MNPP appears to install nginx in /Applications/MNPP/Library/nginx.
I'm not sure if its the same in your case, but some time, localhost wont work on my mac os x
Try to use 127.0.0.1 instead of localhost and if it worked, check your /private/etc/hosts file
I Installed WAMP Server Successfully.
My OS is: Windows 7 32-bits
My Wamp Server is: 2.2E ( 32bits & php 5.3 )
I had same problem 4 months back. That time, I used this link. (but OS & WAMP are 64-bits) It's worked fine.
Now, that MSVCR100.dll not gave any problem. But WAMP logo is always 'yellow' color only. That's not return to 'green'. I installed vcredist_x86.exe
I uninstalled 'Avast', for my friend refer. But no Use. Help Me...
Thank you...
You can check if the port is being used by other program using WAMP menu -
Click on WAMP icon select Apache -> Service -> Test Port 80, this will check if the port is used by any other program
Also do this select Apache -> Service -> Install Service, this will make apache use port 80 if the port is not already used by any other program like IIS or Skype
Restart the WAMP see if the problem is fixed.
If port 80 is already used by some program, then you can choose other listening port for WAMP. To do this -
click WAMP icon -> Apache -> httpd.conf
Now find listen 80 (where 80 is port number, it can be different on your system)
Now change that to something else like 3333, you can access WAMP homepage by typing localhost:3333 or 127.0.0.1:3333 in browser's address bar.
If you want WAMP to use port 80, uninstall the program that is using port 80 and then do things stated in step 2 or you can change port in that program's setting, also check httpd.conf file for listen [port] line.
I found something I did wrong, install the Apache and MySQL services. Click on the WAMP logo, goto Apache -> Service -> Install Service, after that Apache -> Service -> Start/Resume Service. Do the same for MySQL and it will turn green.
I would prefer using the most easiest method.
Right click on the Wamp icon and go to
Tools > Use a port other than 8080 >
Set a different port, lets say 8081 and that's it. Problem resolved.
You are most welcome.
Click wamp icon :
1- apache -> httpd.conf (A notepad file will be opened)
2- Find 80
3 -Replace with 81
Listen 12.34.56.78:81 Listen 0.0.0.0:81 Listen [::0]:81
4- Restart wamp services
!!Done
I have same issue with IIS, i uninstalled IIS.
Type in run services.msc, I see "wampapache64" service was not running, when I start it using right click it give me error.
I just used these steps.
Click on WAMP icon select Apache -> Service -> Remove Service
Click on Wamp icon select Apache -> Service -> Install Service
Got green Wamp icon :(
CMD > netstat -ao > look for any line like 0.0.0.0:80 and look at the PID value (e.g. 4796)
Open Task Manager > Processes tab > View > Select Column > Tick on PID (Process Identifier) > OK to create new column
Look at the processes list in Task Manager > Sort by PID (the new column) and find the 4796 to know which program is using Port 80. Mine is Bit-Torrent. After close (exit) Bit-Torrent, Wampserver should work as usual.
You should also make sure that the ports WAMP uses aren't already in use.
That can be done by typing the following command into the command prompt:
netstat –o
Open cmd and type the command below.
netstat -o -n -a | findstr 0.0:80
Last column of each row is the process identifier (PID)
You can find the application that reserves port 80, using taskmanager services tab or just type tasklist in cmd.
Then follow this link:
http://www.ttkalec.com/blog/resolving-yellow-wamp-server-status-freeing-up-port-80-for-apache/
Quit skype and right click on wamp icon-apache-services-start all services that will work after wamp server is start you can use skype again ;)
The above answers are very reasonable but my solution was simply to run the installer as administrator.
This is clearly stated here on the wampserver forum (2nd tip).
There are 20 other suggestions as well.
I've had the above solutions work for me on many occasions, except one; that was after I buggered up an alias file - ie a file that allows the website folder to be located in another location other than the www folder. Here's the solution:
Go to c:/wamp/alias
Cut all of the alias files and paste in a temp folder somewhere
Restart all WAMP services
If the WAMP icon goes green, then add each alias file back to the alias folder one by one, restart WAMP, and when WAMP doesn't start, you know that alias file has some bad data in it. So, fix that file or delete it. Your choice.
In the tray, right click on the wamp icon select tools, in the mysql section, select use a port other than 3306 you should see a pop up, enter the port number, 3308 will be suggested, the server should restart after you click Okay, if not restart it yourself.
That worked for me.
Regards