Apache не запускається з панелі керування XAMPP (Помилка: несподіване вимкнення Apache. Можливо, це пов’язано із заблокованим портом)


78

Я успішно встановив XAMPP (xampp-win32-1.8.2-0-VC9-installer.exe) у Windows 7. Але, на жаль, під час запуску Apache з панелі керування XAMPP було виявлено таку помилку:

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

Помилка запуску Apache на панелі керування XAMPP


1
Швидше за все, порт за замовчуванням зайнятий іншим додатком
Ripon Al Wasim

1
Зверніть увагу, що панель управління не обов'язково надає ці деталі, вона може просто сказати "Apache startet [порт 80]", а насправді не запускати сервер. Однак роздільна здатність однакова.
PeerBr

Більшість справ пов’язані зі Skype, Прокрутіть вниз, побачите мого відповідача
vanduc1102

Відповіді:


93

Існує багато можливих відповідей на цю проблему. Найпоширенішим і найімовірнішим є те, що у вас запущена інша програма, яка блокує порт 80 або 443. Якщо ви встановили Skype, значить, знайшли свою проблему! Змініть налаштування порту Apache на 81, і Apache запрацює. Для цього є хороший підручник. Щоб перевірити це, ви можете відкрити свій командний рядок, натиснувши меню «Пуск», набравши «cmd», і ввести команду

    netstat -nab

це поверне список програм, які будуть неясно нагадувати цей шаблон

    [someprogram.exe]
    UDP     [fe80::numbers:numbers:numbers:numbers%numbers]:portnumber

Вам потрібно знайти рядок (або рядки), що закінчуються на: 80, і закінчити їх, щоб запустити apache. Якщо немає рядка, що закінчується на: 80, можна зробити більше справ.

Спочатку перейдіть до каталогу xampp (за замовчуванням c: \ xampp) і двічі клацніть apache_start.bat. Це відкриє рядок з командою та поверне докладніші помилки про те, чому Apache не може працювати. Здебільшого шукайте синтаксичні помилки, які ви могли б створити, редагуючи файли httpd.conf або httpd-ssl.conf. Це дуже легко зробити, якщо ви редагували його та є новим користувачем.

Якщо все-таки це не вдається, ваша остання надія - перевірити журнал помилок apache, натиснувши вкладку журналів у рядку apache на панелі керування xampp та клацнувши журнал помилок.

Якщо нічого з цього не вийде, не здавайтесь! Ви зрозуміли це!

Змінити: Якщо ви змінили порт apache, вам також доведеться зайти в httpd.conf (знаходиться в xampp / apache / conf) і біля рядка 184, замінити

ServerName localhost:80

з

ServerName localhost:81

Також можна вказати порт 81 в URL-адресі вашого localhost, тобто

localhost: 81 / my_project.php


3
Я змінив порт як 81 замість 80. Apache не запускається, коли я ввійшов у Skype. Помилка 443 зайнята. Тож я добре працюю, запустивши Apache перед тим, як увійти в Skype. Отже, послідовність така: Спочатку запустіть Apache, а потім увійдіть до Skype
Ripon Al Wasim

1
Коли я запускаю Apache, він працює як: PID (и): 5316 і 5340 Порти: 81, 443
Ripon Al Wasim

3
Я змінив рядок Listen 443 як Listen 444 у файлі httpd-ssl.conf. Отже, Apache працює навіть під час входу в Skype. Тож Apache працює на порту 81, 444. Приємно ... Ще раз спасибі Тіммей.
Ripon Al Wasim

2
Спробуйте виконати "Запуск від імені адміністратора" під час керування xampp, це спрацювало для мене, я маю Skype або будь-яку іншу програму за допомогою порту 80.
Mightian

2
apache_start.batвирішив мою проблему. Вам слід було про це згадати спочатку :)
Beatles1692,

37

1. Зайдіть xampp/apache/conf/httpd.confі відкрийте.
У httpd.confфайлі line 176замінити

ServerName localhost:80
з
ServerName localhost:81
Це буде працювати.

Або 2. Навіть якщо вищевказана процедура не працює. Потім у тому ж файлі ( httpd.conf) у рядку 45 замінити

   #Listen 0.0.0.0:80
   #Listen [::]:80
   Listen 80 

з

  #Listen 0.0.0.0:81
  #Listen [::]:81
  Listen 81

Крім того, я перевірив Apache та MySQL, чого я не повинен був робити, оскільки у Windows їх уже було. Я відмінив їх, і все добре. Дякую.
timmyt123

Працює, але теж відстій. Вам не потрібно переглядатиlocalhost:81
Річард,

19

Панель керування XAMPP під Windows не завжди відображає те, що насправді відбувається, якщо ви не запустили її за допомогою "Запуск від імені адміністратора".


Це також було моє випуск у Windows 10
Ремі

Запуск його від імені адміністратора дав мені інформацію, необхідну для вирішення проблеми. Дякую.
Slicktrick

Я знав, що порти вільні, і не був впевнений, що не так. Дякуємо за ваше рішення! Я працюю на сервері Windows 2019
Янніс П.

15

Зайдіть в xampp / apache / conf / httpd.conf і відкрийте його. Потім просто поміняйте 2 рядки

Listen 80
to
Listen 81

І

ServerName localhost:80
to
ServerName localhost:81

Потім починайте використовувати права адміністратора.


2
у мене теж була проблема із запуском сервера Apache. Я змінив номер порту, але він не працює.
SrividhyaShama

1
після зміни порту перезапустіть ПК і спробуйте ще раз або замініть порт 81 на 82 або 83 і так далі
Бехнам Мохаммаді

1
Вам також потрібно змінити файл httpd-ssl.config для зміни 443 стандартного порту ssl для apache.
автопілот

ServerName не потребує номера порту
user27874

14

Ви виконували сценарій "setup_xampp.bat"? Він знаходиться всередині папки XAMPP, і його потрібно виконувати кожного разу, коли ви змінюєте папку XAMPP.


це працює для мене, оскільки я запускаю Windows Server 2012 R2, тому, коли я оновив Windows, моя інсталяція XAMPP не була на диску C після свіжої інсталяції, я просто запустив setup_xampp.bat, і він успішно налаштував кожну річ, дякую вітаю!
Zain Ul Abidin

12

Супроводжуючи відповідь Тіммая, вам потрібно зробити дві зміни -

Слухати 80 -> Слухати 81 (біля рядка 58)

Ім'я сервера localhost: 80 -> Ім'я сервера localhost: 81 (біля рядка 218)


11

У моєму випадку проблема полягала в тому, що використовувались як порти 80, так і 443: Кроки для його виправлення:

  1. Відкрийте xampp і натисніть на кнопку налаштування
  2. Тепер натисніть (Appache) httpd.conf (Відкрити в блокноті або іншому редакторі)
  3. Тепер натисніть ctrl+h .
  4. Знайдіть 80і замініть на8080
  5. Тепер збережіть і натисніть на Appache (httpd-ssl.conf).
  6. Тепер знайдіть 443і замініть на 4430.
  7. Тепер ваш xampp повинен працювати нормально, оскільки обидва ці коди ніколи не використовуються іншими програмами вашої системи.

Тепер ваш localhost буде доступний як localhost:8080


1
Найповніша відповідь.
tno2007

6

Перевірте, чи на вашому комп'ютері встановлений Skype.

Увійдіть і перейдіть до Інструменти - Параметри - Додатково - Підключення та зніміть прапорець, що говорить використовувати порт 80

-

Перевірте, чи вже встановлена ​​послуга Apache, запустивши services.msc із командного рядка запуску.

Як видалити службу з командного рядка? sc видалити “serviceName”

Пам'ятайте, serviceName слід замінити на точну назву служби Apache, як показано в списку послуг.

Переконайтеся, що IIS працює і займає порт 80. Якщо так, вимкніть його.

-

Перевірте, чи запущений AVP (Kaspersky), і займає порт 80. Якщо так, додайте httpd.exe як виняток до дозволених програм.

-

Сподіваюся, це допоможе.


6

Я встановив робочу станцію VMWare. Отже, це спричинило помилку.

Services.msc and stopped the 'Workstation' Services.

Це вирішило мої проблеми.

Дякую


6

Якщо у вас встановлений Skype, перевірте цей параметр.

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

Інший випадок - Windows 10

Перевір це:

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

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


4

перейдіть до C: xampp \ apache \ conf \ extra \ httpd-ssl.conf
Знайдіть рядок, де написано Listen 443, змініть його на Listen 4330 і перезавантажте комп'ютер

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

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


3

Я виявив подібну проблему в своїй системі, і це було від скайпу, встановленого до встановлення xampp. я отримав подібну помилку. для виправлення помилки я слідував цим,

  1. вийшов із Skype на деякий час,
  2. перезапустив apache з панелі керування xampp,
  3. перевіряється у браузері, працював він чи ні, http: // localhost /
  4. це спрацювало,
  5. ввійшов знову в Skype,
  6. все працює чудово, просто так

мені не потрібно було нічого встановлювати чи видаляти, і це спрацювало у мене менш ніж за 1 хвилину.

ура


Так, це має спрацювати. Порт, яким користується Skype XAMPP, також намагається використовувати той самий порт. Отже, коли ви виходите зі скайпу, проблеми не відбудеться
Ripon Al Wasim

2

Якщо ви встановили SQL Express або будь-який сервер .Net, тоді вам потрібно зупинитися. відкрийте cmd в режимі адміністратора та введіть цей рядок ...

чиста зупинка була

тепер запусти Apache


2

Найкращий спосіб зробити це:

Інші методи, описані вище, змусять вас застрягти у багатьох місцях. Не йдіть на зміну порту

2-кроковий процес

1) Відкрийте командний рядок як адміністратор

2) тип net stop http (якщо в ньому сказано, що не ідентифікує ключове слово, це лише тому, що PATH вашої змінної навколишнього середовища не містить шлях до програмних файлів / System32, ви можете шукати, як це зробити) натисніть Y у кожному запитуваному місці Ви, не хвилюйтеся, ви не зупиняєте жодного важливого процесу, а лише якийсь процес, який зайняв ваш порт. І цей процес знову захопить ваш порт, як тільки ви не будете працювати.


Це найбільш недооцінений коментар у всій цій темі! Браво, сер.
jasttim

1

Якщо ви зіткнулися з цією проблемою безпосередньо після повної нової інсталяції в Windows :

Здається, програма встановлення вже запускає процес http.exe і блокує початковий порт 80, але не відображає цей стан на панелі керування.

Щоб перевірити, просто протестуйте запущений сервер у вашому браузері. Введіть в адресному рядку браузера:

localhost

Якщо на цьому екрані відображається інформаційна панель XAMPP, все в порядку. Крім того, перевірте диспетчер завдань на наявність запущеного процесу „Apache HTTP Server” (httpd.exe).

Ви можете зупинити процес apache за допомогою xampp_stop.exe у вашій базовій папці xampp. Тоді панель управління XAMPP повинна працювати належним чином.


1

Методів вирішення цієї проблеми може бути багато, але ось найпростіший:

ПЕРЕЙТИ до XAMPP-управління та ...

Запустити від імені адміністратора

Це все..

Це золота точка для будь-якої такої Аномалії.

Концепція роботи

Насправді всі служби в Xampp потребують залежності від портів. Що трапляється, коли xampp не надає спеціальних повноважень, він шукає лише деякі заздалегідь визначені порти для запуску цих служб. І, якщо так, то ці порти якимось чином вже зайняті ... ну! послугу не вдалося запустити.

Але якщо ми надамо суперсилу нашому контролеру Xampp (запустившись від імені адміністратора), він якимось чином буде керувати і, безумовно, на землі буде запускати служби в портах. І тріумф! Ти це зробив.

Постійна порада для моїх дорогих братів і сестер

Щоб докласти зусиль один і для всіх, виконайте такі дії:

  • клацніть правою кнопкою миші на файлі xampp-control.exe та перейдіть до властивостей.
  • Перейдіть на вкладку Сумісність .
  • У налаштуваннях нижче встановіть прапорець Запустити цю програму як адміністратор .
  • Застосувати зміни. І ви закінчили.

Тепер кожного разу, коли ви запускаєте програму, вона запускатиметься зі статусом адміністратора, і вам не потрібно взагалі дбати про порти.


1

У моєму випадку у мене не було htdocsпапки в папці xampp. Здається , що вона вимагає htdocsпапок для запуску , так що ви можете створити порожню htdocsпапку в xamppпапці.


1

В даний час використовується XAMPP для розробки laravel.

У мене на робочому столі встановлений Skype, який блокує порти 80 і 443 (обидва з яких використовує Apache)

Це виправлення спрацювало для мене:

1) Під C:\xampp\apache\conf\httpd.conf, шукайте Listen 80та змінюйте наListen 81

2) Під C:\xampp\apache\conf\extra\httpd-ssl.conf, шукайте Listen 443та змінюйте наListen 444


1

Була та сама проблема, і жодне з наведених вище рішень не спрацювало. Отже, уважно прочитавши журнали, я знайшов таке повідомлення:

10:55:42 [Apache] Порт 443, який використовується "" C: \ Program Files (x86) \ VMware \ VMware Workstation \ vmware-hostd.exe "-u" C: \ ProgramData \ VMware \ hostd \ config.xml "" з PID 1908!

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

У моєму випадку мені довелося просто зупинити службу VMWare, яка працювала автоматично.

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

Головне - уважно прочитати повідомлення, передане панеллю XAMPP при запуску.

Сподіваюся, це допоможе!


У мене була та сама проблема. Дякую!!
Maverick

0

У мене є рішення. У мене була ця проблема і я шукав рішення, але мені це не вдалося. Тому я завантажив нову версію XAMPP і натиснув опцію netstats у програмі.
Там він дав мені список програм і порти, якими вони користувались, і тому я виглядав і не мав жодної програми, що використовує порт 80, але apache за її межами 80також використовує порт 443... і в цих дверях була програма під назвою Pando Media Boster, я запустив диспетчер завдань і закінчив процес пандо Середній бостер. Сподіваюся, це допомогло :).



0

Можливо, ви змінюєте конфігураційний файл у "httpd-ssl.conf"

<VirtualHost _default_:443>
DocumentRoot "D:/Server/xServer"
ServerName xyz.abc.com
SSLCertificateFile "conf/ssl.crt/xyz.crt"
SSLCertificateKeyFile "conf/ssl.key/sftaps.in.key"
</VirtualHost>

Можливо, ви змінили назву сертифіката або щось у папці Apache.


0

Навіть якщо ви налаштували Apache на прослуховування на іншому порту, ви все одно отримаєте цю помилку, якщо інша програма використовує стандартний SSL-порт 443.

Вам також потрібно відредагувати файл http-ssl.conf та змінити рядок Listen 443 та змінити там номер порту.


0

Для мене це було через vmware (послуги - це близько 2 або 3 різних сервісів), зупиніть це, і все працює нормально


0

Використовуйте будь-який метод, для якого працює сервер, після чого ви можете використовувати цю адресу, щоб відкрити сторінку в браузері (якщо ви замінили порт 80 на 81)

http://localhost:81/phpmyadmin/

0

Запустіть ці команди в терміналі, і все буде працювати нормально:

sudo /etc/init.d/apache2 stop   
sudo /opt/lampp/lampp start

-7

Салам,

Не потрібно міняти номер порту.

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

а потім можете ПОЧАТИ ВСТРІВ .......

З повагою,


2
Припинення роботи кожної програми здається надмірним.
EWit

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