우선 넷빈즈를 깔면 PHP관련 개발툴이 설치가 되는데요(다운로드 시 PHP가 포함된 설치파일을 받을 시^^).
하지만, php를 돌리기위한 Apache나 PHP, 디버거는 직접 셋팅을 해줘야합니다.
각 사이트에서 최신버전 받으시면 됩니다.
Apache HTTP Server는 웹서버, PHP5는 php, XDEBUG는 PHP디버그해주는 모듈 같습니다^^




Apache HTTP Server - http://httpd.apache.org/download.cgi
PHP5 Engine - http://kr.php.net/downloads.php
XDEBUG - http://www.xdebug.org/download.php

저는 각각 apache_2.2.11-win32-x86-no_ssl.msi, php-5.2.9-1-win32-installer.msi, php_xdebug-2.0.4-5.2.8.dll을 받았습니다.

apache를 설치해봅시다.
Server Infomation을 물어보는데, localhost라고 쓰면 되는 듯 합니다-_-(잘 모르겠네-_-)
그냥 다음신공으로 설치했습니다-_-;
http://localhost/ 하니까 It Works!가 뜨네요.

php를 설치해봅시다.
설치파일 실행하면 Web Server Setup을 물어보는군요. Apache 2.2.x니까 그거 선택하면 됩니다.
아파치 디렉토리 선택하라고 나오는데, 디폴트 설치 시
C:\Program Files\Apache Software Foundation\Apache2.2\여기에 있습니다.
그 다음에서 고생한게-_-; 여기서 Extensions에서 MySQL추가 안하면....MySQLdb연동이 안됩니다-_-; 젠장 나만 몰랐었나. 저는 디비연동php스크립트 코드가 왜 안먹히지 그러고 있었는데, 저거 설치안해줘서 그렇더군요 ㅠ
MySQL이랑 MySQLi는 뭐가 틀린거지-_-; 암튼, 둘다 설치했습니다-_-; 찜찜하면 그냥 풀설치로....-_-;

※php설치 후에 apache를 재시작해야합니다.

XDEBUG를 설치해봅시다.
해당 dll파일을 C:\Program Files/PHP/에 복사를 합니다.
그리고, php.ini파일을 열어서 맨아래에 추가합니다.
[code]zend_extension_ts="C:/Program Files/PHP/php_xdebug-2.0.4-5.2.8.dll"
xdebug.remote_enable=1[/code]

셋팅이 완료되었어요. 넷빈즈를 실행해봅시다.

New Project -> PHP -> PHP Application -> Project Name은 Hello Php-_-; -> Run As에서 Local Web Site도 있고, Remote Web Site가 있는 걸보니, 웹에다가 올려놓고, 디버깅도 되나봅니다. 암튼, local에서 할꺼니까 Local Web Site로 선택하고, Finish를 클릭합니다.
index.php
[code]<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
    <head>
        <meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
        <title></title>
    </head>
    <body>
        <?php
        echo "Hello PHP";
        phpinfo();
        ?>
    </body>
</html>[/code]
사용자 삽입 이미지
디버깅도 되는데, 디버깅도 해봅시다.
코드를 이렇게 고치고-_-;
[code]<?php
        $hello = "mudchobo";
        echo $hello;
        $hello = " shit";
        echo $hello;
        ?>[/code]
$hello = "mudchobo"부분에 ctrl + F8 또는 라인맨앞에 마우스클릭으로 Break Point를 잡습니다.
디버깅은 페이지단위로 되는 듯합니다. 디버깅은 Ctrl + Shift + F5를 입력하거나 마우스로 파일에 오른쪽버튼 눌러서 디버깅을 할 수 있습니다.
그러면 Server side PHP만 할것인지, Server side와 Client Javascript디버깅을 동시에 할건지 물어봅니다. 넷빈즈는 정말 만능인 것 같습니다. Javascript디버거도 매우 만족 스러운 수준이거든요. 좋아요~
우선 Server side만 할꺼니까 그거 선택하고, Debug버튼 누르면 디버깅이 시작됩니다.
사용자 삽입 이미지
이렇게 브레이크포인트 부분에서 멈춥니다. 아래에서 변수값을 확인할 수 있어요.
사용자 삽입 이미지
근데, 좀 이상한게-_-; Value를 클릭하기 전에는 값을 확인할 수 없어요-_-; 왜 그럴까요....
암튼, 저렇게 변수값이 보이게 됩니다.

작년에 선테크데이에서 넷빈즈행사에서 말했는데, 6.5에서 가장 크게 향상된 기능은 PHP라고 하더라구요. 다른 PHP용 IDE는 안써봤지만, 넷빈즈의 PHP는 정말 강력한 것 같아요. 코드힌트도 너무 잘나오고, 디버깅도 쉽게 할 수 있고-_-; 뭐 그렇다구요 ^^

 
Posted by 머드초보

댓글을 달아 주세요

  1. 2009.07.30 12:21  댓글주소  수정/삭제  댓글쓰기

    비밀댓글입니다

 
apache홈페이지에 가면 commons에 net라는 프로젝트가 있습니다. 이걸 이용하면 메일프로그램도 만들고, ftp프로그램도 만들고 다 손쉽게 만들 수 있을 것 같더군요.

  • FTP
  • NNTP
  • SMTP
  • POP3
  • Telnet
  • TFTP
  • Finger
  • Whois
  • rexec/rcmd/rlogin
  • Time (rdate) and Daytime
  • Echo
  • Discard
  • NTP/SNTP

아는 건 몇 개 없네-_-; Telnet도 된다는 건 CRT같은 것도 만들 수 있는건가...
어쨌든, ftp접속해서 리스트를 받아오는 프로그램을 작성해봅시다.
우선 준비물은 commons-net-1.4.1.jar과 jakarta-oro-2.0.8.jar 입니다.
commons-net.1.4.1.jar는 http://commons.apache.org/downloads/download_net.cgi
jakarta-oro-2.0.8.jar는 http://jakarta.apache.org/site/downloads/downloads_oro.cgi

SFTP는 안됩니다. SFTP는 SFTP를 지원하는 다른 라이브러리가 있더라구요. 고걸 사용해야해요.
[code]
package com.mudchobo.ftptest;

import java.io.IOException;

import org.apache.commons.net.ftp.FTPClient;
import org.apache.commons.net.ftp.FTPClientConfig;
import org.apache.commons.net.ftp.FTPFile;

public class FtpTest
{
    public static void main(String[] args) throws IOException
    {
        FTPClient client = new FTPClient();
        client.setControlEncoding("euc-kr"); // 한글 encoding....
       
        FTPClientConfig config = new FTPClientConfig();
        config.setDefaultDateFormatStr("yyyy년 M월 d일");
        config.setRecentDateFormatStr("M월 d일 HH:mm");
        client.configure(config);

        client.connect("접속할 ip or 도메인");
        client.login("아이디", "비밀번호");
       
        FTPFile[] files =
            client.listFiles("리스트를 가져올 경로");
       
        for (int i=0; i<files.length; i++)
        {
            FTPFile file = files[i];
            System.out.println("파일이름: " + file.getName() + " 사이즈 : " + file.getSize());
        }
       
        client.logout();
       
        if (client.isConnected())
        {
            client.disconnect();
        }
    }
}
[/code]
여기서 주의할 점은 config에서 DefaultDateFormatStr이랑 RecentDateFormatStr을 설정 안하면 리스트로 못 받아오더라구요. 저걸 설정할 때 ftp버전 마다 다 틀려서 다르게 설정 해야합니다. 우선 FTP에 접속을 해서 최근꺼랑 기본꺼랑 어떻게 나오는지 확인 후 거기에 맞춰야 합니다.

시작 -> 실행 -> cmd 치시고,
ftp 접속할 주소 [엔터]
아이디 [엔터]
비밀번호 [엔터]
dir 치시면 어떻게 나오는지 다 나옵니다.
저같은 경우 이렇게 나옵니다.
-rw-r--r--   1 daewoo   dba         3486  7월  1일  13:38 .cshrc
drwxr-xr-x  11 daewoo   dba          512 2002년  1월  3일 .dt
저거에 맞춰서 config설정해주시면 돼요.

실행해보면 이렇게 돼요.

파일이름: . 사이즈 : 512
파일이름: .. 사이즈 : 512
파일이름: MSG 사이즈 : 512
파일이름: RSTA 사이즈 : 1296
파일이름: RSUM 사이즈 : 1296
파일이름: SERR 사이즈 : 162
파일이름: SRET 사이즈 : 162
파일이름: SSTA 사이즈 : 162
파일이름: SSUM 사이즈 : 729
파일이름: SSUM_REPORT 사이즈 : 1948
파일이름: TPRR 사이즈 : 162
파일이름: URET 사이즈 : 162
파일이름: bin 사이즈 : 512
파일이름: data 사이즈 : 512
파일이름: src 사이즈 : 512
파일이름: ssta 사이즈 : 162
파일이름: trace 사이즈 : 1024

파일 받고, 올리고 하는 건, api참조!

FTP로 접속해서 파일 송수신하는 프로그램을 개발해야해서 포스팅!



 
Posted by 머드초보

댓글을 달아 주세요

  1. jongjin 2009.05.17 17:59  댓글주소  수정/삭제  댓글쓰기

    FTPFile 로는 file의 경로는 가져올수 없나요???

    • 머드초보 2009.05.20 21:31  댓글주소  수정/삭제

      음 그때 했을 때 기억이 잘 안나네요 ㅠ
      경로를 가져올 수 있는 방법은 있었던 것 같은데요 ㅠ
      사이트에서 확인해보시면...ㅠ
      죄송해요 ㅠ