mac os 自带 Apache server,用其来托管 C++ 编译后的 cgi 程序
修改配置
修改配置文件
$ sudo vim /etc/apache2/httpd.conf
取消这里的注释
<IfModule mpm_prefork_module>
LoadModule cgi_module libexec/apache2/mod_cgi.so
</IfModule>
修改这里的 Options
为 ExecCGI
<Directory "/Library/WebServer/CGI-Executables">
AllowOverride None
Options ExecCGI
Require all granted
</Directory>
解开这里的 handler (可以添加其他文件后缀名)
AddHandler cgi-script .cgi
启动
# or sudo apachectl start
$ sudo apachectl restart
查看请求日志
$ tail -f /var/log/apache2/error_log
准备展示文件
hello-cgi.cpp
#include <iostream>
int main() {
std::cout << "Content-type:text/html\r\n\r\n";
std::cout << "<html>\n";
std::cout << "<head>\n";
std::cout << "<title>Hello World</title>\n";
std::cout << "</head>\n";
std::cout << "<body>\n";
std::cout << "<h2>Hello World</h2>\n";
std::cout << "</body>\n";
std::cout << "</html>\n";
return 0;
}
编译 g++ hello-cgi.cpp -g -Wall -std=c++14 -o hello-cgi.cgi
移动到 web-server 目录 sudo mv hello-cgi.cgi /Library/WebServer/CGI-Executables
访问 http://localhost/cgi-bin/hello-cgi.cgi