server{
listen 80 default_server;
server_name hello_world;
location / {
root /var/www/helloworld;
fastcgi_pass 127.0.0.1:9000;
}
}
/var/www/helloworld 目录下有一个 index.html 文件,其中显示着文本 "site comming soon"。
我的 C++ 代码如下:
#include <iostream>
#include "fcgio.h"
using namespace std;
int main(void) {
cout<<"Content-type:text/html\r\n\r\n";
cout<<"<html>\n";
cout<<"<head>\n";
cout<<"<title>Hello World- First CGI Program</title>\n";
cout<<"</head>\n";
cout<<"<body>\n";
cout<<"<h2> hello world</h2>\n";
cout<<"</body>\n";
cout<<"</html>\n";
return 0;
}
我有一个 C++ 二进制代码文件,是使用以下命令生成的:
g++ abc.cpp -lfcgi++ -lfcgi -o hello_world
需要在NGINX服务器上部署的脚本。我在stackoverflow上搜索并尝试了不同的方法来运行这个脚本,但仍然缺少一些东西。
我还运行了以下命令将c++二进制代码文件连接到服务器
cgi-fcgi -start -connect 127.0.0.1:9000 ./hello_world
现在当我在浏览器中访问地址127.0.0.1:9000时,没有看到C++代码中的“hello world”文本。
输出:我应该从C++二进制代码中得到“hello world”的响应,并将其显示在HTML页面上。
请问我错过了什么,请帮忙看看。
更新:这是我的配置文件现在的内容。
server{
server_name hello;
location / {
fastcgi_index index.cgi;
root /var/www/helloworld;
fastcgi_pass 127.0.0.1:9000;
fastcgi_param SCRIPT_FILENAME /scripts$fastcgi_name;
include fastcgi_params;
}
}