BLOG main image
분류 전체보기 (65)
JSP (6)
Android (1)
ASP.NET (0)
MSSQL (4)
PHP (18)
ASP (11)
오픈 API (1)
HTML (2)
JavaScript (0)
Windows Programming (8)
컴퓨터교양 (14)
객체 지향 (0)
리뷰 및 생각 (0)
Visitors up to today!
Today hit, Yesterday hit
daisy rss
tistory 티스토리 가입하기!
'PHP'에 해당되는 글 18건
2015. 6. 25. 21:20

* 이슈 요약

윈도우에서 설치시 경로문제가 발생합니다.

해결방법
config.php 에서
define('G5_DOMAIN', ''); 이 빈칸에
define('G5_DOMAIN', 'http://localhost'); 이렇게 도메인을 적어준다.

또는 로컬 말고 외부에서 접근하기 위해서는 아래와 같이 적어준다.
define('G5_DOMAIN', 'http://192.168.0.3');                     내부 네트워크
define('G5_DOMAIN', 'http://211.xxx.xxx.xxx');               외부 네트워크
define('G5_DOMAIN', 'http://denisoh.tistory.com);          도메인(외부 네트워크 포워딩)
define('G5_DOMAIN', 'http://denisoh.tistory.com:8080);   도메인/포트
(외부 네트워크 포워딩)




1. 그누보드5 다운로드



먼저 sir.co.kr 에서 그누보드5를 다운로드 받습니다.


최신 글로 들어갑니다.


첨부파일이 두개 보이는데요, 위에 것은 풀버젼이고, 아래 것은 패치 파일만 묶어 놓은 것입니다.
원하는 위치에 다운로드 받고, 압축을 푸세요.


전 C:\g5\gnuboard5.0.37.tar 에 풀었습니다.

2. IIS 세팅

이제 IIS 세팅에 들어가야 합니다.
IIS + PHP 를 아직 설치하지 않았다면 아래 게시물을 참고 하세요.
http://denisoh.tistory.com/entry/IIS-75에-PHP-5X-설치하기-IIS


기본설정을 누르시고,


실제경로에 C:\g5\gnuboard5.0.37.tar 을 입력하세요.

3. 실행 / 경로문제 해결


브라우저를 열고 http://localhost/ 로 들어갑니다.
이제까지 잘 되는 것 처럼 보이지만, 윈도우즈에서 그누보드5를 설치하게 되면 경로 문제에 부딧히게 됩니다.
이 문제를 같이 해결해 보아요.
그누보드5 설치하기 눌러보세요.





자, 경로문제가 발생했어요.


그누보드5 루트에 있는 config.php를 여세요.


원래는 define('G5_DOMAIN', ''); 이렇게 비어 있는데요,
define('G5_DOMAIN', 'http://localhost'); 처럼 빈칸에 도메인 이름을 입력해주시면 되요. 간단하죠?

4. 설치

이제 다시 http://localhost/ 로 들어갑니다.


설치하기를 누르면


짠~ 경로문제가 해결되고, 올바르게 설치가 진행됩니다.

data 폴더를 만들어 주라네요. 새폴더 만들기로 그냥 만들어 줍니다.

다시 설치화면으로 돌아가서 새로고침 하면,

이렇게 다음 화면이 나옵니다. 동의하고 다음을 누릅니다.


DB 정보를 입력해야 하는데요. 입력하기 전에 DB를 생성해 주어야 해요.

5. DB 생성

phpMyAdmin 이라는 MySQL 툴을 이용해서 DB를 생성합니다.


아직 phpMyAdmin 설치하기 블로그를 작성하지 않았어요. 그래서 이건 직접 설치해보세요.


여하튼 g5라는 DB가 생성되었습니다.

다시 그누보드5 설치화면으로 돌아가서

이렇게 입력해 줍니다. 전 귀찮아서 테스트용 암호는 다 1로 해버립니다.
DB 정보는 개인별로 다 다르겠죠? 여튼 다음을 누릅니다.

6. 완료


설치가 완료 되었습니다. 새로운 그누보드5로 이동을 누르세요.


짠~ 설치가 완료 되었습니다.

2014. 4. 26. 05:12
[PHP]

개요
넷빈즈 설치 / 넷빈즈 PHP 프로젝트 생성 / IIS 가상 디렉토리 추가에 관해 설명 합니다.
그럼 먼저 설치에 들어가겠습니다.

혹시 JDK / IIS+PHP 를 설치하지 않으셨다면 아래 링크를 참고 하세요.
http://denisoh.tistory.com/entry/JAVA-JDK-설치-환경-변수-설정
http://denisoh.tistory.com/entry/IIS-75에-PHP-5X-설치하기-IIS
http://denisoh.tistory.com/entry/phpmyadmin-설치-PHP-on-IIS



설치
image

image

image
Browse… 을 눌러 jdk 경로가 올바른지 한번 들어가 봅니다.
Next 누르면 설치가 시작 됩니다. 완료되면 Finish를 누르세요.




IIS 가상디렉토리 생성
가상 디렉토리로 사용할 폴더를 하나 만들어 줍니다.
image


IIS를 열고 아래 그림처럼 가상 디렉토리를 추가 합니다.
image

image

image



넷빈즈 프로젝트 생성
넷빈즈를 실행하고 PHP 프로젝트를 하나 생성합니다.
image


IIS에서 가상 디렉토리로 추가했던 폴더를 지정합니다.
이게 핵심 입니다. 가상 디렉토리와 프로젝트 소스폴더를 일치 시키는게 핵심입니다.
PHP 5.3 처럼 자기가 설치한 PHP 버전을 지정합니다.(이건 사실 무시해도 됩니다.)
image


가상 디렉토리와 일치하는지 눈으로 한번 확인해 줍니다.
image


프로젝트가 생성되면 아래와 같이 IDE에 표시됩니다.
image


탐색기를 열어보면 프로젝트 폴더에 환경설정폴더(nbproject)가 하나 생겼음을 확인해 줍니다.
image



실행테스트
phpinfo.php를 생성합니다.
image

image


프로젝트 폴더 밑에 바로 파일이 생깁니다.
Srouce Files는 프로젝트 폴더 자체를 가리킨다는 것을 알 수 있습니다.
image


아래와 같이 코딩하고, 실행해봅니다.
image


phpinfo.php를 실행해야 하니, Browse를 눌러 phpinfo.php를 지정해 줍니다.
image

image


OK를 눌러 실행합니다.
image

image


IDE 내부 브라우저로 실행되었습니다. 좀 짜증납니다.
아래와 같이 외부 브라우저를 눌러주고 다시 세모버튼으로 실행하면 외부브라우저로 열립니다.
image




추가 팁(폴더 구조)
넷빈즈 프로젝트 하나당 IIS 가상 디렉토리 하나가 필요 합니다.
그런데 이렇게 프로젝트 생성/가상 디렉토리 추가… 이 짓을 계속하다 보면 짜증이 좀 납니다.

그래서 전 프로젝트와 가상 디렉토리를 딱 하나만 만들고,
그 하위에 사이트를 나열하는 방법을 사용 합니다.

이렇게 하면 프로젝트/가상 디렉토리를 또 만들지 않아도 바로 실행가능 하고,
다른 사이트에 썼던 소스도 빠르게 참고 할 수 있습니다.

image

2014. 4. 17. 17:03
[PHP]

서론
phpmyadmin을 실행하기 위해서는 사전에 PHP와 MySQL이 설치되어 있어야 한다.
(물론 웹서버도 설치되어 있어야 한다.)

이전 게시물 http://denisoh.tistory.com/entry/IIS-75에-PHP-5X-설치하기-IIS 에서 IIS에 PHP를 붙였다.
그리고 블로깅 하지 않았지만 WPI를 통해 MySQL 5.5도 설치하였다.
여하튼 웹서버(IIS든 Apache든)와 mysql이 설치 되었다면, phpmyadmin을 다운로드 하여, 실행 할 수 있다.

1. 다운로드
phpMyAdmin 웹사이트로 이동 / 다운로드
http://www.phpmyadmin.net
2014-04-17 오후 4-51-42

뭘눌러야 할지 당황하지 말고 몇 초 기다리면 아래와 같이 다운로드 박스가 뜬다.
2014-04-17 오후 4-51-57


2. 설치
다운로드 후 웹서버 루트 폴더에 압축을 풀어주고, 접근이 용이하도록 폴더명을 약간 수정해준다.
2014-04-17 오후 4-53-50


3. 실행
http://localhost/phpmyadmin 로 접근하면 로그인 창이 뜬다.
사용자명과 암호를 입력하면 아래와 같이 phpmyadmin이 실행된다.
2014-04-17 오후 4-54-29
2014-04-17 오후 4-54-48

2014. 4. 17. 04:40
[PHP]

서두
원래 apmsetup.com의 APMSETUP6/7 패키지를 이용하였는데, 오랜만에 사용해보니, 배너뜨고, 32비트 호환모드로 돌긴하나 Server Root 바꿨더니, 내가 뭘 잘못한건지 아파치 서비스 실행 안되고…
apmsetup.com의 PHP_Setup_for_IIS도 설치해보았으나, 뭔가 작동하지 않았습니다.
그동안 apmsetup.com 패키지들 잘 썼었는데… 감사드립니다.

여튼 그래서 IIS에 PHP를 붙였습니다. 그것도 아주 쉽게. WPI가 설치를 아주 쉽게 만들어 놓았습니다.


1. 먼저 IIS에서 CGI를 사용 할 수 있도록 설정한다.(참고로 필자는 윈도우즈7 64비트 사용 중 이다.)





2. 마이크로소프트 웹 플랫폼 설치관리자(WPI)를 설치하고 실행한다.
Microsoft Web Platform Installer 4.6


3. WPI 에서 PHP로 검색한다.
검색결과 중 “PHP 5.X용 Windows 캐시 확장”과 비슷한 프로그램을 설치한다.
(필자는 “IISExpress의 PHP 5.3용 Windows 캐시 확장 1.3” 을 설치했다.)


4. C:\inetpub\wwwroot 에 phpinfo.php 파일을 만들고, <?php phpinfo(); ?> 을 입력해주고 저장한다.
아래 파일은 위의 내용이 입력된 파일 입니다.
phpinfo.php

브라우저로 http://localhost/phpinfo.php 을 열어본다.
쭉쭉 스크롤 해보면 ctype, curl, gd, iconv, imap, mysql... 등
각종 라이브러리도 설치되었음을 볼 수 있다.



끝. 참고로 MySql도 WPI에서 검색해서 깔면 된다. 현재 5.5 버젼이 올라와있다.

혹시 뭔가 잘 안된다면, 아래 URL을 참고하세요.
http://technet.microsoft.com/ko-kr/library/hh994592.aspx

 




끝이였는데.. 막상 기존 PHP 페이지를 돌려보니 두가지 문제가 발생하였습니다.

문제1 – 메인화면을 열었더니..

보자마자 헐..
이것은 php 파일로 해석되지 않고, HTML로 해석되어 생긴 문제 입니다.
해결방법은 아래와 같습니다.

php.ini에서 short_open_tag=on 으로 설정하기
short_open_tag=off 로 설정하면 반드시 <?php 로 코딩해야 합니다.
short_open_tag=on 으로 설정해야만 <? 구문을 인식합니다.
대부분의 php페이지는 <? 으로 코딩되어 있습니다.(그누보드나 제로보드도 <? 으로 코딩되어 있습니다.)

phpinfo.php에서 short_open_tag을 찾아보면 Off로 되어 있음을 볼 수 있습니다.
이걸 On으로 바꿉니다.



메모장을 관리자 권한으로 실행하고 php.ini를 열어 short_open_tag=on으로 수정합니다.
(메모장으로 열 때 모든파일 표시하는거 잊지 마세요.)





문제2 – 그누보드 관리자화면 > 환경설정 > 기본환경설정을 변경하였더니..

보자마자 ㄷㄷㄷ..
문자가 많이 깨져있지만 쿼리를 날리다가 실패한 모습 입니다.
해결방법은 아래와 같습니다.

my.ini에서
;sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION" 처럼
주석 씌우기
strict 모드를 사용하지 않으면, 유효하지 않거나 누락된 데이터 값을 적당히 유효하게 변환시켜줍니다.
strict 모드를 사용하면, 변환없이 강력한 검사를 하기 때문에 이러한 에러가 발생한 것 입니다.
strict :
① 엄격한 ② 강력한 ③ 철저한 ④ 엄중한 ⑤ 지나친

메모장을 관리자 권한으로 실행하고 my.ini를 열어
;sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 
이렇게 주석을 씌워줍니다.
(메모장으로 열 때 모든파일 표시하는거 잊지 마세요.)



mysql 서비스 다시 시작하기



끝!



다른 문제가 없다면.. 끝! ㅎㅎㅎ

2014. 4. 4. 12:29

 

putty.exe

http://putty.joydownload.com

2014. 4. 4. 12:12

개요
그누보드를 기존서버에서 다른서버로 복사&붙여넣기 한 것처럼 똑같이 이전 시키는 방법입니다.
그누보드는 프로그램소스 + DB 로 구성되어 있습니다. 당연한 말이겠지요.
새로운 서버에 이전하기 위해 새서버에 그누보드를 다시 설치할 필요는 없습니다.
(구라 아닙니다. 믿으세요!)


서버이전
그냥 기존서버에 있는 프로그램소스를 새서버에 복사하고,
(이때 쉘명령으로 압축/FTP전송을 쓰면 간단합니다. putty를 이용하세요.)
http://denisoh.tistory.com/entry/리눅스-쉘-클라이언트-putty
http://denisoh.tistory.com/entry/리눅스-압축하기-압축풀기-디렉토리명-변경
http://denisoh.tistory.com/entry/리눅스-FTP-접속-및-파일전송다운로드

phpMyAdmin을 이용하여,
기존서버에서 DB를 내보내기(옵션은 건드릴 필요 없습니다.) 하여
파일로 다운로드 받은 다음에(파일로 저장에 체크온)
새서버에 그 파일을 Import를 해주면 끝입니다.
단, DB속에 들어가서 내보내기를 시작해야 합니다.(테이블과 데이터가 내보내기 됩니다.)
Import 할 때도 마찬가지로 DB속에 들어가서 Import를 해야 합니다.
왜냐하면 cafe24같은 곳에서 호스팅을 받았다면 DB를 생성 할 수 없기 때문입니다.
DB를 생성 할 수 있는 환경이라면 phpMyAdmin 홈 화면에서 DB 통째로 내보내기/Import 해도 됩니다.

마지막으로 dbconfig.php를 열고 연결정보를 수정해주면 끝입니다.

이렇게 하면 기존서버와 모든게 똑같은 사이트를 얻게 될 것입니다.
(구라 아닙니다. 믿으세요!)


정리
프로그램 소스 복사
DB내보내기/Import (테이블/데이터만)
dbconfig.php 수정
거듭 말하지만 구라 아닙니다. 걍 이렇게만 하면 됩니다. 고민하지 마세요.


주의사항
테이블명에 대문자가 들어가면 게시물이 안나올 수 있습니다.

리눅스는 기본적으로 대소문자를 구별 합니다. mysql 쿼리문에서도 대소문자를 구별 합니다.
phpmyadmin으로 테이블 구조를 눌러보면 대문자를 소문자로 표기하는 것을 볼 수 있는데, 바로 이 부분 때문에 문제가 생깁니다.
그누보드 내부적으로는 대소문자를 구별하여 테이블을 관리하는데,
데이터 이전시 phpmyadmin을 사용하면, 모든 테이블이 소문자로 이전 됩니다.
그래서 없는 테이블 입니다.와 같은 쿼리문 에러가 나타납니다.
이점 참고하시길 바랍니다.

2014. 4. 4. 11:23

FTP접속 : ftp 접속주소 엔터
엔터 이후 Name/Password를 입력한다.

파일다운로드 : get 파일명
파일이 다운로드 돠는 위치는 FTP접속전 있던 위치에 다운로드 된다.
만약
cd www
FTP 접속주소 엔터
를 했다면 www에 다운로드 된다.

FTP접속종료: quit
연결이 끊어지고, FTP접속전 있던 위치로 되돌아간다.
ls로 다운로드 되었는지 확인 할 수 있다.

*get에 대응되는 명령어로는 put 이 있다.

2014. 1. 12. 12:19

디렉토리

생성 : $ mkdir xxx (현재 디렉토리 하위에 xxx 디렉토리를 생성함)

변경 : $ mv xxx yyy (xxx 디렉토리명을 yyy로 변경함)


tar

압축하기 : $ tar cvfzp xxx.tar.gz * (모든파일을 xxx.tar.gz 로 압축, 하위폴더 포함)

특정폴더 제외 옵션 : $ tar cvfzp xxx.tar.gz * --exclude abc
                            (
abc 폴더를 제외하고, 모든파일을 xxx.tar.gz 로 압축, 하위폴더 포함)

압축풀기 : $ tar xvfzp xxx.tar.gz (현재 디렉토리에 풀림)

               $ tar xvfzp xxx.tar.gz -C ./yyy (현재 디렉토리 하위에 있는 yyy 디렉토리에 풀림)
                                                                   디렉토리는 먼서 생성되어 있어야 함.


zip


먼저 unzip이라는 패키지가 설치되어 있어야 합니다.

unzip 패키지가 없으면 apt-get install unzip 을 통해서 설치하세요.

압축하기 : $ zip -r xxx.zip * (모든파일을 xxx.zip 으로 압축, 하위폴더 포함)

압축풀기 : $ unzip xxx.zip (현재 디렉토리에 풀림)

               $ unzip xxx.zip -d ./yyy (현재 디렉토리 하위에 있는 yyy 디렉토리에 풀림)
                                                         디렉토리는 먼서 생성되어 있어야 함.

'PHP > Linux' 카테고리의 다른 글

리눅스 쉘 클라이언트 putty  (0) 2014.04.04
리눅스 FTP 접속 및 파일전송(다운로드)  (0) 2014.04.04
2014. 1. 7. 09:32

        <?
        $m_bo_table = 'news';
        $m_rows = "5";
        $m_subject_len = 20;
        $m_latest_skin_path = "$g4[path]/skin/latest/basic";
       
        $list = array();
       
        $sql = " select * from $g4[board_table] where bo_table = '$m_bo_table'";
        $board = sql_fetch($sql);
       
        //echo "$sql<br />";
       
        $tmp_write_table = $g4['write_prefix'] . $m_bo_table; // 게시판 테이블 전체이름
        //$sql = " select * from $tmp_write_table where wr_is_comment = 0 order by wr_id desc limit 0, $m_rows ";
        // 위의 코드 보다 속도가 빠름
        $sql = " select * from $tmp_write_table where wr_is_comment = 0 order by wr_num limit 0, $m_rows ";
       
        //echo "$sql<br />";
       
        //explain($sql);
        $result = sql_query($sql);
        for ($i=0; $row = sql_fetch_array($result); $i++)
            $list[$i] = get_list($row, $board, $m_latest_skin_path, $m_subject_len);       
        ?>
       
        <? for ($i=0; $i<count($list); $i++) { ?>
                    <? echo "<img src='$m_latest_skin_path/img/latest_icon.gif' align=absmiddle>"; ?>
       
                   
                    <?
                    // 파일 출력
                    /*
                    for ($j=0; $j<=count($list[$i][file]); $j++) {
                        if ($list[$i][file][$j][view])
                            echo $list[$i][file][$j][view] . "<p>";
                    }
                    */
                    if ($list[$i][file][0][view])
                        echo "<img src='$g4[path]/data/file/$m_bo_table/{$list[$i][file][0][file]}' align='absmiddle' width='100' height='60' />";
                    ?>
                   
                    <?
                    echo $list[$i]['icon_reply'] . " ";
                    echo "<a href='{$list[$i]['href']}'>";
                    if ($list[$i]['is_notice'])
                        echo "<font style='font-family:돋움; font-size:9pt; color:#2C88B9;'><strong>{$list[$i]['subject']}</strong></font>";
                    else
                        echo "<font style='font-family:돋움; font-size:9pt; color:#6A6A6A;'>{$list[$i]['subject']}</font>";
                    echo "</a>";
       
                    if ($list[$i]['comment_cnt'])
                        echo " <a href=\"{$list[$i]['comment_href']}\"><span style='font-family:돋움; font-size:8pt; color:#9A9A9A;'>{$list[$i]['comment_cnt']}</span></a>";
       
                    // if ($list[$i]['link']['count']) { echo "[{$list[$i]['link']['count']}]"; }
                    // if ($list[$i]['file']['count']) { echo "<{$list[$i]['file']['count']}>"; }
       
                    echo " " . $list[$i]['icon_new'];
                    echo " " . $list[$i]['icon_file'];
                    echo " " . $list[$i]['icon_link'];
                    echo " " . $list[$i]['icon_hot'];
                    echo " " . $list[$i]['icon_secret'];
                   
                    echo "<br />";
                    ?>
                   
        <? } ?>
       
        <? if (count($list) == 0) { ?><tr><td colspan=4 align=center height=50><font color=#6A6A6A>게시물이 없습니다.</a></td></tr><? } ?>

2014. 1. 7. 09:11


            <td height=25><img src='<?=$latest_skin_path?>/img/latest_icon.gif' align=absmiddle>&nbsp;&nbsp;
            <?
            // 파일 출력
            /*
            for ($j=0; $j<=count($list[$i][file]); $j++) {
                if ($list[$i][file][$j][view])
                    echo $list[$i][file][$j][view] . "<p>";
            }
            */
            if ($list[$i][file][0][view])
                echo "<img src='$g4[path]/data/file/$bo_table/{$list[$i][file][0][file]}' align='absmiddle' width='100' height='60' />";
            ?>

prev"" #1 #2 next