从浏览器下载C ++可执行文件而不是显示结果

时间:2017-06-23 06:33:50

标签: c++ apache ubuntu cgi

我已经配置了cgi-bin并尝试运行c ++目标文件,但是不是在浏览器上显示结果,而是下载了可执行文件。

我遵循的步骤:

在public_html和public_html中配置cgi-bin的步骤。在终端

中运行以下命令
  1. $ sudo a2enmod cgi
  2. $ sudo a2enmod cgid
  3. $ sudo a2enmod userdir
  4. $ sudo service apache2 restart
  5. $ mkdir~ / public_html
  6. $ cd~ / public_html
  7. $ mkdir cgi-bin
  8. $ cd / etc / apache2
  9. $ sudo vim sites-available / 000-default.conf
  10. 在文件中添加以下文字:

  11. ScriptAlias /cgi-bin/ /home/*/public_html/cgi-bin/
     <Directory "/home/*/public_html/cgi-bin">
             AllowOverride None
             Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
             SetHandler cgi-script
             Order allow,deny
             Allow from all
     </Directory>
    
    1. $ sudo service apache2 restart
    2. 在此之后我创建了一个c ++文件 使用此代码

      #include <iostream>
      
      using namespace std;
      
      int main ()
      {
      
          cout << "Content-type:text/html \n\n";
          cout << "Hello World - First CGI Program";
      
          return 0;
      }
      

      使用此

      编译并关联它
      g++ -o example example.cpp
      

      当我在浏览器上运行它时 http://localhost/~username/public_html/cgi-bin/example

      下载示例对象文件而不是在浏览器上显示结果。

1 个答案:

答案 0 :(得分:1)

脚本未在默认配置文件中正确编写。否则,所提供的步骤都是正确的,并且工作正常。该代码需要写在配置文件中给出的VirtualHost标记内。