XAMPP: Не вдалося запустити Apache (Windows 10)


89

Я використовую XAMPP, і я можу запустити Apache, але, MySQL ( phpMyAdmin ) запустити!

Коли я починаю, я отримую цю помилку;

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

Я шукаю на ньому і, змінюючи порт Apache в Config -> Service and Port setting. У мене є;

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

Я також видаляю Skype (версія Windows 8/10 / Metro). Нічого не працює. У файлі httpd.conf я маю;

Listen 122
ServerName localhost:122

Я запускаю це через apache_start.batі отримую;

(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

Зверніть увагу, що всі файли журналів не існують! Skype видалено.


Ви перевіряли, чи не заблоковано порт?
Rizier123

1
Спробуйте також запустити адміністратора
nonamorando

3
Ви запускаєте Skype, коли намагаєтесь увімкнути apache? Якщо так, то змініть налаштування Skype.
iSaumya

3
Ви не можете мати localhost:80і слухати порт 122. Виберіть, який порт слухати.
Lorenz Meyer

Гаразд, я зробив деякі зміни: @ Rizier123 -> Я перевіряю, але я не впевнений, що це хороший спосіб. @ Will-Campbell -> Так, але не більше того. @iSaumya -> Skype відсутній на моєму комп'ютері. @ Lorenz-Meyer -> Я маю зараз Listen 122іServerName localhost:122
Félix Desjardins

Відповіді:


223

Оновлення: 15 травня 2018 р .:

Останнє оновлення Windows 10 (повторно) активувало Службу видавництва World Wide Web (німецькою мовою: WWW-Publishingdienst ). Це може залежати від параметрів, які ви оберете під час конфігурації оновлення, яке можна зробити після цього.

Оновлення: 4 серпня 2015 р .:

Якщо ви здійснили чисту інсталяцію Windows 10, можливо, у вас немає служби широкої веб-публікації . У цьому випадку проста установка WAMP / XAMPP повинна працювати нормально.

Якщо цього не сталося, спробуйте встановити Visual C ++ Redistributable, а потім переінсталюйте WAMP / XAMPP.


Я стикався з подібною проблемою з WAMP. У Windows 10 TP служба Word Wide Web Publishing поставляється з попередньо встановленою версією. Це пов’язано з IIS, і ви можете видалити його, якщо він вам не потрібен.

Це блокує порт 80, змушуючи Apache діяти дивно. Ви можете зробити наступне та повторити спробу.

  • Перейдіть до меню Пуск, введіть services.msc
  • Прокрутіть униз у вікні Служби, щоб знайти Службу видавництва всесвітньої павутини .
  • Клацніть правою кнопкою миші та виберіть Зупинити .

Це повинно зробити порт 80 безкоштовним, і перезапуск WAMP / XAMPP повинен забезпечити вам роботу!

Є й інші способи це виправити. Див. Примусове використання WAMP у Windows 10 .


7
Що робити, якщо у мене в списку не вказано "Службу видавництва всесвітньої мережі"?
Xtremefaith

6
Ім'я сервісу є W3SVC , а опис є World Wide Web Publishing Service . Спочатку я не думав, що маю послугу, оскільки не бачив послуги, описаної при сортуванні за назвою.
Jake Z

1
Так, у мене також була ця проблема, вона постійно говорила мені: "Процес, в якому PID з 4 використовує порт 80", коли я перевіряв його, назва процесу була "Система". Я продовжував думати, що можу зіпсувати свій ПК, якщо спробую зупинити цей процес. Але це спрацювало чудово. Дякую
Програміст

1
Для тих, хто не користується уніфікованим сервером Z (що чудово!), Я можу підтвердити, що це працює і для цього сервера.
MisterM

1
@PraveenPuglia hum .. цікавий коментар, працюй зі мною! я намагаюся видалити файл "ntoskrnl.exe" є причиною порту 4 ... багато пошуку в Google кажуть вірус ... приємні сервіси зупинити - це робота
хал

37

Вирішити цю проблему просто:

  1. Відкрийте командний рядок із правами адміністратора
    • Знайдіть "cmd", клацніть на ньому правою кнопкою миші, а потім виберіть "Адміністратор".
  2. У запиті введіть net stop W3SVCі введіть.

Тепер ви можете натиснути WAMPP і перезапустити всі служби. Відкрийте браузер і перейдіть до пункту "localhost".

Якщо вам потрібно запустити W3SVC знову,

  1. Відкрийте командний рядок із правами адміністратора
  2. У запиті введіть net start W3SVCі введіть.

У випущеній версії Windows 10 з'являється повідомлення "Сталася системна помилка 3. Доступ заборонено".
Mike_Laird

Вам потрібно бути адміністратором. Спробуйте ще раз.
ДІАНДЖЕЛІС

Так, дякую DIANGELISJ. У Windows 10 клацніть правою кнопкою миші на cmd, а потім вказівки вище, потім клацніть правою кнопкою миші на httpd.exe, і я знову працюю в Apache. Поле httpd.exe є чорним пробілом, але Apache працює.
Mike_Laird

У мене була та ж проблема в Windows 10 за допомогою XAMPP. Після кожного перезапуску мені доведеться переходити до панелі керування XAMPP, перевстановлювати та знову запускати служби Apache та MySQL. Запуск панелі керування XAMPP, як адміністратор, здається, вилікував, дякую!
SharpC

це правильна відповідь, все, що вам потрібно зробити, це вимкнути IIS, а потім запустити xampp. Панель управління - Адміністратор - Інформаційні служби Інтернету - "Зупинити" Ось і все. Легкий, як пиріг. (те саме, що вище, лише через інтерфейси.)
Елейн Оссіпов,

17

Я знайшов спосіб вирішити цю проблему:

  1. Якщо ви також використовуєте Skype, зніміть прапорець із зазначенням використання портів 80 і 443 (Додатково -> Налаштування -> Додатково -> Підключення -> Зніміть позначки Порти 80 і 443)
  2. Перезапустіть Skype і XAMPP.

Якщо це не працює,

  1. Перейдіть до меню Пуск і введіть "services.msc"
  2. Знайдіть "Службу видавництва у всесвітній мережі"
  3. Клацніть правою кнопкою миші на цьому записі, виберіть "Зупинити", а потім перезапустіть XAMPP.

Якщо це не спрацювало, а "Видавнича служба всесвітньої мережі" була недоступна,

  1. Перейдіть на панель керування, перейдіть до пункту «Видалити програми», потім «Увімкнути / вимкнути функції Windows»
  2. Знайдіть "Інформаційні служби Інтернету"
  3. Поставте прапорець і натисніть "OK".
  4. Перезапустіть, а потім повторіть другий підхід (services.msc)

Дякую, але на відповідь уже відповіли. Можливо, це могло б допомогти комусь ((
Фелікс Дежарден

Ваша відповідь мені не допомогла, я придумав своє власне рішення. Все одно дякую :)
Фазал,

1
Блискуче! Це просто Skype блокував Apache! Моя улюблена частина процесу: після вимкнення портів Skype 80 і 443 мені довелося вийти зі Skype. З'явилося попередження, сказане (перефразоване) "Якщо ви вийдете зі Skype, ви не зможете ним користуватися". Ну, так!
CJ Dennis

14

Ви можете змінити порт Apache:

  1. Перейдіть до C: \ xampp \ apache \ conf \ httpd.
  2. Знайдіть комбінацією Ctrl + F рядок # Слухайте 12.34.56.78:80 і змініть 80 на будь-який, який вам подобається, наприклад 81
  3. Те саме зі Слухати 80 змінюється на 81
  4. Те ж саме з ServerName localhost: 80 змінити на 81.
  5. Перейдіть до C: \ xampp \ apache \ conf \ extra \ httpd-vhosts і змініть 80 на 81

NameVirtualHost *: 80 тут

VirtualHost *: 80 і тут (два рази)

  1. Перезапустіть Apache

Щоб увійти на вашу веб-сторінку, введіть: http: // localhost: 81 / index.html



5
  1. Натисніть Windows+ Rі введіть regedit.

  2. Йти до

     HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\HTTP
    

    Змініть значення Startна 4, що означає вимкнено.

  3. Перезавантажте комп'ютер.


1
«Листопадове оновлення» до Windows 10 спричинило мою проблему - всі раніше працювали над старою версією Win 10. У мене не працював W3svc або Skype. Це рішення зробило свою справу! Дякую @Do Nhu Vy!
Jim M

5

Я також вирішив цю проблему зі своєю, але мені довелося змінити кілька речей. Я вимагаю, щоб на моїй машині з Windows 10 я зберігав середовище розробки C # та Visual Studio, тому я не хотів займатися будь-якими службами. Мені потрібно було лише завантажити останню версію XAMPP і змінити порти прослуховування на 80 і 443. Вони розташовувались у двох файлах:

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

Listen 122
ServerName localhost:122

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

Listen 444

Зміна вищевказаного з порту 80 на 122 та 443 на 444 дозволило мені запустити та обслуговувати сторінки Apache, зберігаючи все те ж саме для моєї розробки ASP.NET . Сподіваємось, це допомагає комусь там. Зрештою, це дуже просте виправлення.

Спрямуйте свій браузер на: http://localhost:122


Я думаю, що це найпростіший і найпростіший спосіб. Дуже дякую!
Діптангу Госвамі

+1, оскільки вимкнення служб .NET для мене точно не є вибором. Звичайно, я хочу запускати IIS та Apache одночасно!
Алан,

4

У мене така ж проблема, але попередні рішення призводять до зміни порту, а не до отримання точного рішення. Я шукав про порти простих протоколів HTTP і HTTPS і знайшов.

Якщо інша програма вже запущена, порти HTTP або HTTPS на локальній машині, ми отримаємо цю проблему, очевидно, лише через ті порти, які вже використовуються і перебувають у зайнятому стані .

Ось чому після зміни номера порту він працював. Але замість того, щоб змінювати порт на сервері XAMPP, я використав наступні методи, і це працює для мене.

Ось наступний крок, який я зробив під час цього виправлення.

  1. Помилка, яку я отримав у програмі XAMPP Server.

    Помилка сервера XAMPP

  2. У верхньому куті є кнопка з іменем Netstat . Це дуже корисно для пошуку запущених портів у системі.

    Кнопка Netstat

  3. Це програма Netstat, де я знайшов програму, яка вже працює і використовує номер порту 443. У моєму випадку це був vmware-hostd.exe . Можливо, це інша програма. Спробуйте знайти порт 80 (HTTP) або порт 443 (HTTPS).

    Програма Netstat відкрита

  4. Я щойно відкрив диспетчер завдань Windows , вибрав цю програму vmware-hostd.exe і вбив процес, натиснувши кнопку Завершити процес . Я вбив той процес, який використовувався порт 443. І ця програма наразі не потрібна.

    Відкрито диспетчер завдань і вбийте цю програму

  5. Після вбивства програми в диспетчері завдань Windows Apache зараз доступний. Ось доказ.

    Apache працює


ПРИМІТКА: * Якщо ви знайшли будь-яку програму, яка використовується портами HTTP або HTTPS, це означає порт 80 або порт 443, і програма не є важливою або не життєво важливою, тоді лише вбийте процес цієї програми.

В іншому випадку немає необхідності виконувати ці дії. Тоді вам слід подумати про зміну порту вашої програми XAMPP, як зазначено в попередніх відповідях. *


4

Я спробував усе, що вказано у відповідях тут, але жоден з них не спрацював.

Тоді все, що я зробив, це перезапустити XAMPP з правами адміністратора:

Меню "Пуск" - клацніть правою кнопкою миші на XAMPP - виберіть "Запустити" як адміністратор

Це спрацювало. Це так просто.

Я видалив служби IIS, зупинив служби WWW, змінив порти назад на 80, заблокував усі підключення apache та mysql з брандмауера Windows 10, але так, це все одно працює!


2

Погравшись, насправді все, що вам потрібно зробити, це змінити два рядки у файлі httpd.conf :

Змініть "Listen 80" на "Listen 122" (або будь-що інше, що ви хочете)

і

"Ім'я сервера Localhost: 80" на "Localhost: 122" (або порт, який ви змінили вище)

Тоді все повинно запускатись прямо: P


2

Схоже, варіантів багато. Відповідь залежить від інсталяції Windows. Ось мій досвід, коли виникає та сама проблема при свіжій установці Windows 10 та виправляється проблема наступним кроком:

  1. Встановити Visual C ++ для розповсюдження
  2. Відкрийте XAMPP і виберіть налаштування в службі Apache
  3. Змініть порт 80 на 9000 або 81 або що завгодно у файлі httpd.conf на рядкуListen 80
  4. Змініть порт на httpd-ssl.conf і змініть Listen 443наListen 441
  5. Перезапустіть XAMPP і запустіть службу Apache. Це працює для мене.

Примітка . Я використовую версію 5.6.15 XAMPP та панель керування XAMPP версію 3.2.2.


2
Хороший улов - переконайтесь, що порти http і https не конфліктують
Aaron Hudon

1
  • Перейдіть до меню «Пуск» і введіть Увімкнути або вимкнути функції Windows»
  • Зніміть прапорець Інформаційні служби Інтернету
  • Натисніть OK

1

У моєму випадку це був простий випадок видалення IIS, оскільки Windows 10 поставляється з попередньо встановленою IIS (Інформаційною службою Інтернету) - це конфліктує з XAMPP, оскільки обидва сервери намагаються використовувати порт 80. Якщо ви не хочете використовувати IIS і продовжуйте використовувати XAMPP

  1. Перейдіть до запуску / пошуку в Windows 10
  2. Шукати "додаткові функції"
  3. У цьому списку зніміть позначку з Інтернет-служби інформації (IIS)

Потім перезапустіть .


1

Я виявив, що запуск apache_start в дав мені точну помилку і в якому рядку це було.

Моя помилка полягала в тому, що я залишив пробіл між localhost: та портом.


Що таке "запуск apache_start в"? Наприклад, чи не бракує слова?
Пітер Мортенсен

Copy-paste працює краще, ніж друкувати (якщо, звичайно, не використовується GNOME - уникайте GNOME за будь-яку ціну).
Пітер Мортенсен

1

Служба публікацій у Всесвітній павутині не була єдиною відповідальною у моєму випадку.

У мене встановлено IIS, тому мені довелося зупинити всю службу HTTP.

Це команди, які я виконував у CMD (як адміністратор):

net stop W3SVC
net stop http

1

Якщо ви встановили SQL Server , деякі його служби можуть заблокувати порт, який потрібен XAMPP. Я вирішив свою проблему, вимкнувши служби звітування SQL Server, і тепер Apache запускається без проблем.

Просто відкрийте services.msc, прокрутіть вниз і знайдіть служби звітування SQL Server . Клацніть правою кнопкою миші та клацніть Stop.


0

Власне, за замовчуванням інстальовано IIS (Microsoft, .NET тощо).

  • Перейдіть до панелі керування
  • Увімкнення та вимкнення функцій Windows ...
  • У розділі (IIS) Інформаційні служби Інтернету зніміть прапорець (WWWS) у всьому світі.
  • Клацніть OK.

Це може бути постійним рішенням. :)


0

Ця порада була чудова. У мене була та сама проблема, але моє рішення було іншим, тому що я був настільки дурним, що я перейменував каталог, де знаходився XAMPP, і оскільки я встановив багато інших програм, я не міг перейменувати його назад.

У моєму випадку був оригінальний каталог C: \ Programs \ Xampp і перейменований на C: \ PROGRAMS_ \ Xampp, і в цьому була помилка.

Рішенням було знайти всі посилання на C: \ Programs і перейменувати їх у C: \ PROGRAMS_ в каталозі XAMPP, оскільки з якоїсь причини під час інсталяції він пише абсолютні шляхи, а не відносні. Звичайно, в реєстрі теж є деякі посилання.


Це, здається, дуже конкретний випадок і, схоже, не відповідає сценарію питання.
dakab

Так, я погоджуюсь, але я думаю, що це може комусь допомогти, тому що я стикався з такою ж ситуацією (мав свіжий windodw 10), а помилка була однаковою, тому, можливо, це не зовсім той самий сценарій, до речі, я думаю, хтось зможе знайти це корисним .
Mayk,

0

Це просто питання надання порту 80 для вашої послуги Apache. Я вирішив проблему так:

  1. У Windows 10 клацніть правою кнопкою миші кнопку Пуск і виберіть Запустити
  2. Введіть services.msc і натиснітьOK
  3. Знайдіть і клацніть правою кнопкою миші Службу публікації в усьому світі
  4. Виберіть Властивості
  5. Змініть значення типу запуску на Автоматичне (Затримка запуску)
  6. Перезавантажте комп'ютер.

Ось вам. Все нормалізується.


0

Для мене це було просто!

Спробуйте запустити панель керування XAMPP від ​​імені адміністратора.


0

Я спробував усі вищезазначені рішення. Але це ніяк не працювало.

Нарешті, я просто видалив XAMPP і встановив його знову . Тоді це спрацювало у мене.

Тепер я можу запустити сервер на будь-якому порту (включаючи 80).


0

Кроки:

  • Відкрийте панель керування XAMMP
  • Відкрийте Apache Config, а потім виберіть файл конфігурації Apache - xammp-
  • Знайдіть "Порт 443", а потім змініть його на інший порт, скажімо, 4433
  • Потім перезапустіть.

дякую, @Peter Mortensen за редагування моєї відповіді :)
C Williams

0

Перевірте, чи працює ваша установка PHP.

Перевірте, який файл php.ini ви запускаєте в конфігурації Apache, і використовуйте його для запуску php.exe ...


0

Можливо, ви просто оновили Windows до версії 1903 (збірка ОС: 18362.239) або змінили паролі користувачів. Незважаючи на те, що усунув усі конфлікти портів , я все ще отримував повідомлення, описані ОП на самому початку цього повідомлення.

Врешті-решт я вилікував це, оновивши до XAMPP до 7.3.7. (Якщо вас змусять перевстановити, ви можете одночасно оновити!)

Але проблема повторилася, коли я знову пішов змінювати "root" пароль користувача.

Повідомлення про помилки консолі маскували факт пошкодження таблиці mysql.user .

Перевірте файл mysql_error.log . Якщо ви бачите фатальну помилку: не вдається відкрити та заблокувати таблиці привілеїв: індекс таблиці 'користувач' пошкоджений; спробуйте відремонтувати , а потім подивіться на це .



0

введіть тут опис зображення

Змініть номер порту, який порт доступний у вашій системі, дотримуючись наступних способів

1. Спочатку відкрийте файл "httpd.conf" Apache:

#Listen 12.34.56.78:80
Listen 80
ServerName localhost:80

до

#Listen 12.34.56.78:8080
Listen 8080
ServerName localhost:8080

2. Відкрийте httpd-ssl.conf:

Listen 443
<VirtualHost _default_:443>

до

Listen 441
<VirtualHost _default_:441>

3. Виконайте хитрість. Тепер “Почніть” Apache, і якщо все піде добре, ваш сервер Apache повинен запуститися.

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.