[Note] 2023-03-13 C++/Cgi mac os

2023-03-12  本文已影响0人  赶时间的闹钟

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>

修改这里的 OptionsExecCGI

<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

上一篇下一篇

猜你喜欢

热点阅读