2017-06-23 62 views
0

我配置了cgi-bin並試圖運行C++目標文件,但不是在瀏覽器上顯示結果,而是下載了可執行文件。C++可執行文件從瀏覽器下載而不是顯示結果

步驟我都遵循:

步驟中的public_html和配置的public_html的cgi-bin。在終端

  1. $ sudo的運行以下命令a2enmod CGI
  2. $ sudo的a2enmod cgid進行
  3. $ sudo的a2enmod USERDIR
  4. $ sudo的服務的Apache2重啓
  5. $的mkdir〜/的public_html
  6. $ CD 〜/ public_html
  7. $ mkdir cgi-bin
  8. $ cd/etc/apache2
  9. $ sudo的VIM網站可用/ 000-default.conf
  10. 添加下面的文本文件:


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> 
  • $ sudo的服務的Apache2重啓
  • 在此之後,我創建了一個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

    的例子對象文件得到下載,而不是顯示在瀏覽器中的結果鏈接它。

    +0

    這看起來像是[配置'cgi-bin'的簡單步驟](https://linuxconfig.org/simple-cgi-and-apache-examples-on-ubuntu-linux),它可能有你的答案。 –

    +0

    (請原諒我的意見刪除!)或許問題是可執行位不是爲所有用戶設置的 - 'chmod a + x example'是否有所作爲?或者它已經是'rwxrwxr-x'之類的嗎? –

    +0

    是的,它是權限問題,現在可執行文件在瀏覽器上正常工作。謝謝。 –

    回答

    1

    腳本未正確寫入默認配置文件。否則,所提供的步驟都是正確的,並且工作正常。該代碼需要寫入配置文件中給出的VirtualHost標籤內。

    相關問題