Я только что установил XAMPP, и когда я пытаюсь запустить свой сервер Apache в панели управления XAMPP, теперь я получаю следующие ошибки:
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
Как это решить?
Открой скайп.
Сервис → Параметры → Дополнительно → Подключение.
Снимите флажок " Использовать порты 80 и 443 для альтернатив для входящих подключений "
Выйдите из системы и закройте все окна Skype. Попробуйте перезапустить ваш Apache.
Поскольку я работаю в корпоративной среде, где разработчики сталкиваются с проблемами брандмауэра, ни один из других ответов не решил мою проблему.
Поскольку этот порт используется не Skype, а некоторыми другими внутренними приложениями, я выполнил следующие действия, чтобы решить эту проблему:
Шаг 1. На панели управления XAMPP в разделе Apache нажмите кнопку "Config" и выберите Apache (httpd.conf).
Внутри файла httpd.conf я как-то нашел строку, которая говорит:
Listen 80
И измените 80 на любой номер/порт, который вы хотите. В моем сценарии я использую порт 8080.
Listen 8080
Еще из файла httpd.conf я нашел еще одну строку, которая говорит:
ServerName localhost:80
Изменить 80 на 8080.
ServerName localhost:8080
Шаг 2 - На панели управления XAMPP в разделе Apache снова нажмите кнопку "Config", но на этот раз выберите Apache (httpd-ssl.conf). Внутри файла httpd-ssl.conf найдите строку с надписью
Listen 443
И измените 443 на любой номер/порт, который вы хотите. Я использую 4433 в качестве нового номера порта.
Listen 4433
Все еще из файла httpd-ssl.conf, найдите другую строку, которая говорит
<VirtualHost _default_:443>
ServerName localhost:443
И измените 443 на 4433.
<VirtualHost _default_:4433>
ServerName localhost:4433
Не забудьте сохранить файлы httpd.conf и httpd-ssl.conf после внесения некоторых изменений. Затем перезапустите службу Apache.
Одна вещь, которую вы можете сделать, это остановить службы на порту 80, выпуская
net stop http
в cmd. Вас спросят, уверены ли вы, что хотите остановить эти службы. Я узнал, что у меня было несколько сервисов, которые я не использовал, и отключил их.
Чтобы узнать, кто еще использует порт 80, введите cmd
netstat -abno
Я предполагаю, что вы хотите запустить Apache на порт 80. Если это так, и вы хотите сохранить конфликтующие службы, вам нужно будет связать их с новым портом.
Если проблема не занята, вы также можете попробовать следующее: выберите "показать информацию об отладке" на панели конфигурации XAMPP. При запуске Apache вам будет показано что-то вроде "Выполнение" c:\xampp\apache\bin\httpd.exe. Если вы запустите этот
c:\xampp\apache\bin\httpd.exe
в cmd вы получите дополнительную информацию (например, у меня некоторая проблема с файлом httpd.conf).
Связанный: Как я могу освободить свой порт 80 на localhost Windows? и Apache не будет запускаться в xampp
В панели управления XAMPP V3.2.1 нажмите кнопку "NetStat" в правом верхнем углу. Убедитесь, что порт 80 не используется какой-либо другой программой. Затем нажмите "Shell" прямо под ним. Выполните эту команду "Тип ap, затем TAB два раза"
Apache_Start.bat
Фактически вы обнаружите ошибку Apache. Это, скорее всего, проблема с настройкой виртуального хоста или может быть что-то еще. Он отобразит номер строки, на которой происходит ошибка. Просто исправьте эту ошибку. Обратите внимание, что в RootDocument конечный\может быть источником ошибки. Удалите все конечные "\".
Подробнее об ответе здесь >
Выполните следующие действия:
Выберите "Apache (httpd.conf)" и найдите этот код ниже и измените его на следующий:
#Измените это для прослушивания определенных IP-адресов, как показано ниже.
#, чтобы предотвратить доступ Apache к всем связанным IP-адресам.
#Listen 0.0.0.0:80
#Listen [::]: 80
Listen 80
# Поддержка динамического общего объекта (DSO)
# Примечание. Конфигурации, использующие IPv6, но не адресованные IPv4-адресам, нуждаются в двух
# Слушайте директивы: "Слушайте [::]: 443" и "Listen 0.0.0.0:443"
#
#Listen 0.0.0.0:443
#Listen [::]: 443
Listen 443
Подождите, и ваш компьютер/ноутбук автоматически перезагрузится и снова попытается открыть панель управления XAMPP, а затем запустите свой Apache.
Моя проблема заключалась в том, что в httpd.conf записи DocumentRoot
и <Directory>
указывали на несуществующие папки.
Например, в "исходном" httpd.conf были следующие записи:
DocumentRoot "c:/Apache24/htdocs"
<Directory "c:/Apache24/htdocs">
Если вы установили в C:\xampp, вам нужно изменить эти записи, чтобы они соответствовали, т.е.
DocumentRoot "c:/xampp/htdocs"
<Directory "c:/xampp/htdocs">
Если вы используете Windows 7. Поиск IIS в поиске Windows (щелкните значок "Окно" в левом нижнем углу и введите там, где говорится "Поиск программы и файлы" ).
Откройте IIS (Internet Information Service).
В правой части панели действий. Нажмите "Стоп".
Примечание. Стоп-ссылка исчезает при съемке на экране. Как я его остановил. Проблема решена!
Control Panel > Programs > Programs and Features > Windows Components
что в итоге и решило проблему.
У меня была такая же проблема, и оказалось, что я забыл запустить setup_xampp.bat
(переносимая версия).
У меня была такая же проблема когда-нибудь. У меня был старый ноутбук, на котором почти все порты были либо заблокированы, либо были неисправны. Вот как я это сделал.
Откройте панель управления XAMPP.
Нажмите Конфигурация
Затем перейдите в файл Apache httpd.conf. Откройте его с помощью текстового редактора.
Найдите "80" (сделайте Ctrl + F и найдите все их. Замените его 8080 или 4040 или 4000).
Сохраните файл. И перезапустите XAMPP.
Это сработало для меня, и я надеюсь, что это тоже поможет.
Когда я обнаружил, что не было никакого процесса, использующего порт 80 с помощью команд
netstat -abno | find ":80"
не было проблем ни в одном процессе, использующем порт 80.
Затем я запустил команду (в cmd)
C:\xampp\apache\bin\httpd.exe
она показала некоторую ошибку в конфигурации виртуальных хостов в файле httpd-vhosts.conf
который был недавно отредактирован мной для установки в среде WordPress PHP в Eclipse IDE. Поэтому я удалил эти строки и Apache запустился отлично.
Простая вещь, которую вы можете сделать, это проверить, установлен ли Skype или VMware на вашем компьютере или нет.
Skype использует порты 80 и 443 в качестве дополнительного порта для входящих соединений. Чтобы изменить номер порта в Skype, перейдите на
Инструменты> Параметры подключения> Подключение
в окне скайпа. Теперь измените номер порта 80 по умолчанию на другой.
VMware Workstation использует порт 443 для совместного использования. Чтобы изменить это, откройте VMware Workstation и перейдите
Правка> Настройки> Общий Vms
Это все, что вам нужно сделать. Перезапустите XAMPP и запустите сервер Apache.
Кажется, никто не ответил о выполнении xampp_start.exe.
Я сделал все предыдущие ответы, но это не решило мою проблему. Я обнаружил, что запуск xampp_start.exe даст вам подробную информацию о проблеме.
Это было я вижу на моем конце:
Как вы видите, у меня возникла проблема с путём, или xampp указывает на несуществующую папку.
Для меня всемирная служба публикации в Интернете использовала порт 80. Я убил это, выполнив следующую команду на cmd:
net stop http
После этого XAMPP без проблем запускал Apache.
Эта ошибка возникает из-за того, что порт, выделенный для Apache, используется другой программой. Чтобы проверить приложение, которое использует порт, который мы выделили для Apache, его можно получить, нажав
Netstat.
Это файл Netstat,
Сначала я выделил порт 8080 для Apache, и я недавно установил Oracle DB.TNSLSNR.exe теперь использовал порт 8080.
Итак, просмотрев этот файл, мы можем выбрать порт, который не сталкивается с другими приложениями. В моем случае порт 8060 не сталкивается с каким-либо приложением. Выбрав, мы можем изменить файл httpd.conf (панель управления XAMPP → Config), как указано выше.
Сначала убедитесь, что ваша папка \xampp
находится в корневом каталоге! Это важно, поскольку путь относительный.
Затем убедитесь, что вы запустили xampp_control.exe
с правами администратора.
Затем измените файлы ниже, чтобы избежать проблем с заблокированным портом 80.
В \xampp\xampp-control.ini
он должен быть установлен:
[ServicePorts]
Apache=8080
ApacheSSL=4433
Найдите \xampp\apache\conf\httpd.conf
и установите:
Listen 8080
ServerName localhost:8080
Найдите \xampp\apache\conf\extra\httpd-ssl.conf
и установите:
Listen 4433
<VirtualHost _default_:4433>
ServerName www.example.com:4433
Затем завершите все службы и перезапустите xampp-control.exe
с правами администратора. Он должен работать!
Сервер Apache по умолчанию работает на портах 80, 443. Ваша проблема в том, что один или оба из этих двух портов заняты. Обычно эти два порта используют Skype или VMware Workstation. Поэтому убедитесь, что они не работают. Лучший способ убедиться, что порты свободны в окнах:
Нажмите кнопку "Окно".
В строке поиска введите resmon, чтобы открыть монитор ресурсов resmon.exe.
Откройте Слушающие порты, это покажет вам открытые используемые порты.
Теперь вы можете видеть, какой процесс использует порты 80 и 443.
Затем вы можете убить процесс либо из CMD, используя его PID (который отображается на мониторе ресурсов), либо непосредственно из диспетчера задач.
Чтобы убить процесс из CMD с использованием типа PID
Taskkill /PID 26356 /F
, где 26356 является PID.
У меня было то же сообщение об ошибке, что и OP, но моя проблема не была решена ни одним из существующих ответов. Многие из ответов касаются конфликтов на порту 80, которые, как я знал, у меня не было, поскольку в последнее время у меня был локальный ответ на порт 80.
Оказывается, я непреднамеренно изменил ServerRoot, когда я намеревался изменить DocumentRoot (глупо, я знаю), и хотя новый серверный_сервер существует, он не содержит файлы конфигурации и другие необходимые файлы apache, которые вызвали его при запуске. Сообщение об ошибке, вероятно, относится к этому сценарию по формулировке "отсутствующие зависимости".
В моей системе Windows настройка ServerRoot на C:/XAMPP/apache решила проблему.
В моем случае эта проблема была вызвана попыткой загрузить другой продукт bitnami, например WordPress. Это обычно при установке WordPress через XAMPP. Он помещается в каталог xampp/app
, доступ к которому можно получить с домашней страницы приложения XAMPP.
В качестве решения я удалил установленный по умолчанию WordPress из каталога xampp
и вручную установил WordPress в папку htdocs
WordPress, загрузив его и извлекая zip файлы в папку htdoc
. Вам также необходимо перезапустить XAMPP или систему после удаления/удаления WordPress по умолчанию. Теперь все в порядке.
Я решил проблему с остановкой службы "Служба агента веб-развертывания". Открыть: Система → Управление компьютером → Услуги → Служба агента развертывания веб-сайтов. Остановите эту службу и запустите XAMPP. Я думаю, что это сервис MS Webmatrix.
(немецкий: Systemsteuerung → System und Sicherheit → Verwaltung → Dienste → Webbereitstellungs-Agent-Dienst)
Одна из причин может заключаться в том, что вы не используете панель управления XAMPP в качестве администратора.
Это событие из-за порта 80 по умолчанию заблокировано для Apache. Вам нужно изменить порт или сделать доступным порт.
Перейдите в свой файл конфигурации Apache (httpd.conf) в установке Apache.
Найдите следующие строки:
#
Слушайте 192.168.1.2:80
Слушать 80
#
Здесь 192.168.1.2 - это мой частный IP-адрес. Измените его в соответствии с вашим.
Измените, как показано ниже
Прослушать 192.168.1.2:8081
Слушайте 8081
Теперь, когда вы обращаетесь к localhost, вы должны явно добавить порт http://localhost:8081/...
Решение - удалить xampp и переустановить его. это будет работа
Хорошо, нет порта 80, нет вины Skype! Моя проблема была действительно довольно простой (и глупой), у меня была дополнительная обратная косая черта (\) (в Windows) после пути, который я указал для директивы DocumentRoot, поэтому я сделал такое изменение, и проблема ушла, как утиный суп,
Мой index.php был в пути "D:\sites\dummy", а мой httpd.conf был таким:
<VirtualHost 127.0.0.2:80>
ServerName dummy.local
DocumentRoot "D:\websites\dummy\" #mistake here
</VirtualHost>
<Directory "D:\websites\dummy\"> #mistake here
Require all granted
</Directory>
Так что просто измените эти две строки следующим образом:
#first mistake fix:
DocumentRoot "D:\websites\dummy"
#second (similar) mistake fix:
<Directory "D:\websites\dummy">
... и теперь все хорошо. Чтобы избежать подобных ошибок в будущем, всегда копируйте путь к любой папке, к которой вы хотите обратиться, вместо того, чтобы вводить ее самостоятельно.
Я попытался выполнить httpd.exe в cmd и получил сообщение об ошибке синтаксиса в httpd-vhosts.conf. Я проверил файл и нашел, что неправильно, и теперь он работает нормально.
Итак, если вы столкнулись с этой ошибкой, это может быть из-за httpd-vhosts или любого другого файла.
Попробуйте выполнить программу с помощью cmd, и вы получите сведения об ошибке и строку, где есть синтаксическая ошибка.
Желаем удачи
Лучшее решение для пользователей Windows:
taskkill /pid PID
(вместо этого PID использует pid u, найденный из netstat) Прежде всего, вы должны убедиться, что у вас нет лишних виртуальных хостов в вашем файле httpd-vhosts. Я имею в виду следующее простое правило: 1 project = 1 виртуальный хост в файле конфигурации. В противном случае вы столкнетесь с ошибкой, даже если вы измените порты и т.д.
Лучшее решение
откройте панель управления XAMPP, нажмите на конфигурацию для Apache, затем нажмите на Apache (httpd.config). Теперь в текстовом редакторе. ctrl + f → найдите "Listen 80" и замените его "Listen 8079" без цитат:) но теперь вы должны использовать его следующим образом http://localhost:8079/
P.S, я попытался изменить настройки порта для skype, остановив службу агента веб-развертывания, которую я не смог найти в Windows 10, cmd → net stop http и других методах, но ничего не работал, кроме этого.
В моем случае это произошло после установки sql-сервера, и решение было таким, как описано в этом ответе
Xampp - Не удается запустить Apache после установки SQL Server и Visual Studio
поэтому мне пришлось просто отключить службу служб отчетов SQL Server из служб Windows.
Обратите внимание, что всякий раз, когда вы меняете порты по умолчанию, ваш браузер об этом не узнает. 80
и 443
кажутся стандартными в некотором роде, так, например, если вы изменили 80
на 8080
, вам придется обращаться к вашим сайтам таким образом:
localhost:8080/path_to_your_website.php
У меня была та же проблема (в Windows 8.1), но я исправил ее, просто распаковав в C:\
вместо C:\somefolder
как я делал сначала. Так, например, путь к панели управления теперь C:\xampp\xampp-control.exe
Для меня эта проблема возникла, когда я разместил VPN-соединение на своем компьютере под управлением Windows 8.
Простое удаление соединения из "Панели управления\Сеть и Интернет\Сетевые подключения" решило проблему.
Это сработало для меня...
Если вы используете Windows...
Поиск 'cmd' в панели поиска Windows.
Введите это: C:\xampp\apache\bin\httpd.exe
Найдите, в каком файле и в какой строке произошла ошибка.
Например, мой был в файле ниже в строке 37.
HTTPD-Multilang-errordoc.conf
Откройте код и исправьте ошибку, удалив строку или исправив ее.
Готово! Я должен работать сейчас.
:)
Если изменение порта не решило проблему, как предложено выше, и если вы, вероятно, поиграли со структурой файловых каталогов (например, измените имя папки после установки, как я), то вы можете попробовать это,
Например, в моем случае я изменил имя основной установочной папки XAMPP с Xam на Xampp
Так что в редакторе измените это:
Define SRVROOT "G:/Xam/apache"
ServerRoot "G:/Xam/apache"
DocumentRoot "G:/Xam/htdocs"
<Directory "G:/Xam/htdocs">
к
Define SRVROOT "G:/Xampp/apache"
ServerRoot "G:/Xampp/apache"
DocumentRoot "G:/Xampps/htdocs"
<Directory "G:/Xampps/htdocs">
В редакторе есть много других подобных примеров, просто найдите и замените каждый из них.
Сделайте то же самое для Apache (httpd-ssl.conf).
Та же ошибка Оказывается, у меня загружена неправильная версия расширения Zend Xdebug. Мастер xdebug сказал, что использует версию TS (Thread Safe) (т.е. с OUT -NTS-
), но, очевидно, я скачал неправильную версию NonThread Safe. Несмотря на то, что у меня был точный путь и имя файла в файле php.ini, я все еще получал ошибку. Когда я скачал другую версию и снова обновил php.ini, все работало хорошо.
php_xdebug-2.7.0-7.3-vc15-nts-x86_64.dll
дал мне ошибку, но без ошибки с php_xdebug-2.7.0-7.3-vc15-x86_64.dll
Я следовал совету @user2314737 (его ответ на стр. 1) и включил "Показать отладочную информацию" в разделе "Конфигурация", чтобы после перезапуска xampp показывало, что в моем пути установки есть пробел "", который не был разрешен.
Мой путь был D:\Program files (x86)\xampp \, поэтому я переустановил его в D:\xampp \, и он заработал.
Я только что столкнулся с этой ошибкой на моем xampp v3.2.2 [win 10 pro x64],
Сначала я попытался запустить команду "net stop http" в командной строке администратора, но это не помогло решить проблему, поэтому я попытался выполнить команду "netstat -abno" и обнаружил, что порт ssl (443) был используется vmware.
так что мой совет, не просто ищите, какой порт 80 блокирует, а также ищите потенциальные программы, использующие порт 443. потому что мне действительно не нравится менять номера портов по умолчанию на 8081 и 4433.
Вот как вы можете решить эту проблему...
сначала введите следующую команду
net stop http
затем попробуйте запустить apache, если он все еще не работает. введите следующую команду
netstat -abno
и вы определенно получите то хлопотное приложение, которое использует ваш драгоценный порт.
скопируйте pid и затем используйте следующую команду
taskkill/f/pid PID
где PID - это тот, который вы скопировали.
Надеюсь, это кому-нибудь поможет.
Даже у меня была эта проблема, и я решил ее, в моем случае это было иначе.
Сначала я попытался удалить Skype, но это не сработало. но на рабочем столе Windows 10 у меня был установлен IIS (Internet Information Server) по умолчанию, который указывал на порт 80.
Все, что я сделал, я изменил номер порта на 8081 и просто перезапустил XAMPP, и это сработало для меня.
Однако я не использовал IIS.
вот ссылка на https://support.microsoft.com/en-in/help/149605/how-to-change-the-tcp-port-for-iis-services
В моем случае я отредактировал файл http.conf, так как хотел, чтобы localhost был доступен для других компьютеров в сети, и не устанавливал статический IP-адрес на моем сетевом адаптере. Я также проверил netstat и увидел, что никто не использует порт 80.
Поэтому я открыл cmd и набрал ipconfig
Я также открыл http.conf и искал (CTRL + F) "Listen 80". Строка над ней, если она не прокомментирована, позволяет локальному хосту быть доступным по сети. Это должно выглядеть примерно так: Listen 192.168.93.3:80
Сравнивая результат выполнения команды ipconfig, я обнаружил, что мой текущий IP-адрес не совпадает с адресом в файле http.conf. Поэтому я изменил IP-адрес в файле http.conf на тот, который назначен мне в настоящее время, и это сработало.
Если вы пользуетесь Skype, вы получите эту ошибку.
Просто нажмите Ctrl + Alt + Del goto Диспетчер задач выберите Skype и нажмите Завершить задачу, затем вернитесь и запустите Apache после запуска Apache успешно. Затем снова откройте Skype, и оба будут работать хорошо.
Не нужно изменять любой порт.
Скорее всего, у вас есть другой запущенный "mysqld" процесс, который убивает его, а затем повторно запускает xampp MySQL, вы не получаете никаких ошибок.
Обычно ошибка порта xampp
возникает, поскольку используемый по умолчанию порт 80
xampp
пытается получить доступ к другому приложению. В большинстве случаев это приложение является Skype.
Итак, у вас есть 2 метода решения этой проблемы:
Эти методы хорошо объясняются в этом сообщении Отладка ошибки xampp port 80
Для меня работала последняя версия 5.6.12 от 5.6.8 на Windows 8.1.
Я получил ту же самую ошибку выше, и что вызвало ее для меня, было то, что в файле "httpd-vhosts.conf" я помещал комментарий внутри тегов <Directory>
, как это...
<Directory "*PATH TO MY FOLDER*...">
AllowOverride All
Require all Granted ## This directive could/should be set to denied.
</Directory>
Как только я удалил комментарий, Apache начал. Наверное, я должен был поставить комментарий на свою собственную линию. Я просто подумал, что, как и другие веб-коды, он может быть там.