2016-12-12 2 views
0

우분투 리눅스 컴퓨터에서 개발 한 C로 작성된 CGI 코드가 있습니다. 괜찮 으면 좋겠지 만 여행 중에도 변경하고 업데이트하고 싶었습니다. Xcode와 Safari를 사용하여 Mac 랩톱 (macOS 10.12.1)에서 테스트 할 수 있도록 설정했습니다. 아파치가 CGI 코드를 인식하고 몇 개의 사이트를 찾도록하는 방법에 대한 온라인 검색을 시도했지만 여전히 작동하지 않습니다. 내가 디렉토리/사용자/사용자 이름을 설정MacOS에서 CGI 코드 테스트 Sierra

  1. /사이트 폼을 통해 CGI 코드를 호출 할 HTML 페이지를 저장하기 :

    는 여기에 지금까지 무슨이다.

  2. :
  3. 내가/라이브러리/웹 서버/CGI-실행 파일 (나는 또한에/사용자/사용자 이름을 넣어/사이트 단지 경우 주)에서 컴파일 된 CGI 코드를 넣어 (여기서 "사용자 이름은"내 이름입니다)
  4. 온라인 지침에 따라 /etc/apache2/httpd.conf에 내가 다음 줄의 주석 처리를 제거 : 또한 온라인 지침에 따라

    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 
    
  5. 을, 나는/등/아파치/사용자라는 이름에서 다음 파일을 생성 .conf (다시 "username"은 내 사용자 이름).

    <Directory "/Users/username/Sites/"> 
        AllowOverride All 
        Options Indexes MultiViews FollowSymLinks 
        Require all granted 
    </Directory> 
    
  6. 나는 아파치 서버를 다시 시작 위의 변경으로 수행

    (또한 PC의 전체를 다시 시작했지만, 그것은 도움이되지 않았다).

나는 http://localhost/~username/foo.html를 사용하여 양식 페이지를로드 할 수 있어요,하지만 난 코드로 POST 방식을 사용하여 양식을 제출할 때 foo.cgi 그냥 나를 다시 foo.cgi을 뱉어 후 사파리에서 덤프 다운로드 폴더 또한 단순한 perl 스크립트와 간단한 cgi C 코드를 작성하여 "hello world"웹 페이지를 만들고이를 http://localhost/~username/hello.pl (또는 .cgi)이라고했습니다. 이것은 perl 스크립트의 경우 일반 텍스트이기 때문에 스크립트 자체를 다시 내뱉지만 동일한 결과를 보였다.

누락 된 단계가 있어야하지만 찾을 수 없습니다. 어떤 도움이라도 대단히 감사하겠습니다. 감사!

DC

답변

0

한 단계는 내가 찾은 지침에서 제외 온라인 : 을 LoadModule cgi_module libexec 디렉토리/아파치/mod_cgi.so httpd.conf 파일에서 : 필요도 행의 주석을 해제합니다. 실행 파일을/Library/WebServer/CGI-Executables 폴더에 저장하여 이제 작동합니다.

0

외에도 을 Options 라인에 /etc/apache2/users/username.conf 파일로 추가했습니다. 다시 시작하고 작업했습니다. 구성 파일은 다음과 같습니다.

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