我完全新的后端网络开发和使用PHP取得了一个项目,但我现在想使用WebSockets使一切更高效。要做到这一点,我将使用救护车。我运行的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错误400”。有可能是我的代码的问题,但我相当肯定的是与我怎么设置我的conf文件来完成。
有在我的配置文件中的错误。我跑的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>
如果您正在使用棘轮确保您composer.json设置正确与有效版本。然后通过运行PHP作曲家升级升级。最后,一定要重新使用sudo的apachectl重新启动Apache服务器。