最近在玩websocket,从网上下载php html5 websocket程序包,安装在iis环境下(已经安装好php环境),但是,总是出现输入用户名就自动退出聊天室的尴尬现象。百度google各种搜,还是没有解决问题,于是想到是不是php服务没有开启。好,那就来继续研究。
打开cmd命令,输入php ****.php ****为文件名,例如我的是websocket.phpC:\Users\binzer007>php websocket.php
Could not open input file: websocket.php
提示找不到文件,那检测php是否正确安装C:\Users\binzer007>php -v
PHP 5.2.6 (cli) (built: May 2 2008 18:02:07)
Copyright (c) 1997-2008 The PHP Group
Zend Engine v2.2.0, Copyright (c) 1998-2008 Zend Technologies
说明已经正确安装了Php,那就做一个小程序测试一下,打开记事本,输入<?php echo "Hello, world!\n";?>,并另存为text.php文件。C:\Users\binzer007>php -f text.php
Could not open input file: text.php
这是为什么呢。后来想一想,是不是路径的问题,之前Java安装也遇到过这样的问题,好,直接进入我存放text.php的文件夹E:\zwf work\imwen\zt\0\ask>php -f he.php
Hello, world!
搞定。
继续运行websocket.phpE:\zwf work\imwen\zt\0\ask>php websocket.php
Fatal error: Call to undefined function socket_create() in E:\zwf work\imwen\zt\0\ask\websocket.php on line 87
还是不行,这看得出来是socket问题了。再造一个小程序socket.php<?php
$socket = socket_create(AF_INET, SOCK_STREAM, SOL_TCP);
$address = '127.0.0.1';
$port = 80;// 举例的端口,请按实际情况配置,不然会失败的
$conn = socket_connect($socket, $address, $port);
if($conn){
echo 'socket连接成功!';
}
?>E:\zwf work\imwen\zt\0\ask>php socket.php
Warning: socket_connect(): unable to connect [0]: 由于目标计算机积极拒绝,无法连接。
in E:\zwf work\imwen\zt\0\ask\socket.php on line 5
还是失败,找到php.ini安装目录,一般安装在C盘Windows下,打开php.ini
找到extension_dir = "../ext",根据php文件存放位置修改,例如我的php文件夹存放在D:/php下,更改为extension_dir = "D:\php\ext",然后找到extension=php_sockets.dll一句,将前面的;去掉,因为";"是注释的意思。
保存修改好的php.ini文件,再次运行E:\zwf work\imwen\zt\0\ask>php socket.php
socket连接成功!E:\zwf work\imwen\zt\0\ask>php websocket.php
Server Started : 2016-10-27 01:14:23
Listening on : 127.0.0.1 port 8000
问题解决,服务器连接上了。这样,本地iis安装环境下,浏览器打开php html5 websocket配置的网页聊天室,就可以正常工作了。