XAMPP: nie można uruchomić Apache (Windows 10)

90

Używam XAMPP i mogę uruchomić Apache, ale MySQL ( phpMyAdmin ) start!

Kiedy zaczynam, pojawia się ten błąd;

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

Wyszukuję na niej i zmieniam port Apache w Config -> Service and Port setting. Mam;

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

Odinstalowuję również Skype (wersja Windows 8/10 / Metro). Nic nie działa. W pliku httpd.conf mam;

Listen 122
ServerName localhost:122

Zaczynam przez apache_start.bati otrzymuję;

(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

Pamiętaj, że wszystkie pliki dziennika nie istnieją! Skype został odinstalowany.

Félix Desjardins
źródło
Czy sprawdziłeś, czy port jest zablokowany?
Rizier123
1
Spróbuj także uruchomić jako administrator
nonamorando
3
Czy korzystasz ze Skype'a, gdy próbujesz włączyć Apache? Jeśli tak, zmień ustawienia Skype.
iSaumya
3
Nie możesz mieć localhost:80i słuchać portu 122. Wybierz port, którego chcesz słuchać.
Lorenz Meyer
Ok, dokonałem pewnej modyfikacji: @ Rizier123 -> Sprawdzam, ale nie jestem pewien, czy to dobry sposób. @ Will-Campbell -> Tak, ale nic więcej. @iSaumya -> Skype nie ma na moim komputerze. @ Lorenz-Meyer -> Mam teraz Listen 122iServerName localhost:122
Félix Desjardins

Odpowiedzi:

224

Aktualizacja: 15 maja 2018 r .:

Najnowsza aktualizacja systemu Windows 10 (ponownie) aktywowała usługę publikowania w sieci World Wide Web (w języku niemieckim: WWW-Publishingdienst ). Może to zależeć od opcji wybranych podczas konfiguracji aktualizacji, którą możesz później wprowadzić.

Aktualizacja: 4 sierpnia 2015 r .:

Jeśli wykonałeś czystą instalację systemu Windows 10, być może nie masz usługi publikowania w sieci Word . W takim przypadku prosta instalacja WAMP / XAMPP powinna działać dobrze.

Jeśli tak się nie stanie, spróbuj zainstalować pakiet redystrybucyjny Visual C ++, a następnie ponownie zainstaluj WAMP / XAMPP.


Miałem podobny problem z WAMP. W systemie Windows 10 TP usługa publikowania w sieci Word jest wstępnie zainstalowana. Jest to związane z usługami IIS i możesz je usunąć, jeśli ich nie potrzebujesz.

To blokuje port 80, przez co Apache zachowuje się dziwnie. Możesz wykonać poniższe czynności i spróbować ponownie.

  • Idź do Start, wpisz services.msc
  • Przewiń w dół w oknie Usługi, aby znaleźć usługę publikowania w sieci World Wide Web .
  • Kliknij go prawym przyciskiem myszy i wybierz Zatrzymaj .

Powinno to zwolnić port 80, a ponowne uruchomienie WAMP / XAMPP powinno umożliwić Ci uruchomienie!

Istnieją inne sposoby, aby to naprawić. Zobacz Uruchamianie WAMP w systemie Windows 10 .

Praveen Puglia
źródło
7
Co się stanie, jeśli na liście nie ma usługi „World Wide Web Publishing Service”?
Xtremefaith
6
Nazwa usługi jest W3SVC natomiast opis jest World Wide Web Service Publishing . Początkowo myślałem, że nie mam usługi, ponieważ nie widziałem usługi opisanej podczas sortowania według nazwy.
Jake Z
1
Tak, miałem też ten problem, który powtarzał mi „Proces z PID 4 używa portu 80”, kiedy go sprawdzałem, nazwa procesu brzmiała „System”. Ciągle myślałem, że mogę zepsuć mój komputer, gdybym spróbował zatrzymać ten proces. Ale to działało doskonale. Dzięki
Kebab Programmer
1
Dla tych, którzy nie korzystają z Uniform server Z (co jest świetne!), Mogę potwierdzić, że działa to również dla tego serwera.
MisterM
1
@PraveenPuglia hum .. interessant comment, work to me! Próbuję usunąć plik "ntoskrnl.exe" jest przyczyną portu 4 ... wiele wyszukiwarek Google mówi, że wirus ... fajne usługi do zatrzymania to praca lol .. dzięki brachu
KingRider
37

Rozwiązanie tego problemu jest łatwe:

  1. Otwórz wiersz polecenia z uprawnieniami administratora
    • Znajdź „cmd”, kliknij go prawym przyciskiem myszy, a następnie wybierz „Administrator”.
  2. W monicie wpisz net stop W3SVCi Enter.

Możesz teraz kliknąć WAMPP i ponownie uruchomić wszystkie usługi. Otwórz przeglądarkę i przejdź do „localhost”.

Jeśli chcesz ponownie uruchomić W3SVC,

  1. Otwórz wiersz polecenia z uprawnieniami administratora
  2. W monicie wpisz net start W3SVCi Enter.
DIANGELISJ
źródło
W wydanej wersji systemu Windows 10 pojawia się komunikat „Wystąpił błąd systemu 3. Odmowa dostępu”.
Mike_Laird
Musisz być administratorem. Spróbuj ponownie.
DIANGELISJ
Tak, dzięki DIANGELISJ. W systemie Windows 10 kliknij prawym przyciskiem myszy cmd, a następnie instrukcje powyżej, a następnie kliknij prawym przyciskiem myszy httpd.exe i ponownie uruchomiłem Apache. Pole httpd.exe jest czarne, ale Apache działa.
Mike_Laird
Miałem ten sam problem na Windows 10 używając XAMPP. Po każdym restarcie musiałbym przejść do panelu sterowania XAMPP i ponownie zainstalować i ponownie uruchomić usługi Apache i MySQL. Wydaje się, że uruchomienie panelu sterowania XAMPP jako administrator rozwiązało problem, dzięki!
SharpC
to jest prawidłowa odpowiedź, wszystko, co musisz zrobić, to zamknąć usługi IIS, a następnie uruchomić xampp. Panel sterowania - Administrator - Internetowe usługi informacyjne - „Stop” To wszystko. Proste jak ciasto. (to samo, co powyżej, tylko przez interfejsy.)
Elaine Ossipov
17

Znalazłem sposób na rozwiązanie tego problemu:

  1. Jeśli używasz również Skype'a, odznacz pole wskazujące, że chcesz używać portów 80 i 443 (Dodatkowe -> Ustawienia -> Zaawansowane -> Połączenia -> Usuń zaznaczenie portów 80 i 443)
  2. Uruchom ponownie Skype i XAMPP.

Jeśli to nie zadziała,

  1. Przejdź do Start i wpisz „services.msc”
  2. Znajdź „Usługa publikowania w sieci World Wide Web”
  3. Kliknij prawym przyciskiem myszy ten wpis, wybierz „Zatrzymaj”, a następnie uruchom ponownie XAMPP.

Jeśli to nie zadziałało, a usługa „World Wide Web Publishing Service” nie była dostępna,

  1. Przejdź do Panelu sterowania, przejdź do „Odinstaluj programy”, a następnie „Włącz / wyłącz funkcje systemu Windows”
  2. Zlokalizuj „Internetowe usługi informacyjne”
  3. Kliknij pole wyboru i naciśnij „OK”.
  4. Uruchom ponownie, a następnie powtórz drugie podejście (services.msc)
Fazal
źródło
Dzięki, ale odpowiedź już jest. Może mogłoby to komuś pomóc (:
Félix Desjardins,
Twoja odpowiedź nie mogła mi pomóc, znalazłem własne rozwiązanie. W każdym razie dzięki :)
Fazal
1
Znakomity! To był tylko Skype blokujący Apache! Moja ulubiona część procesu: po wyłączeniu portów Skype'a 80 i 443 musiałem wyjść ze Skype'a. Pojawiło się ostrzeżenie (parafrazowane) „Jeśli zamkniesz Skype, nie będziesz mógł z niego korzystać”. No cóż!
CJ Dennis
14

Możesz zmienić port Apache:

  1. Przejdź do C: \ xampp \ apache \ conf \ httpd.
  2. Znajdź według kombinacji Ctrl + F linia #Listen 12.34.56.78:80 i zmień 80 na dowolne, na przykład 81
  3. To samo z Listen 80 zmień na 81
  4. To samo z ServerName localhost: 80 zmień na 81.
  5. Przejdź do C: \ xampp \ apache \ conf \ extra \ httpd-vhosts i zmień 80 na 81

NameVirtualHost *: 80 tutaj

VirtualHost *: 80 i tutaj (dwa razy)

  1. Uruchom ponownie Apache

Aby wejść na swoją stronę internetową, wpisz: http: // localhost: 81 / index.html

Eksperymentator
źródło
Polecę
5
  1. Naciśnij Windows+ Ri wpisz regedit.

  2. Iść do

     HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP
    

    Zmień wartość Startna 4, co oznacza wyłączone.

  3. Zrestartuj swój komputer.

Do Nhu Vy
źródło
1
„Listopadowa aktualizacja” systemu Windows 10 spowodowała mój problem - wszystko działało wcześniej na starszej wersji Win 10. Nie miałem uruchomionego W3svc ani Skype. To rozwiązanie załatwiło sprawę! Dzięki @Do Nhu Vy!
Jim M,
5

Rozwiązałem również ten problem z moim, ale musiałem zmienić kilka rzeczy. Wymagam, aby na moim komputerze z systemem Windows 10 zachowałem środowisko programistyczne C # i Visual Studio, więc nie chciałem majstrować przy żadnych usługach. Wystarczyło pobrać najnowszą wersję XAMPP i zmienić porty nasłuchowe na 80 i 443. Znajdowały się one w dwóch plikach:

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

Listen 122
ServerName localhost:122

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

Listen 444

Zmiana powyższego z portu 80 na 122 i 443 na 444 pozwoliła mi uruchomić Apache i obsługiwać strony, zachowując wszystko inne takie same dla mojego ASP.NET programowania . Mam nadzieję, że to komuś pomoże. Ostatecznie jest to bardzo prosta poprawka.

Skieruj swoją przeglądarkę na: http://localhost:122

Paul Carlton
źródło
Myślę, że to najłatwiejszy i najprostszy sposób. Dziękuję bardzo!
Diptangsu Goswami
+1, ponieważ wyłączenie usług .NET zdecydowanie nie jest dla mnie opcją. Oczywiście chcę jednocześnie uruchamiać IIS i Apache!
Alan
4

Mam ten sam problem, ale poprzednie rozwiązania prowadzą nas do zmiany portu zamiast uzyskania dokładnego rozwiązania. Szukałem portów prostych protokołów HTTP i HTTPS i znalazłem.

Jeśli inna aplikacja jest już uruchomiona, porty HTTP lub HTTPS na komputerze lokalnym, otrzymamy ten problem oczywiście tylko z powodu tych portów, które są już używane i są w stanie zajętości .

Dlatego po zmianie numeru portu działało. Ale zamiast zmienić port na serwerze XAMPP, użyłem następujących metod i to działa.

Oto następny krok, który otrzymałem podczas tej naprawy.

  1. Błąd, który dostałem w aplikacji XAMPP Server.

    Błąd serwera XAMPP

  2. W górnym rogu znajduje się przycisk o nazwie Netstat . Jest to bardzo przydatne do wyszukiwania działających portów w systemie.

    Przycisk Netstat

  3. To jest aplikacja Netstat, w której znalazłem już uruchomioną aplikację i używającą portu numer 443. W moim przypadku był to vmware-hostd.exe . Twoja może być inna aplikacja. Spróbuj wyszukać port 80 (HTTP) lub port 443 (HTTPS).

    Otwarto aplikację Netstat

  4. Właśnie otworzyłem Menedżera zadań systemu Windows , wybrałem tę aplikację vmware-hostd.exe i zabiłem proces za pomocą przycisku Zakończ proces . Zabiłem ten proces, który używał portu 443. A ta aplikacja nie była w tym momencie potrzebna.

    Otwarto menedżera zadań i zabij tę aplikację

  5. Po zabiciu aplikacji w Menedżerze zadań Windows Apache jest teraz dostępny. Oto dowód.

    Apache działa


UWAGA: * Jeśli znalazłeś jakąkolwiek aplikację, która jest używana, porty HTTP lub HTTPS oznaczają port 80 lub port 443, a aplikacja nie jest ważna lub nie jest niezbędna, po prostu zakończ proces tej aplikacji.

W przeciwnym razie nie ma potrzeby wykonywania tych czynności. Następnie musisz rozważyć zmianę portu aplikacji XAMPP zgodnie z poprzednimi odpowiedziami. *

Dipak Bari
źródło
4

Wypróbowałem wszystko wymienione w odpowiedziach tutaj, ale żadna z nich nie zadziałała.

Następnie wszystko, co zrobiłem, to ponowne uruchomienie XAMPP z uprawnieniami administratora przez:

Menu Start - kliknij prawym przyciskiem myszy XAMPP - wybierz Uruchom jako administrator

Zadziałało. To takie proste.

Odinstalowałem usługi IIS, zatrzymałem usługi WWW, zmieniłem porty z powrotem na 80, zablokowałem wszystkie połączenia Apache i mysql z zapory systemu Windows 10, ale tak, nadal działa!

Tarik
źródło
2

Po zabawie tak naprawdę wszystko, co musisz zrobić, to zmienić dwie linie w pliku httpd.conf :

Zmień „Listen 80” na „Listen 122” (lub cokolwiek innego)

i

„ServerName Localhost: 80” na „Localhost: 122” (lub port, który zmieniłeś powyżej)

Wtedy wszystko powinno wystartować: P

Msquared86
źródło
2

Wygląda na to, że istnieje wiele opcji. Odpowiedź zależy od instalacji systemu Windows. Oto moje doświadczenie, gdy mam ten sam problem w nowej instalacji systemu Windows 10 i rozwiązuję problem, wykonując następujący krok:

  1. Zainstaluj pakiet redystrybucyjny Visual C ++
  2. Otwórz XAMPP i wybierz konfigurację w usłudze Apache
  3. Zmień port 80 na 9000 lub 81 lub cokolwiek chcesz w pliku httpd.conf w liniiListen 80
  4. Zmień port na httpd-ssl.conf i zmień Listen 443naListen 441
  5. Zrestartuj XAMPP i uruchom usługę Apache. Mi to pasuje.

Uwaga : używam XAMPP w wersji 5.6.15 i XAMPP Control Panel w wersji 3.2.2.

Gujarat Santana
źródło
2
Dobry chwyt - upewnij się, że porty http i https nie są w konflikcie
Aaron Hudon
1
  • Przejdź do menu Start i wpisz Włącz lub wyłącz funkcje systemu Windows
  • Usuń zaznaczenie opcji Internetowe usługi informacyjne
  • naciśnij OK
Clicia Scarlet
źródło
1

W moim przypadku był to prosty przypadek usunięcia usług IIS, ponieważ system Windows 10 jest dostarczany z wstępnie zainstalowanymi usługami IIS (Internet Information Service) - powoduje to konflikt z XAMPP, ponieważ oba te serwery próbują używać portu 80. Jeśli nie chcesz używać usług IIS i nadal używaj XAMPP

  1. Przejdź do uruchamiania / wyszukiwania w systemie Windows 10
  2. Wyszukaj „funkcje opcjonalne”
  3. Na tej liście odznacz opcję Internet Information Service (IIS)

Następnie uruchom ponownie .

almaruf
źródło
1

Zauważyłem, że uruchomienie apache_start w dało mi dokładny błąd i to, w której linii był.

Mój błąd polegał na tym, że zostawiłem spację między localhost: a portem.

Aaron Rabinowitz
źródło
Co to jest „uruchamianie apache_start w”? Na przykład, czy brakuje jakiegoś słowa?
Peter Mortensen
Kopiuj i wklej działa lepiej niż pisanie (chyba że oczywiście używany jest GNOME - unikaj GNOME za wszelką cenę).
Peter Mortensen
1

Usługa publikowania w sieci World Wide Web nie była jedyną odpowiedzialną w moim przypadku.

Mam zainstalowane IIS, więc musiałem zatrzymać całą usługę HTTP.

Oto polecenia, które wykonałem w CMD (jako administrator):

net stop W3SVC
net stop http
Ceparu Stefan
źródło
1

Jeśli zainstalowałeś SQL Server , niektóre z jego usług mogą blokować port, którego potrzebuje XAMPP. Rozwiązałem problem, wyłączając usługi SQL Server Reporting Services i teraz Apache uruchamia się bez żadnych problemów.

Po prostu otwórz services.msc, przewiń w dół i znajdź usługi SQL Server Reporting Services . Kliknij go prawym przyciskiem myszy i kliknij Stop.

Peyman.H
źródło
0

W rzeczywistości domyślnie są zainstalowane usługi IIS (Microsoft, .NET itp.).

  • Przejdź do Panelu sterowania
  • Włącz lub wyłącz funkcje systemu Windows ...
  • W obszarze Internetowe usługi informacyjne (IIS) usuń zaznaczenie opcji (WWWS) na całym świecie.
  • Kliknij OK.

To mogłoby być trwałe rozwiązanie. :)

Xyren Poh
źródło
0

Ta rada była świetna. Miałem ten sam problem, ale moje rozwiązanie było inne, ponieważ byłem tak głupi, że zmieniłem nazwę katalogu, w którym znajdował się XAMPP, a ponieważ zainstalowałem wiele innych programów, nie mogłem zmienić nazwy z powrotem.

W moim przypadku był oryginalny katalog C: \ Programs \ Xampp i zmieniono jego nazwę na C: \ PROGRAMS_ \ Xampp i to był błąd.

Rozwiązaniem było znalezienie wszystkich odniesień w C: \ Programs i zmiana ich nazwy na C: \ PROGRAMS_ w katalogu XAMPP, ponieważ z jakiegoś powodu podczas instalacji zapisuje ścieżki bezwzględne, a nie względne. Oczywiście w rejestrze znajdują się również odniesienia.

Mayk
źródło
Wydaje się, że jest to bardzo szczególny przypadek i nie wydaje się odpowiadać scenariuszowi pytania.
dakab
Tak zgadzam się, ale myślę, że to może komuś pomóc, bo miałem do czynienia z tą samą sytuacją (miałem świeżą windodw 10) i błąd był taki sam, więc może to nie jest dokładnie ten sam scenariusz, byt myślę, że ktoś colud uzna to za pomocne .
Maj
0

To po prostu kwestia udostępnienia portu 80 dla usługi Apache. Sposób, w jaki rozwiązałem problem, był następujący:

  1. W systemie Windows 10 kliknij prawym przyciskiem myszy przycisk Start i wybierz Uruchom
  2. Wpisz services.msc i kliknijOK
  3. Znajdź i kliknij prawym przyciskiem myszy Usługa publikowania w sieci WWW
  4. Wybierz Właściwości
  5. Zmień wartość typu uruchomienia na automatyczny (opóźniony start)
  6. Zrestartuj swój komputer.

Masz to. Wszystko wróciło do normy.

Rancantemos
źródło
0

To było dla mnie proste!

Spróbuj uruchomić Panel sterowania XAMPP jako administrator.

Ahmad Jahanbin
źródło
0

Wypróbowałem wszystkie powyższe rozwiązania. Ale to w żaden sposób nie działało.

Wreszcie po prostu odinstalowałem XAMPP i zainstalowałem go ponownie . Wtedy zadziałało dla mnie.

Teraz mogę uruchomić serwer na dowolnym porcie (w tym 80).

Sathish
źródło
0

Kroki:

  • Otwórz panel sterowania XAMMP
  • Otwórz Apache Config, a następnie wybierz plik konfiguracyjny Apache - xammp-
  • Wyszukaj „Port 443”, a następnie zmień go na inny, np. 4433
  • Następnie uruchom ponownie.
C Williams
źródło
dzięki, @Peter Mortensen za edytowanie mojej odpowiedzi :)
C Williams
0

Sprawdź, czy Twoja instalacja PHP działa.

Sprawdź, którego pliku php.ini używasz w konfiguracji Apache i użyj go do uruchomienia php.exe ...

Rubber Telly Media
źródło
0

Być może właśnie zaktualizowałeś system Windows do wersji 1903 (kompilacja systemu operacyjnego: 18362.239) lub zmieniłeś hasła użytkowników. Pomimo wyeliminowania wszystkich konfliktów portów nadal otrzymywałem komunikaty opisane przez OP na samym początku tego postu.

W końcu wyleczyłem go, aktualizując XAMPP do wersji 7.3.7. (W przypadku konieczności ponownej instalacji równie dobrze możesz dokonać aktualizacji w tym samym czasie!)

Ale problem wystąpił ponownie, kiedy ponownie poszedłem zmienić hasło użytkownika „root”.

Komunikaty o błędach konsoli maskowały fakt, że tabela mysql.user była uszkodzona.

Sprawdź plik mysql_error.log . Jeśli widzisz komunikat Błąd krytyczny: Nie można otworzyć i zablokować tabel uprawnień: Indeks tabeli „użytkownik” jest uszkodzony; spróbuj go naprawić , a następnie spójrz na to .

Zły przegrany
źródło
0

Mam ten sam problem i rozwiązałem go odinstalowując serwer WAMP .

Mikami
źródło
0

wprowadź opis obrazu tutaj

Zmień numer portu, który port jest dostępny w systemie, wykonując następujące czynności

1. Najpierw otwórz plik „httpd.conf” Apache:

#Listen 12.34.56.78:80
Listen 80
ServerName localhost:80

do

#Listen 12.34.56.78:8080
Listen 8080
ServerName localhost:8080

2. Otwórz httpd-ssl.conf:

Listen 443
<VirtualHost _default_:443>

do

Listen 441
<VirtualHost _default_:441>

3. Postępuj zgodnie ze wskazówkami. Teraz „Uruchom” Apache i jeśli wszystko pójdzie dobrze, serwer Apache powinien się uruchomić.

Safaetul Ahasan Piyas
źródło