好的,所以我以前设置了两个虚拟主机,它们工作正常.它们都包含简单的Web项目,http://project1并且可以http://project2在浏览器中正常工作.
无论如何,我来添加另一个vhost.我使用127.0.0.1 project3编辑了/ etc/hosts文件,并通过复制和粘贴project2的先前条目并编辑文件路径来更新httpd-vhosts.conf文件.
我已经检查了所有文件和文件夹权限(实际上我是从project2复制并粘贴的),只是在index.php文件中放了一个"hello world"消息.
访问时我收到403禁止权限被拒绝的消息 http://project3
为什么这样,我只能弄清楚我错过了什么步骤,因为一切似乎都设置正确.
提前致谢.
我正在尝试将基于PHP的客户端连接到websocket服务器.
这是我一直在使用的代码,已经在不同的论坛上广泛发布.但由于某种原因,我无法让它发挥作用.
任何帮助,将不胜感激.
$host = 'host'; //where is the websocket server
$port = 443; //ssl
$local = "http://www.example.com/"; //url where this script run
$data = '{"id": 2,"command": "server_info"}'; //data to be send
$head = "GET / HTTP/1.1"."\r\n".
"Upgrade: WebSocket"."\r\n".
"Connection: Upgrade"."\r\n".
"Origin: $local"."\r\n".
"Host: $host"."\r\n".
"Content-Length: ".strlen($data)."\r\n"."\r\n";
////WebSocket handshake
$sock = fsockopen($host, $port, $errno, $errstr, 2);
fwrite($sock, $head ) or die('error:'.$errno.':'.$errstr);
$headers = fread($sock, 2000);
fwrite($sock, "\x00$data\xff" ) or die('error:'.$errno.':'.$errstr);
$wsdata = fread($sock, 2000); //receives the data included in the …Run Code Online (Sandbox Code Playgroud) 如何以PHP SSL 上下文选项cafile可接受的格式导出证书?
我下面的代码用于openssl_x509_export将证书链导出stackoverflow.com到文件。该代码基于如何在 PHP 中使用 CURL 获取 SSL 证书信息?
$context = stream_context_create(["ssl" => ["capture_peer_cert_chain" => true]]);
$h = stream_socket_client(
"ssl://stackoverflow.com:443", $errno, $errstr, 30, STREAM_CLIENT_CONNECT,
$context);
$params = stream_context_get_params($h);
$ca = null;
foreach ($params["options"]["ssl"]["peer_certificate_chain"] as $cert)
{
openssl_x509_export($cert, $output);
$ca .= $output;
}
file_put_contents("cafile", $ca);
Run Code Online (Sandbox Code Playgroud)
(我知道没有必要导出整个链。)
然后,我尝试使用以下代码片段使用导出的文件连接到同一主机以验证证书。但是代码失败了:
PHP 警告:file_get_contents():SSL 操作失败,代码为 1。OpenSSL 错误消息:
错误:14090086:SSL 例程:SSL3_GET_SERVER_CERTIFICATE:第 22 行 /path/test.php 中的证书验证失败
$context = stream_context_create(["ssl" => ["cafile" => "cafile"]]);
file_get_contents("https://stackoverflow.com/", false, $context);
Run Code Online (Sandbox Code Playgroud)
文件格式有什么问题?
有趣的wget是对导出的证书感到满意,以下成功: …
获取 ws://echo.websocket.org/ HTTP/1.1 来源:http://websocket.org 饼干:__utma=99as 连接:升级 主机:echo.websocket.org Sec-WebSocket-Key : uRovscZjNol/umbTt5uKmw== 升级:网络套接字 Sec-WebSocket-版本:13
https://www.websocket.org/echo.html
我尝试使用上述页面进行连接,但没有任何响应。
如果您还有其他方法,请告诉我。
当然,我连接到同一个网络。