nodejs和python和php_PHP和Nodejs能配合使用吗?
可以
如你安装了Python,可以立马执行一个简单的命令,一个简便的开发服务器就完成了。python -m SimpleHTTPServer
但是PHP,直到php5.4才支持类似的功能
$ php -S 0.0.0.0:8000
PHP 5.4.0 Development Server started at Tue Aug 21 23:21:50 2012
Listening on 0.0.0.0:8000
Document root is /home/tom
Press Ctrl-C to quit.
php本身就可以架一个服务器,Nodejs也可以架一个服务器,那么就不用啥apache啦,nginx啦
基本思路就是Node开启一个服务器作为前台,监听80端口,类似Apache的角色,php开启一个服务器在后台运行。 Node服务将http请求转发给php服务器执行,执行完成后返回给node服务器,node服务器再返回给浏览器
Node承担的是一个中间的代理角色
var fs = require('fs'),
http = require('http'),
spawn = require('child_process').spawn,
phpserver;
phpserver = spawn('php',['-S','0.0.0.0:8000']);
phpserver.stdout.on('data', function (data) {
console.log('stdout: ' + data);
});
phpserver.stderr.on('data', function (data) {
console.log('stderr: ' + data);
});
phpserver.on('exit', function (code) {
console.log('child process exited with code ' + code);
});
process.on('exit',function(){
phpserver.kill('SIGHUP');
});
function handleRequest(request, response) {
var headers = {};
for(var x in request.headers){
headers[x] = request.headers[x];
}
headers['Content-Type']= 'application/x-www-form-urlencoded';
var proxy_request = http.request({
host:'localhost',
port:8000,
method:request.method,
path:request.url,
headers:headers
});
proxy_request.on('response', function (proxy_response) {
response.writeHead(proxy_response.statusCode,proxy_response.headers);
proxy_response.on('data', function(chunk) {
response.write(new Buffer(chunk));
});
proxy_response.on('end', function() {
response.end();
});
});
request.on('data', function(chunk) {
proxy_request.write(new Buffer(chunk));
});
request.on('end', function() {
proxy_request.end();
});
}
http.createServer(handleRequest).listen(80);
保存上面的文件为server.js然后在命令行里执行
node server.js
一个node和php混搭的服务器就搭建成功了
nodejs和python和php_PHP和Nodejs能配合使用吗?相关推荐
- python和node_Python和NodeJS绘图对比
在绘图方面,Python 比 NodeJS 好用,首先 Python 绘图库多,而且 API 强大而完善. NodeJS 还是少点,一些库还没测就放弃了,需要 window 支持,而我需要在后端执行. ...
- python nodejs开发web_用nodejs和python实现一个爬虫来爬网站(智联招聘)的信息
最近研究了一下网站爬虫,觉得python和nodejs都有优点,所以我决定实现一个爬虫,用python来抓取网页的源代码,用nodejs的cheerio模块来获取源代码内的数据.正好我有明年换工作的打 ...
- python调用node_node-python:在nodejs中调用python代码
在npmjs.com中有一个包node-python,顾名思义,是不是就是在node中使用python呢?让我们往下看: (这里是它的地址:https://www.npmjs.com/package/ ...
- NodeJS 依赖 Python 自动安装
在 Windows 10 环境安装 node-v16.13.1-x64.msi 的时候. 会自动安装 Python 依赖. 在 NodeJS 的安装过程中,勾选Authmatically instal ...
- nodejs+java+python小区住户防疫健康出入返乡登记管理系统vue+elementui
分为住户,普通管理员,系统管理员. (1)住户功能: 住户信息 住户注册 图表统计 住户提交健康信息功能 住户提交返乡申请, 住户提交出入申请, 前端技术:nodejs+vue+elementui越来 ...
- nodejs和python爬虫 哪个好_nodejs有哪些爬虫框架?
nodejs有哪些爬虫框架?下面本篇文章给大家介绍几款nodejs爬虫框架.有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助. node-spider 基于nodejs的通用爬虫框架,得 ...
- nodejs 更新_NodeJs(一)我对NodeJs的认知
欢迎来到我的NodeJs专题系列,更多精彩内容持续更新中,敬请关注! 写在前面 前面我已经分享了100+篇前端相关的技术文章,都是自己平时工作中遇到的一些问题的问题,还有是我平时自学的内容.但是那些前 ...
- linux sublime nodejs,Windows环境下sublime的Nodejs插件详细安装图解
前面的话 搜索了好多文档后,才成功在Windows环境下安装了sublime text3的nodejs插件.为了存档,也为了方便有同样需求的朋友,将其安装过程详细记录如下 安装nodejs 虽然nod ...
- asp是什么, javascript和php,asp区别,什么是 JavaScript 引擎, nodejs和vuejs的关系,nodejs和javascript区别
asp是什么 ASP有两个含义: 一是英文Application Service Provider的缩写,意思是网络应用服务供应商: 另一个是英文Active Server Page的缩写,是微软推出 ...
最新文章
- 天猫双十一这十年:从“人肉云计算”到“脉冲计算”经历了什么
- Elasticsearch压缩索引——lucene倒排索引本质是列存储+使用嵌套文档可以大幅度提高压缩率...
- webpack loader的套路
- HTML5 新增结构元素分为主体结构元素和非主体结构元素
- 安卓menu页面跳转_微信安卓版7.0.14内测!“发现小程序”页面大改版
- 神经网络与深度学习——TensorFlow2.0实战(笔记)(二)(开发环境介绍)
- 使用Windows窗体的C#旋钮控件
- 如何用 Python 快速开发一个区块链数据结构?
- 分布式 Spring Cloud 基于 Spring Boot 开发一整套
- 显卡型号区分 N卡和A卡 N卡与A卡的区别
- 计算机多系统启动光盘制作,制作启动光盘,小编教你如何制作光盘启动盘
- TeamViewer 远程连接一直显示正在初始化显示参数的解决方案
- python蓝牙控制手机打电话_树莓派 python bluetooth,用pybluez控制蓝牙
- 关于搭建k8s集群遇到的问题与解决方法
- linux系统出现BUG:softlockup- CPU#0 STUCK FOR 23s 或 rcu_sched self-detected stall on cpu 等字样的解决办法
- 【数字IC/FPGA】时钟无毛刺切换
- 文档习惯之格式篇 用文档逼疯一个人的五种办法
- Vultr云主机+Godaddy域名+阿里SSL配置Nginx的https访问(包含docker配置方法)
- 网络与信息安全基础知识--网络安全
- 补充:特殊句型(虚拟语气、情态动词)
热门文章
- SpringMVC中通过@ResponseBody返回对象,Js中调用@ResponseBody返回值,统计剩余评论字数的js,@RequestParam默认值,@PathVariable的用法
- JVM可创建的最大线程数
- 解决load,get,save 等is not valid without active transaction异常的原因。
- html自定义属性冒号,vue中标签上的属性加冒号与不加冒号的区别
- linux安装多路径报错,linux多路径软件rdac安装方法
- OpenCV 距离变换的笔记
- 批量选中删除(包含全选)---jsp,servlet
- 台积电要造第一款7nm芯片 明年下半年可投产
- 数据库 SQL语法一
- 我为什么喜欢用C#来做并发编程