请教在QT5里如何建立http服务器,可以从网页通过url访问文件
http协议是在tcp/ip协议上建立起来了,要在Android上建立一个http服务器的话,确实挺麻烦的使用现成的,到是会节省一些时间,但是现成的都不太完善,如果需要自己去实现http协议的话,会很花时间
如果楼主只是想访问手机上的文件,很多种方式都可以,有很多现成的android应用可以做到
或者楼主考虑使用ftp服务器来代替http服务器这样会简单很多,而且也可以在浏览器里面访问
再或者看下有没有人把Apache HTTP Server,移植到android上面
修改webxml 把listings 改成 true 添加 sortListings 为true
<servlet>
<servlet-name>default</servlet-name>
<servlet-class>orgapachecatalinaservletsDefaultServlet</servlet-class>
<init-param>
<param-name>debug</param-name>
<param-value>0</param-value>
</init-param>
<init-param>
<param-name>listings</param-name>
<param-value>true</param-value>
</init-param>
<init-param>
<param-name>sortListings</param-name>
<param-value>true</param-value>
</init-param>
<load-on-startup>1</load-on-startup>
</servlet>
1首先打开开始菜单中的控制面板选择,在控制面板中选择并打开“程序”,找到并双击“打开或关闭Windows功能”,在弹出的窗口中选择“Internet信息服务”下面所有选项,点击确定,然后就会开始更新服务,等待一会;
2等待更新完成之后,打开浏览器,在浏览器地址栏上输入“http://localhost/”,然后回车,如果此时出现IIS7欢迎界面,说明Web服务器已经搭建成功。
3当web服务器搭建成功后,下一步要做的就是把网站安装到Web服务器的目录中,一般情况下,当Web服务器安装完成之后就会创建路径“%系统根目
录%inetpub/wwwroot”,只要将网站复制到该路径下,就可实现本地访问该网站
4接着设置防火墙,让局域网中的其它计算机也能访问本地网站资源,操作方法:依次打开“控制面板--系统和安全”,然后点击“允许程序通过Windows防火墙”,在弹出的对话框,选择勾选“万维网服务HTTP”右侧的两个复选框,点击确定退出。 最后在局域网中其它计算机上,打开浏览器输入“http://Web服务器的IP地址/”,然后回车即可访问服务器上的资源。那是不可能的,FTP和HTTP是两种不同的协议,用FTP做的服务器,就只能通过FTP访问。
假如你的FTP为某目录设置的用户名是username,密码是password,虚拟路径是path,主机名是 19216812 ,那么你可以这样访问:
ftp://username:passwrod@19216812/path/1exe
如果你非要以http:打头,那么,你不得不再搭建一个HTTP服务器,比如可以用IIS,然后把它的虚拟目录设置为和FTP一样。
第1步:安装一个服务我这装的是oneInstack
第2步:先在阿里云添加一个安全组50
第3步:ssh:在oneinstack 执行/vhostsh 这是添加虚拟机
第4步:在/usr/local/nginx/conf/vhost目录下 修改端口
第5步:web 服务开启 端口 iptables -A INPUT -p tcp --dport 50 -j ACCEPT
第6步:ssh:执行service nginx restart 重启服务
第7步:在/data/wwwroot/ip地址:50 放自己页面文件
完了,你可以在服务器ip后面加50就可以访问了,你还可以类似开启30,40,60之类的端口
nginx部署
1在下载的ngnix的工具中执行下面命令:
start /nginxexe回车即启动了nginx服务
2检查是否成功
输入http://localhost 会有Welcome to nginx!
3nginx配置
找到nginx下的conf/nginxconf文件,设置代理相关信息,重点是server{}中的内容
server {
listen 80;
server_name testcom;
# 这里是你要代理的测试环境域名加上-local
# 比如你的项目测试环境为testcom,你本地此处可以设置为testcom,当然你可以随便设置
location /{
add_header 'Access-Control-Allow-Origin' '';
add_header 'Access-Control-Allow-Credentials' 'true';
add_header 'Access-Control-Allow-Methods' 'GET, POST, OPTIONS';
add_header 'Access-Control-Allow-Headers' 'DNT,web-token,app-token,Authorization,Accept,Origin,Keep-Alive,User-Agent,X-Mx-ReqToken,X-Data-Type,X-Auth-Token,X-Requested-With,If-Modified-Since,Cache-Control,Content-Type,Range';
add_header 'Access-Control-Expose-Headers' 'Content-Length,Content-Range';
# 此处8091是我们本地运行项目的端口号,设置成跟你本地起的服务端口号一样就行
proxy_pass http://127001:8091/;
}
}
登录后复制

4本机dns配置
修改本地host文件配置
找到目录C:\Windows\System32\drivers\etc,打开hosts文件,修改文件,加入127001 testcom
然后在testcom 可以看到Welcome to nginx!
5运行
先输入/nginxexe -t检查nginx配置是否正确
继续输入nginx -s reload重启(nginx配置文件修改后都要重启nginx才会生效)
刷新dns: ipconfig /flushdns
ngnix设置一个服务
root就是文件的 地址 localhost:8000/文件名后缀 就是页面地址
server {
listen 8000;
# listen somename:8080;
# server_name somename alias anotheralias;
location / {
root "E:\华侨城\西安欢乐谷\聚合-集成小程序\src\pages\index";
index indexhtml indexhtm;
}
}
登录后复制

本地通过http-server启动服务
npm install http-server -g
http-server -p 8881
页面输入127001:8881 然后写入页面aaahtml 就可以访问了
登录后复制
重启redis
1cmd打开redis目录:
redis-serverexe rediswindowsconf
每次重启 是不是很麻烦,自动启动的方法:
1在redis目录启动redis: redis-serverexe rediswindowsconf
2在redis设置用户名密码:
redis-cliexe
然后输入 set name wangjigen 设置自己的名字 getname 看看自己是否设置成功
config set requirepass wjg720941设置密码 auth 需要输入自己的密码
config get requirepass 查看自己的用户名密码
3设置服务命令
redis-server --service-install rediswindows-servi` ceconf --loglevel verbose
然后在计算机服务点击可开启
over
然而启动的时候会报错
node_redis: Warning: Redis server does not require a password, but a password was supplied
1可能是这是redis程序没有指向windowconf 文件 redis-serverexe rediswindowsconf
2可能是或者在 rediswindowsconf文件搜索requirepass 添加密码 requirepass asd123
0条评论