Posted by on the 6th of February, 2018 at 10:51 pm under 사는이야기.  This post has 2 comments.

iwinv에서 perl CGI script를 어떻게 했나 궁금하신 분이 계셔서 정리 해 봅니다.

안 해본 방법

홈페이지를 옮기고 나서 perl CGI script가 동작하지 않는 것을 확인하고 게시판에 문의를 넣어봤습니다. 거기에 이런 답변을 받았습니다. 답변 받은 내용이니 아마 될 거 같은데 전 답변을 확인한 시점이 이미 아래 적을 PHP를 만든 뒤여서 확인은 안했습니다.

안녕하세요.

iwinv 입니다.

웹호스팅에서 perl과 cgi 기능을 이용 하실 수는 있으나, 웹방화벽을 사용 하고 계시면 정상적으로 이용 할 수 없을 수도 있습니다.

관리 콘솔 – 계정 – 웹방화벽 off 를 해보시기 바랍니다.

감사합니다.

PHP wrapper script로 돌리는 방법

php로 직접 perl cgi를 실행하고 그 결과를 HTML로 전달하는 방법입니다.

<?php
echo "<!--".PHP_EOL;

$num_get = count($_GET);
$num_post = count($_POST);

echo " # of _GET:".$num_get.PHP_EOL;
echo " # of _POST:".$num_post.PHP_EOL;

$param = "";

if($num_get > 0)
{
    foreach($_GET as $key => $value)
    {
        echo $key.'='.$value.PHP_EOL;
        $param = $param."$key=$value&";
    }
}

if($num_post > 0)
{
    foreach($_POST as $key => $value)
    {
        echo $key.'='.$value.PHP_EOL;
        $param = $param."$key=$value&";
    }
}

echo "-->".PHP_EOL;

exec("QUERY_STRING=\"$param\" /usr/bin/perl ".dirname($_SERVER['SCRIPT_FILENAME'])."/pldbbs.cgi", $output);

$header_found = 0;

foreach($output as $line)
{
    if($header_found == 0)
    {
        if(strlen($line) > 0)
        {
            continue;
        }
        else
        {
            $header_found = 1;
        }
    }    

    $line = str_replace("pldbbs.cgi", "pldbbs.php", $line);
    echo $line.PHP_EOL;
}
?>

GET 또는 POST 변수들을 만들어서 QUERY_STRING으로 전달하고 perl을 이용해 직접 스크립트를 실행합니다. 실행한 결과에서 http header 부분을 제거하고 html 부분에서 pldbbs.cgi를 pldbbs.php로 바꿨습니다. 저 같은 경우는 예전에 사용한 방명록을 읽기 전용으로 바꿨기 때문에 이 정도 수정으로 충분 했습니다. 쿠키를 쓰는 경우는 해당 코드를 추가로 구현해야 합니다.

덧붙여서 cgi 파일 소스가 그대로 나오기 때문에 다음과 같이 .htaccess 파일을 추가해서 소스가 나오지 않게 하는 것이 좋습니다.

<Files ~ "^.*\.([cC][gG][iI]|[lL][oO][gG])">
order allow,deny
deny from all
satisfy all
</Files>
Posted by on the 22nd of January, 2018 at 11:56 pm under 컴퓨터.  This post has no comments.

예전에 적은 것처럼 wordpress업데이트 후 매번 패치를 하고 있다.  (글 읽을 수 없는 문제 해결) 꼬박꼬박 해야 해서 귀찮아서 wordpress에 ticket도 등록했으나 딱히 진행이 안되고 있었다. 도움이 될만한 정보를 찍고 있었는데 업데이트 하면서 그 코드도 다 날라간 상태.

이 문제를 꼭 core 부분을 고칠 게 아니라 plugin으로 가능할 지 찾아봤다. 문제가 되는 함수는 WP::parse_request(). 함수 구현을 찬찬히 살펴보니 맨 처음 ‘do_parse_request’ 라는 filter를 부르고 있었다.

본격적으로 시작 하기 전 시점에 문제가 되는 $_SERVER[‘REQUEST_URI’] 변수를 미리 urldecode하는 plugin을 만들었다. 몇번 시행착오 끝에 원하든 동작을 만들었다.

앞으로 wordpress 버전 올리는데 귀찮은게 하나 줄었다ㅎ

Posted by on the 6th of January, 2018 at 2:05 am under 컴퓨터.  This post has 5 comments.

생각보다 도메인 이전 하는데 시간이 오래 걸렸다. 오랜 기다림 끝에 먼저 연락이 왔고, 이틀간 몇번 연락을 주고 받은 뒤에야 끝났다.

조금 전 iwinv 웹 호스팅으로 이전했다. 일단 블로그는 되나 나머지 읽기 전용 서비스들은 확인이 필요하다.

  1. 게시판 php7포팅
    • 일단 게시물 목록과 게시글 나오게 수정 완료
  2. moniwiki 재 설정
  3. 예전 방명록 perl cgi 복구
    • web server에서 perl cgi 지원을 안하는 것 같다.
    • 다행히 서버에 perl이 있어서 php를 통해 해당 script를 실행하도록 wrapper 구현 완료
Posted by on the 22nd of December, 2017 at 1:32 am under 컴퓨터.  This post has no comments.

호스트메카로 바뀌고 불만이 2가지 있다.

  1. 계정 용량이 웹비넷은 무제한이었으나 호스트메카는 3GB 임. 물론 쓰는건 얼마 없지만 기분 상…
  2. 웹비넷이 제공하는 메일은 최소한 메일 포워딩은 지원하는데 호스트메카는 그런거 없음.
    1. 원래는 메일 자체가 없는건데 웹비넷에서 온 사람 중 인수 기간에 신청한 사람에 한해서 메일 계정을 주었음…

그냥 이대로 얼마전에 기간 연장을 하긴 했는데, 얼마 쓰지 않지만 메일 없는게 마음에 안들어서 바꾸기로 했다.

  • 웹 호스팅: IwinV (https://www.iwinv.kr)
    • 일 20원 정액제로 하면 원래 쓰던거랑 비용 차이 얼마 없고 https 인증서도 쓰고 마음에 듦
  • 메일: 다음 스마트워크
    • 원래 쓰려고 했던 ZOHO Mail이 POP3, IMAP, Mail Forwarding을 쓰려면 유료라서 다음으로 옮겼다.
    • ZOHO Mail (https://www.zoho.com)
      • 아쉽게도 IwinV 웹 호스팅은 메일을 지원하지 않는다. ZOHO Mail은 내 도메인으로 메일을 쓸 수 있다. 게다가 무료
  • 도메인: 지금은 도메인 도레지에서 관리하고 있는데 IwinV로 이전 예정
    • 네임서버 설정을 할 수 있어야 위에 ZOHO Mail을 쓸 수 있다. 도메인 유지비도 1000원 더 싸고(그 1000원이 부가세;;)직접 관리도 가능해서 이전 하기로 함

 

Posted by on the 23rd of January, 2017 at 1:32 am under 컴퓨터.  This post has 2 comments.

아무것도 하지 않았는데 웹 호스팅 사업자가 변경되었다.

지금까지 쓰고 있던 웹비넷이 호스트메카에 통합되었다. 일단 현재 조건 그대로 인수된거 같아 별 차이는 없다. 다만 웹메일이 변경되었는게 원래 쓰던 메일서비스 보다는 나빠졌다.

원래 쓰던 메일 계정은 IMAP, POP3가 기본 제공이었는데 바뀐 웹메일은 지원하지 않는다. 거기에 메일 포워딩도 안된다. 1:1 문의를 넣었더니 나중에 기능 추가하겠다고 한다. 일단 기다리기로 했다.