Файл конфигурации для веб-сокетов на сервере Apache - PullRequest
0 голосов
/ 08 февраля 2019

Я совершенно новичок в бэкэнд-веб-разработке и создал проект с использованием php, но теперь я хочу использовать веб-сокеты, чтобы сделать все более эффективным.Для этого я собираюсь использовать Ratchet.Я использую Apache 2.4.33.Когда я пытаюсь запустить свой тестовый файл, я получаю ошибку 400.У меня еще нет ни сервера, ни домена, и я надеялся запустить тестовые файлы на моей локальной машине.Вот как выглядит мой файл user.conf:

<VirtualHost *:80>
    ServerName localhost

    ProxyPreserveHost On
    ProxyPass / localhost:8080/
    ProxyPassReverse / http:localhost:8080/
    ProxyRequests Off
    RewriteEngine on
    RewriteCond %{HTTP:UPGRADE} ^WebSocket$ [NC]
    RewriteCond %{HTTP:CONNECTION} Upgrade$ [NC]
    RewriteRule .* ws://localhost:8080%{REQUEST_URI} [P]
</VirtualHost>

Как я уже говорил, всякий раз, когда я пытаюсь запустить свой код server.php, страница отображается как «HTTP ERROR 400».Могут быть проблемы с моим кодом, но я совершенно уверен, что это связано с тем, как я настроил свой файл conf.

1 Ответ

0 голосов
/ 09 февраля 2019

В моем конфигурационном файле были ошибки.Я запустил apachectl -S, чтобы найти то, что они были.Вот рабочий файл конфигурации для всех, кто боролся с этим, как я:

<Directory "/Users/User/Sites/ProjectFolder">
   AddLanguage en .en
   AllowOverride All
   Options Indexes MultiViews FollowSymLinks
   Require all granted
</Directory>

ProxyRequests Off
RewriteEngine On
RewriteCond %{HTTP:Connection} Upgrade [NC]
RewriteCond %{HTTP:Upgrade} websocket [NC]
RewriteRule /(.*) ws://127.0.0.1:8080/$1 [P,L]
<VirtualHost localhost:8080>
        ProxyPass / ws://localhost:8080/
        ProxyPassReverse / ws://localhost:8080/
</VirtualHost>

Если вы используете Ratchet, убедитесь, что ваш composer.json правильно настроен с правильной версией.Затем обновите его, запустив обновление php composer.Наконец, обязательно перезагрузите сервер apache с помощью sudo apachectl restart.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...