2016-12-12 14 views
0

私はUbuntu Linuxマシンで開発したCGIコードをC言語で書いています。それは正常に動作しますが、私はいくつかの変更を加え、旅行中にそれを更新したいと思っていました。 XcodeとSafariを使ってMacノートパソコン(macOS 10.12.1)でテストするように設定しました。 ApacheがCGIコードを認識していくつかのサイトを見つけられるようにする方法についてオンラインで調べてみましたが、それでも動作しません。ここでMacOSでのCGIコードのテストSierra

は、私がこれまで持っているものです。

  1. 私はフォームをCGIコードを呼び出すHTMLページを格納するディレクトリ/ユーザー/ユーザー名/サイトを設定します。 (「ユーザ名」は私のユーザー名です)

  2. は私が(注:私はまた、念のために/ユーザ/ユーザ名/サイトに置く)/ライブラリ/ WebServer/CGI-実行可能ファイルにコンパイルされたCGIコードを入れ

  3. また、オンラインの指示に従って、私は、ユーザー名と呼ばれるの/ etc/apache2の/ユーザーで次のファイルを作成し

    LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so 
    LoadModule userdir_module libexec/apache2/mod_userdir.so 
    AddHandler cgi-script .cgi 
    AddType text/html .shtml 
    AddOutputFilter INCLUDES .shtml 
    Include /private/etc/apache2/extra/httpd-userdir.conf 
    Include /private/etc/apache2/extra/httpd-vhosts.conf 
    
  4. は、オンラインの指示に従い、/etc/apache2/httpd.confに私は次の行をコメント解除しました.conf(ここでも "username"は私のユーザ名です)。私は(また、コンピュータの完全な再起動を試みたが、それは助けにはならなかった)、Apacheサーバを再起動する上記の変更を行って

    <Directory "/Users/username/Sites/"> 
        AllowOverride All 
        Options Indexes MultiViews FollowSymLinks 
        Require all granted 
    </Directory> 
    

私はhttp://localhost/~username/foo.htmlを使用して、フォームのページをロードすることができるよ、私はコードにPOSTメソッドを使用してフォームを送信するときfoo.cgiそれはちょうど私に戻ってfoo.cgiを吐くし、その後サファリはそれをダンプダウンロードフォルダ。また、単純なperlスクリプトと単純なCGIコードを書くだけで "hello world"のWebページを作成し、http://localhost/~username/hello.pl(または.cgi)と呼んでいます。これは私には同じ結果をもたらしましたが、perlスクリプトの場合、それは単純なテキストなのでスクリプト自体を吐き出しました。

私は行方不明ですが、それを見つけることができませんでした。どんな助けでも大歓迎です。ありがとう!私はオンラインを見つけた命令のうち、左

DC

答えて

0

ワンステップ:httpd.confファイルに のLoadModule cgi_moduleのlibexec/apache2の/ mod_cgi.so :また、行のコメントを解除する必要があります。実行可能ファイルを/ Library/WebServer/CGI-Executablesフォルダに置いて動作します。

0

さらに、ExecCGI IncludesOptionsという行に/etc/apache2/users/username.confというファイルに追加しました。再起動して作業しました。設定ファイルは次のようになります。

<Directory "/Users/username/Sites/"> 
    AllowOverride All 
    Options Indexes MultiViews FollowSymLinks ExecCGI Includes 
    Require all granted 
</Directory>