0

私は CGI と Apache に完全に慣れていませんが、いくつかのことを試しています。手始めに、C で簡単な hello CGI を書きました。

#include <stdio.h>

void main() {
    printf("Content-type: text/html\n\n");
    printf("<html>\n");
    printf("<head><title>CGI Output</title></head>\n");
    printf("<body>\n");
    printf("<h1>Hello, world.</h1>\n") ;
    printf("</body>\n");
    printf("</html>\n"); 
}

コンパイルしてgcc hello.c -o hello.cgi/var/www/mycgi に配置

その後、httpd.conf を変更して以下を追加しました

ScriptAlias /mycgi/ "/var/www/mycgi/"

IfModule alias_module および

<Directory "/var/www/mycgi">
    Options +ExecCGI
    AddHandler cgi-script .cgi
    AllowOverride None
    Options None
    Order allow,deny
    Allow from all
</Directory>

その後、Apache を再起動し、localhost/mycgi/hello.cgi に移動すると、ブラウザはファイルを実行する代わりにダウンロードするだけです。ヘルプは非常に高く評価されます!

4

2 に答える 2

3

janosのアドバイスによると、apache2 が cgi_module をロードしたことを確認する必要があります: LoadModule cgi_module modules/mod_cgi.so。これは次の方法で実行できます。

sudo ln -s /etc/apache2/mods-available/cgi.load /etc/apache2/mods-enabled/cgi.load

次にapache2を再起動すると、cgi.load今度はファイルがロードされます。

于 2014-03-17T11:14:17.630 に答える