У меня есть настройка Windows 7 XAMPP, которую я использую для быстрого тестирования кода PHP. Я проводил тесты с PHP-скриптом WebSocket, который я недавно написал, и он отлично работает на всех протестированных мной портах, кроме портов 80 и 443. Ни 80, ни 443 не будут работать с ws
или же wss
протокол. Когда я пробую любой из портов, абсолютно ничего не пройдет, и сценарий будет работать вечно.
официальная спецификация WebSocket (RFC 6455) состояния:
Протокол WebSocket пытается решить задачи существующих
Двунаправленные HTTP-технологии в контексте существующего HTTP
инфраструктуры; как таковой, он предназначен для работы через порты HTTP 80 и
443 …
А также:
По умолчанию протокол WebSocket использует порт 80 для обычного WebSocket.
соединения и порт 443 для туннельных соединений WebSocket
Безопасность транспортного уровня (TLS) [RFC2818].
А также:
Компонент порта не является обязательным; по умолчанию для «ws» используется порт 80, а
по умолчанию для «wss» используется порт 443.
Так как мне заставить порты 80 и 443 работать?
Благодарю.
редактировать: Вот первая строка netstat
:
Я думаю, это означает, что я не могу использовать порт 80, верно?
Как правило, такого рода проблема будет означать одно из следующих:
Чтобы увидеть, если это первая проблема, попробуйте использовать netstat
чтобы увидеть, какие порты у вас есть слушатели:
netstat -a -p TCP -o -n
Если это вторая проблема, вам, возможно, придется настроить способ работы сервера, чтобы он имел соответствующие разрешения.
Там может быть обходной путь (я не пробовал это), чтобы включить общий доступ к портам под Windows:
https://msdn.microsoft.com/en-us/library/ms733925(v=vs.110).aspx
…но поведение может быть трудно предсказать с такой установкой. Другой вариант — настроить прокси в IIS (что, как я полагаю, связано с портом 80).
Последний ответ был отредактирован 20 ноября 2015 года в 14:00 по восточному поясному времени.
Я обнаружил ваш вопрос, потому что он похож на мой во время процесса установки для установки и настройки XAMPP на моем ноутбуке с Windows 10.
(Ниже я подробно объясню, что произошло в моей конкретной ситуации, но перед этим я дам очень быстрый обобщенный ответ на ваш вопрос.)
Я запустил XAMPP как администратор, щелкнув его правой кнопкой мыши и выбрав эту опцию.
Проблемы с портом исчезли, казалось бы.
Теперь я могу открыть его, как обычно, щелкая левой кнопкой мыши на закрепленном значке на панели задач без указания администратора.
Последний результат произошел после перезагрузки компьютера несколько раз в течение 24 часов.
Хотелось бы, чтобы я точно знал, что изменилось и как это работает, но сейчас, насколько я вижу, он работает отлично.
Я получил некоторые ошибки в панели управления XAMPP 17 ноября 2015 года.
Эти ошибки говорят о вещах, похожих на следующее:
«невозможно открыть PID процесса 4416» «порт 80 заблокирован» «порт 443 заблокирован» «вы не работаете как администратор»
Кроме того, я должен отметить, что я прорабатываю шаги, описанные в главе 2, «Настройка сервера разработки», в изданном О’Рейли учебнике 4-е издание «Изучение PHP, MySQL», & JavaScript с помощью jQuery, CSS, & HTML5 Робин Никсон.
Я также обнаружил, что открылось окно «смотрящий» из командной строки, с которым я не знал, что делать, и поэтому позже закрыл его.
Тем не менее, чтобы вернуться к точке зрения, для меня было важно настроить сервер и запустить его так же, как это возможно в инструкциях из учебника, поэтому изменение номеров портов по умолчанию не показалось мне хорошим вариантом. потому что я не был уверен, как изменение номера порта для одной вещи, такой как основной порт, может повлиять на другие порты и другие вещи на линии.
Я также был немного смущен некоторыми другими советами о поиске с использованием различных методов, чтобы определить, какие другие «вещи» могут прерывать порты, которые пытался использовать мой XAMMP, например, мой сервер Apache.
На самом деле все выглядело так, как будто Apache был источником PID 4416, и ничто не использовало порт 80 или порт 443 вообще. Я также проверил, используется ли порт 3306, потому что в учебнике упоминается, что это будет порт по умолчанию для MySQL, и он больше не используется.
Я проверяю эти PID, перейдя в «Диспетчер задач», затем в «Детали», затем в «PID».
Затем на своем ноутбуке с Windows 10 я закрыл все открытые окна любого типа, даже панель управления XAMMP.
Затем я набрал XAMMP в строке поиска Windows.
Когда появился XAMMP, я щелкнул правой кнопкой мыши по нему и решил запустить его от имени администратора.
Когда панель управления открывалась этим способом, я не получал сообщений об ошибках в панели управления для XAMMP.
Однако, когда я прикрепил XAMMP к панели задач и попытался открыть ее обычным способом (щелчок левой кнопкой мыши, чтобы открыть), я получил много ошибок.
Но когда я щелкаю правой кнопкой мыши на закрепленном значке XAMMP на панели задач, а затем снова нажимаю правую кнопку мыши, когда появляются слова XAMMP, и затем выбираю «Запуск от имени администратора», это кажется безошибочным.
Это обходной путь решения.
Я предполагаю, что это может быть полезно для некоторых, но не для всех.
Я надеюсь, что это помогает пролить свет на подобные проблемы.
Я буду работать, чтобы решить это полностью.
Похоже, что в этом конкретном случае мне нужно найти способ убедиться, что XAMMP автоматически запускается как администратор при открытии и требует некоторых настроек, которые я просто еще не обнаружил.
Я надеюсь, что это полезно для других! 🙂
Большая часть моих знаний основана на HTML5 и CSS3 и поисковой оптимизации, поэтому сейчас я работаю над тем, чтобы больше узнать о серверной части и динамических / интерактивных сценариях.
Постскриптум В течение 24 часов после этой первоначальной проблемы, после нескольких перезагрузок моего ноутбука, я смог безошибочно открыть XAMPP обычным способом, просто щелкнув левой кнопкой мыши на значке, который я закрепил на панели задач.
Я надеюсь, что это также полезно. 🙂
Хорошего дня.