需要一些帮助让CGI工作。我正在为nodejs编写一个小插件,允许运行没有apache的wordpress站点。
我已经完成了大部分的基础工作,因此运行wordpress网站现在运行良好,但只需要上传文件即可正常工作。我设法使简单的文件上传工作,但是对于更大的文件,我在尝试写入php-cgi进程的stdin时得到ECONNRESET。
代码在这里:git clone https://github.com/mkschreder/node-php.git
要测试代码,请执行以下操作:
var express = require('express');
var php = require("./main");
var path = require("path");
var request = require("request");
var http = require("http");
var app = express();
var server = http.createServer(app);
app.use("/", php.cgi("/path/to/wordpress/install"));
server.listen(9090);
console.log("Server listening on: "+server.address().port);
现在,如果我使用node运行它并转到localhost:9090的wordpress管理面板,然后尝试上传主题或插件,服务器在文件上传期间在wordpress进程上调用php.stdin.write时会获得econnreset 。但是如果我之后调用php.stdin.end(),它仍然有效,但数据仍然只在wordpress中被部分接收。如果图像足够小,使用图像可以正常工作。