apache/nginx - 执行程序从 http 请求中获取参数
apache/nginx -execute program taking params from http request
我在 Ubuntu 14.04 上使用 VPS 和 Apache/Nginx(在不同时间),并通过 exec() 在 php 中执行 commands/programs。现在我知道了,我不需要 Php 来执行这些事情,比方说:
exec('whoami'); or
exec('myexec');
因为 php 在我的案例中只是充当附加层。那么我可以只使用 apache/nginx 从对它发出的 http 请求中获取数据(get、post..)和 'pass' 作为某些可执行程序和 'return the output'(纯文本)的参数吗?假设一个 calc 程序接收 3 个参数 ( 4,5,+ ) 和 return 输出 ( 9 ).
我已经看过这个 ques ,但它用 Lua 脚本说明了过程,而我正在尝试用 c++ 做一些业余项目。目前我不知道如何进行,因为我只熟悉 php LAMP stack ,如果我在某个地方错了,一些指导会有所帮助:)
您可以将 CGI 与您的网络服务器一起使用,因此当请求某个 URL 时,它会提供您的 C++ 代码的输出。我不确定这是否可以称为 "good" 实践,但这是实现您想要的目标的一种方法。
有关详细信息,请查看此 link
http://www.tutorialspoint.com/cplusplus/cpp_web_programming.htm
免责声明:我不是 C++ 程序员,所以这实际上可能行不通。
Web 服务器配置
确保您的网络服务器支持 CGI 并进行相应配置。 Apache 2 虚拟主机文件示例:
<Directory "/var/www/cgi-bin">
AllowOverride None
Options ExecCGI
Order allow,deny
Allow from all
</Directory>
<Directory "/var/www/cgi-bin">
Options All
</Directory>
示例 C++ 程序
#include <iostream>
using namespace std;
int main ()
{
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! This is my first CGI program</h2>\n";
cout << "</body>\n";
cout << "</html>\n";
return 0;
}
编译以上代码并将可执行文件命名为cplusplus.cgi。将其放在 /var/www/cgi-bin 目录或您在 Apache 配置文件中配置的任何目录中。不要忘记使其可执行 (chmod 770 cplusplus.cgi)。现在,如果你访问 URL www.example.org/cgi-bin/cplusplus 你应该看到输出 Hello World! This is my first CGI program
我在 Ubuntu 14.04 上使用 VPS 和 Apache/Nginx(在不同时间),并通过 exec() 在 php 中执行 commands/programs。现在我知道了,我不需要 Php 来执行这些事情,比方说:
exec('whoami'); or
exec('myexec');
因为 php 在我的案例中只是充当附加层。那么我可以只使用 apache/nginx 从对它发出的 http 请求中获取数据(get、post..)和 'pass' 作为某些可执行程序和 'return the output'(纯文本)的参数吗?假设一个 calc 程序接收 3 个参数 ( 4,5,+ ) 和 return 输出 ( 9 ).
我已经看过这个 ques ,但它用 Lua 脚本说明了过程,而我正在尝试用 c++ 做一些业余项目。目前我不知道如何进行,因为我只熟悉 php LAMP stack ,如果我在某个地方错了,一些指导会有所帮助:)
您可以将 CGI 与您的网络服务器一起使用,因此当请求某个 URL 时,它会提供您的 C++ 代码的输出。我不确定这是否可以称为 "good" 实践,但这是实现您想要的目标的一种方法。 有关详细信息,请查看此 link http://www.tutorialspoint.com/cplusplus/cpp_web_programming.htm
免责声明:我不是 C++ 程序员,所以这实际上可能行不通。
Web 服务器配置
确保您的网络服务器支持 CGI 并进行相应配置。 Apache 2 虚拟主机文件示例:
<Directory "/var/www/cgi-bin"> AllowOverride None Options ExecCGI Order allow,deny Allow from all </Directory> <Directory "/var/www/cgi-bin"> Options All </Directory>
示例 C++ 程序
#include <iostream> using namespace std; int main () { 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! This is my first CGI program</h2>\n"; cout << "</body>\n"; cout << "</html>\n"; return 0; }
编译以上代码并将可执行文件命名为cplusplus.cgi。将其放在 /var/www/cgi-bin 目录或您在 Apache 配置文件中配置的任何目录中。不要忘记使其可执行 (chmod 770 cplusplus.cgi)。现在,如果你访问 URL www.example.org/cgi-bin/cplusplus 你应该看到输出
Hello World! This is my first CGI program