[GpGiki 대문으로]

Gpgiki 설치


주의: 여기는 Gpgiki소스코드에 있는 GpGiki의 설치에 관한 페이지입니다.... 오리지널 PhpWiki의 설치와는 조금 다를 수 있습니다. GpGiki는 1.3.2 기반이고 오리지널 PhpWiki는 이미 1.3.3대로 접어들었으며 코드 기반도 상당히 바뀌었습니다...

Gpgiki소스코드는 사실 대중적인 배포와 지원을 주목적으로 하기보다는 원래 PhpWiki의 라이선스를 지키는 차원에서 제공되는 것일 뿐입니다.

GpGiki 스타일의 위키에 관심이 있으시면 GpGiki보다 좀 더 개선된 DbWiki를 고려하시기 바랍니다...

차례 [+]

간략한 설치법

MySQL, 웹 호스팅을 기준으로 한 것입니다...

1. 소스 코드를 웹 서버에 풀어 놓는다.

디렉토리 구조를 그대로 가져다 놓아야 합니다. 계정에 ZIP 파일을 올린 후 셸 상태에서 ZIP 파일을 풀거나, 먼저 풀어서 FTP로 그대로 올려버리면 됩니다.

2. index.php 수정

수정할 곳은 기본적으로 두 군데입니다.

우선 다음을 찾아서 관리자 ID와 암호를 변경하세요. 이것들은 임의로 정하면 됩니다. 웹 계정이나 MySQL 계정하고는 상관이 없습니다.

 define('ADMIN_USER', "...");
 define('ADMIN_PASSWD', "...");

그 다음은 MySQL 연결 부분.. 다음 줄을 찾아서 고칩니다. user, password는 MySQL의 ID와 암호이구요. host는 대부분의 경우 localhost로 하면 됩니다. databasename은 DB 이름을 넣으면 되구요. 웹 호스팅의 경우 아마 계정 이름과 동일하거나 계정 이름 뒤에 DB가 붙는 식일 것입니다(확실하지 않으면 관리자에게 문의하시길).

'dsn' => 'mysql://user:password@host/databasename',

추가적으로, dsn 설정하는 곳 조금 아래에 'prefix' => ''가 있는데요. 하나의 DB에 여러 가지 웹 프로그램들의 테이블들을 설치할 때 테이블 이름들이 충돌하는 경우가 있습니다. 그런 경우 여기에 테이블 이름들에 붙을 접두어를 지정하면 됩니다. 단 이렇게 했을 경우 다음에 이야기할 테이블 생성 과정에서 테이블 이름들을 모두 바꿔야 합니다.

3. 테이블 생성

셸을 쓸 수 있으면 mysql 프로그램으로 schemas/schema.mysql 파일을 먹여버리면 끝. 그렇지 않은 경우라면 관리자에게 부탁하거나 mysql 웹 인터페이스를 사용하세요... 자세히 설명하기는 힘드네요...

그리고 위에서 prefix를 설정했다면 스키마 파일에 있는 테이블 이름들에도 동일한 접두어를 넣어야 합니다.

4. 최초 실행

이제 웹 브라우저로 index.php를 열면 자동으로 기본 페이지들(RecentChanges 등)이 생성됩니다.

생성이 되지 않으면 - gpgiki1.0.0에 오류가 있기 때문에 아마 자동으로 생성되지 않을 것입니다.

우선 index.php에서

다음과 같은 부분을 찾아서,

//define('WIKI_PGSRC', "pgsrc"); // Default (old) behavior.
define('WIKI_PGSRC', 'wiki.zip'); // New style.

주석을 반대로 해주세요.

define('WIKI_PGSRC', "pgsrc"); // Default (old) behavior.
//define('WIKI_PGSRC', 'wiki.zip'); // New style.

그런 다음

index.php/HomePage 또는 index.php?pagename=HomePage 를 브라우저로 여세요.

5. 조정

소스 파일들 중 gpgstudy.com 이 있는 부분을 모두 적당히 자신의 주소로 바꾸시구요... 이미지나 루트 디렉토리 주소 등등...

USE_PATH_INFO가 true가 아니면 우측 상단의 비슷한 페이지 버튼이 제대로 작동하지 않습니다. 이 경우 templates/browse.html에서 다음을 찾은 후

<a class="wikiaction" href="${BROWSE}LikePages?page=${PAGEURL}">비슷한 페이지</a>

다음과 같이 고치세요( 중간의 ?를 &로...)

<a class="wikiaction" href="${BROWSE}LikePages&page=${PAGEURL}">비슷한 페이지</a>

질문 & 답변

( 오오.. FAQ 형태로 자연스럽게 변신이 가능할 듯... :) )

설치 & 최초 실행

윈도2000 에 Apache + PHP + MySQL 을 설치해서 사용중인데요.. 이 환경에서 Gpgiki 를 사용할 수 있는 방법은 없는지 궁금합니다... ㅜ.ㅜ 여기있는 설치 방법대로 해보니 안되더군요.. 아마 디렉토리 생성이나.. 그런거가 환경이 달라서 그런 것 같긴 한데...

저는 WinXP APM에서 사용하고 있거든요. 어떤 오류가 나는지요... 의심할만한 부분은 PATH_INFO 밖에 없는데 PATH_INFO 활성화시키셨는지? (httpd.conf에 대한 문서를 참고하시길...) --류광


죄송한데요, httpd.conf 에 관한 문서가.. 무엇을 말씀하시는 것인지.. ㅜ.ㅜ 그리고 gpgiki 가 안되서 몇가지 phpwiki 를 설치하다가 알아낸 건데요.. 처음에 설치하고 나서 실제로 작동할때 페이지들의 주소앞에 자동으로 호스트 컴퓨터의 이름하고 도메인을 알아내서 붙이는데.. 그게 그렇게 하면 에러가 나서 phpwiki 에서는 강제로 이렇게 설정을 해줬거든요

define('SERVER_NAME', 'saintpark');

실제로 컴터의 도메인은 xxx.net 인데 위의걸 지정안해주면 saintpark.xxx.net 이렇게 모든 페이지의 주소를 만들어 버려서.. 억세스가 안된다는.. (사내 네트웍에서만 쓰려구 하거든요..)

그래서 gpgiki 에서도 저걸 강제로 지정한 다음에 실행하면.. 다음과 같은 에러들이.. (저걸 지정하지 않으면 gpgiki 는 페이지를 실행할수 없습니다.. 이런 에러가..)

Notice: call_user_method(): This function is deprecated, use the call_user_func variety
with the array(&$obj, "method") syntax instead in
d:htdocsgpgikilibErrorManager.php on line 138

d:htdocsgpgikilibFileFinder.php:82: Fatal[256]: templates/browse.html: file not
found

WikiFatalError
d:htdocsgpgikilibFileFinder.php:82: Fatal[256]: templates/browse.html: file not
found

물론 gpgiki 의 zip 화일을 받아서 그대로 풀어 놓은 거기 때문에.. lib 디렉토리나 templates 디렉토리안의 내용들은 전부다 있구요.....

하여간 왜 안되는지 궁금하네요... ㅜ.ㅜ


httpd.conf는 아파치 웹 서버의 설정을 담아놓은 파일이구요. 아파치 http://www.apache.org/ 에 문서가 있을 것입니다...

서버 이름을 지정했을 경우 경로를 잘 못 찾는 것 같네요. index.php 제일 처음 부분에 보면 일종의 기준 디렉토리 설정이 있는데요.

 //ini_set('include_path', '.:/home/');

이걸 주석을 지우고 gpgiki가 있는 곳의 물리적 경로로 지정해 보세요. 예를 들면

 ini_set('include_path', 'd:/htdocs/gpgiki');

그리고 Win 환경이라면 앞에서도 말했지만 압축 버퍼링 때문에 에러가 나거나 이상하게 깨진 글자들이 나올 수 있습니다. lib/main.php에 있는 $request->compress_output();들을 주석 처리해주면 됩니다.


감사합니다.. 위에분 말씀대로 ini_set 을 설정하고 서버 네임도 강제로 지정해주니 잘 되네요.. ^^


  Fatal error: Call to undefined function: ismanip() in /lib/WikiDB/backend/PearDB.php on line 682

저도 위에 오류가 나네요. 해결해주세요. 부탁드립니다.

 Phpwiki 자체의 오류더군요.

PHP의 기본 PEAR와 gpgiki에 포함된 PEAR가 충돌하기 때문인 것 같습니다. http://docbook.or.kr/phpBB2/viewtopic.php?p=105#105 를 참고하세요.. --류광

잠긴 페이지가 다시 안 풀리는 문제

제 사이트에 오셔서 손봐주셔서 감사합니다. 첫 페이지를 열어서 기본 페이지 자동 생성할때 그렇게 하는지 몰랐습니다. 감사하구요, 질문 하나 드릴께요 (여기 올리기 부적절하다면 적당한 곳으로 옮겨주세요) 관리자 아이디로 페이지 하나에 락을 걸었습니다. 잘 되더군요. 하지만 이후 락이 풀리지 않고 있습니다. 어디가 문제일까요? ㅠㅠ 답변 올라오는거 기웃거리겠습니다. - zendar

버그 또 하나 발견한 셈이네요. 감사...

lib/WikiDB.php의 클래스 WikiDB 함수 set() 제일 마지막을 보면

        $cache->update_pagedata($pagename, $data, array($key => $newval));

이걸 이렇게 바꿔 주세요.

        $cache->update_pagedata($pagename, array($key => $newval));

아마 잘 될 겁니다....

--류광

실행 상의 이상한 점

어느 항목에 넣어야할지 몰라서 이곳에 적습니다. 적당한 곳으로 옮겨주세요... 윈2000에서 apm 으로 gpgiki를 설치했습니다. 다 잘됩니다만 편집에서 저장할 때 항상 에러번호 500의 아파치 에러가 뜹니다. 다시 가보면 편집한 내용은 잘 저장이 된 상태입니다. 무엇이 문제인가요? 답해주시면 정말 감사하겠습니다. -- zendar 2003-06-11

500이면 Internal Server.. 어쩌구인가요?? 혹시 출력 압축 버퍼링 때문일지도 모르겠네요. main.php 보면 case 들이 주욱 있는 곳 있잖아요. case 'save': 아래의 $request->compress_output(); 줄을 주석으로 처리해 보세요.. 압축 버퍼링이 잘 되는 서버가 있고 아닌 서버가 있는 것 같아요... 다른 동작들 역시 오류가 나오거나 아예 빈 페이지가 나오거나 하면 $request->compress_output();를 주석 처리해보시길....

--류광

그렇게해도 안되는군요. 제가보기에 저장을 하게되면 안내멘트가 나오고 다시 페이지 이동을 하는듯한데(이곳에서는) 아마 그쪽에서 리다이렉션하는 부분에 문제가 있는게 아닌가 싶습니다. 에러 500뜨고 다시 페이지를 읽으면 Edit aborted 페이지가 나타납니다. (물론 실제로 페이지는 저장되어있습니다) php문제인지 아파치 설정문제인지만 정확히 알 수 있어도 행복할텐데요... -- zendar 2003-06-12

혹시나해서 제가 호스팅 받고있는 사이트에 설치해봤습니다. 잘되네요... 아마도 win2000에서 발생하는 문제인듯합니다. 그럼 어디가 문제일까요? 쩝~ -- zendar 2003-06-12

리디렉션되는 주소가 어떤 형태인지요?? index.php?page=.. 인지 아님 index.php/페이지이름 형태인지.. 후자라면 아파치에 PATH_INFO가 활성화되어 있지 않았기 때문일 가능성이 크구요. 전자라면 잘 모르겠네요.

근본적으로는 현재 배포본에 PATH_INFO를 사용한다는 가정 하에서 수정된 코드가 좀 있는 게 문제입니다... 손을 좀 봐야 하긴 하는데... 어쨌든 일단은 index.php의 USE_PATH_INFO와 VIRTUAL_PATH를 이리저리 변경해 보시길...

--류광

호스팅받는 서버에 설치한 곳에서 생기는 현상인데요... 브라우저로 맨처음 접속했을 때 화면 제일 상단에 다음 메세지가 표시되고 그 아래로 화면이 정상적으로 표시됩니다.

 lib/Request.php:70: Warning[2]: ob_start(): output handler 'ob_gzhandler' cannot be
used after 'URL-Rewriter'

다시 refresh (F5)하면 메세지가 없어지고 정상 화면만 표시되죠. 무엇이 문제일까요? 처음에는 call_user_method가 deprecated 되었다는 noti가 뜨고 위 메세지가 나오기에 call_user_func로 고쳐주니, 위 메세지만 나오는군요. 맨 처음에 접속할 때만 나와요. 그 이후에느 나오지 않고... 무엇이 원인일까요? -- zendar 2003-06-12

한글...

유닉스 머신에서는 정상입니다만, 윈2000 서버에 APM 설치한 환경에서 gpgiki 사용에 한가지 문제가 생겼습니다. 다른 페이지는 정상입니다만 분류 분류 페이지를 선택하면 MySQL 서버가 메모리 오류를 일으키면서 죽습니다. MySQL에서 한글사용에 관한 설정을 해둔 상태입니다. 혹시 참고가 될만한 사례가 있거나 원인을 아시는 분이 계시면 조언 부탁드립니다. -- zendar

따옴표 문제일지도 모르겠네요. <?plugin TitleSearch s='분류 ' noheader=1 ?> 에서 작은 따옴표 대신 큰 따옴표를 써보세요. <?plugin TitleSearch s="분류 " noheader=1 ?> 참 분류 분류 페이지를 열지 않고 직접 편집으로 들어가려면 URL 끝에 ?action=edit 또는 &action=edit를 붙이면 됩니다. --류광


제 서버는 php와 mysql을 쓰는 데요... 설치했더니 한글이 써지질 않아요... 깨진 글이 나오는데... apm 시작한지 한달된 초보라. 어디를 손봐야 할지 깜깜 한데요..답변좀..꾸벅

<meta http-equiv="Content-Type" content="text/html; charset=euc-kr">

이렇게 자유로운 형식으로 답을 얻게 되다니..와우 위키의 위력을 실감했어요.. 흑.. 이제 위키 탐험 3일째... 제꿈은 멋진 영문법 페이지를 만드는 겁니다.. 개설 되면 여기도 소개할께요.. 다시 감사


제 위키에서 http://makemal.new21.net/ctwiki/index.php/반지의 제왕 을 치면 위의 제목이 諛????로 깨져서 나옵니다. 깨지지 않게 나올라면 어떻게 해야 하나요?

어쨌든 브라우저 주소 입력 창에서 직접 한글 페이지로 접근하는 것은 현재로서는 좀 문제가 있구요. 한편 그런 방법은 고아 페이지(아무데도 링크되어 있지 않은 페이지)를 만들어 내므로 별로 바람직하지 않습니다... 새 페이지는 항상 다른 어떤 페이지에서 링크를 걸어서 만드는 것이 페이지들 사이의 관계를 유지하는 데 도움이 됩니다....

또 다른 문제로.... 다른 어떤 곳(게시판 등)에서 링크를 걸 때에도 비슷한 문제가 생길 수 있는데, %BC%B3 이런 식으로 인코딩된 주소를 사용하는 게 안전합니다. 인코딩된 주소는 IE의 경우 주소 입력창에 제대로 나타나구요. Opera의 주소 입력창에는 좀 깨져서 나옵니다. 또는 IntersectionTestCatalog 처럼 진입용 영문 페이지를 만드는 방법도 있구요).

아 물론 이 문제에 대한 기술적인 해결책이 없다는 뜻은 아닙니다. 제가 해결하지 못하고 있다는 뜻일 뿐입니다 :)

그리고... 좀 힘이 빠지는 말이 될 수도 있지만 프로그래밍 공동체가 아닌 이상 굳이 GpGiki를 사용할 필요는 없을 것 같아요... GpGikiPhpWiki에다 프로그래밍 관련 작업에 적합한 몇 가지 기능이 추가된 것인데 , PhpWiki의 최근 개선은 반영되어 있지 않습니다. 그 외의 다른 차이는 모두 껍데기-템플릿-일 뿐입니다.... 보라색과 누런 색의 조합이 마음에 드셨다면 뭐 좋은 일이구요 ^^

--류광


결국은 문제가 해결이 안되는군여. 사전을 추가한다고 했을때. 엘프어 사전이라 e위에 점있는걸 표현해야 하는데. 그걸 해결하려 UTF-8로 돌리면 한글이 깨져 나오고.. 이런때에 무슨 해결방법 없나여? * Altarien Laica *

ps. php를 아예 몰라서 어떻게 해야할지 모르겠어여.. 1.3.4를 깔라고 해도 어떻게 해야할지 모르겠고..


일단 생각할 수 있는 것은요... 인코딩은 그대로 놔두고, PHP 스크립트들에서 htmlspecialchars( ... )를 모두 htmlentities( ... ) 로 고쳐 보세요. 특히 lib/stdlib.php, lib/transform.php, lib/Template.php, lib/editpage.php, lib/savepage.php 의 것들을 바꿔서 시험해 보시고 괜찮으면 검색이나 페이지 정보 관련 스크립트들, 그리고 각종 플러그인 스크립트들을 차례로 바꿔나가면서 시험해 보세요.

htmlspecialchars와 htmlentities 에 대한 좀 더 자세한 사항은 http://www.php.net/manual/en/function.htmlentities.php 를 참고하시구요.

궁극적으로.. 입맛에 맞게 바꾸려면 PHP를 어느 정도는 아셔야....(다시 한번 말씀드리지만 GpGiki 소스는 이곳의 활용에 특화되어 있어서요...)--류광


뭐.. 저희야 일단 system가동을 위하는 것이 목적이 문제이지 보이는 system이 문제는 아닙니다.

말씀하신대로 해봤더니 저장이 아예 안되는군여. 페이지 이름으로 한글로 안나오고 말입니다. 역시 알기는 해야 하는데.. 머리가 안돌아가서 말입니다.. 지금 그상황 그대로 놔두었습니다. 한번 가서 조언 부탁드립니다. -- 갈라드리엔

p.s 답변은 늦게 해주셔도 됩니다. 이번주에 수련회 있어서 목요일날 나와야 하는..


DB 설정 관련...

슬금..슬금.......(-_- ).........

안녕하세요 류광님....~! ^-^ 몇일째 구찮게해소 정말 면목이 없습니다...T-T 위키를 깔구 있는데요... 시키시는 그대루 따라했거덩요... 그래서 index.php를 실행 시키면....

 Fatal error: Call to undefined function: dba_open() in
 /usr/local/apache/htdocs/phpwiki/lib/DbaDatabase.php on line 32

위와같은 에러가 납니다.... T-T 아무리 찾아보아도.... dba_open()함수는 없는 것 같습니다....

그 함수는 제가 따로 구현해야하는 건가요?? o.o 2002/02/04 조화경


dba_open요? 이건 DBM에 쓰이는 건데... 혹시 index.php에서 $DBParams의 'dbtype'을 'dba'로 하셨나요? MySQL 쓰시면 'SQL'로 하셔야 합니다... ^^ 2002-02-04, 류광


안녕하세요... 저는 류광님께서 작성해주신 "phpwiki설치법"을 참고로 위키를 설치하고 있는데요. 잘 안되서 이러케 질문을 드리게 되었슴다.

이런 에러가 나는데요....

 Fatal PhpWiki Error
 lib/WikiDB/backend/PearDB.php:671: Fatal[256]: wikidb_backend_mysql: fatal
 database error
 DB Error: no such table
 (LOCK TABLES page WRITE,version WRITE,link WRITE,recent WRITE,nonempty WRITE
   (nativecode=Table 'sample.page' doesn't exist))

DB 연결이 잘못된건 알겠는데요... 님께서 설명하신대로 저는 schemas/schema.mysql을 sample이라는 db에 저장했거든요. 저는 dsn설정하는 부분을 잘못 한거 같은데... 'dsn' => ' mysql://user:password@localhost/sample 이렇게 지정했어요. 이게 아닌가요? @뒷부분을요... sample이라는 DB는 다른 디렉토리에 존재하니깐 그 디렉토리를 나열하고 sample을 써봤는데요.. 그래도 에러가 계속나던데... 죄송합니다.... 만... 도와주시면.. 정말 .감사하겠습니다~~ 꾸벅.. 2002-2-5 정선진


DSN 형식은 그렇게 하면 맞는 것 같은데요.. 계정의 MySQL 프로그램으로 DB 구조를 한 번 확인해 보시길.. 아니면 혹시 index.php의 'prefix'를 고치셨나요? 그럼 schema.mysql에 있는 테이블 이름들도 모두 고쳐야 합니다... - 2002-02-05, 류광


제 경험을 추가하면 저는 웹호스팅을 나야나로 했고 그사이트에서 보면 mssql를 사이트에서 테이블을 작성할수 있습니다.(나야나홈페이지->유로호스팅->MySQL웹메니저-> 테이블 추가)이때확장자명은 sql로만 됩니다. 2002-4-18 우지사내


설치하는데 이런 에러가 납니다. 살펴봤지만 제 실력으로는 무슨 뜻인지도.. ㅠㅠ 한번 봐주세요...

 lib/WikiDB/backend/PearDB.php:664: Fatal[256]: wikidb_backend_mysql: fatal database
error
 DB Error: syntax error<li>
 (SELECT latestversion FROM hw_page INNER JOIN hw_recent USING(id) WHERE
pagename='InterWikiMap')<li>
 <li>
 lib/WikiDB/backend/PearDB.php:64: Notice[8]: Undefined property: _lock_count
 lib/WikiDB/backend/PearDB.php:636: Notice[8]: Undefined property: _lock_count
 -------------------------------------------------------------------------------
 WikiFatalError
 lib/WikiDB/backend/PearDB.php:664: Fatal[256]: wikidb_backend_mysql: fatal database
error
 DB Error: syntax error<li>
 (SELECT latestversion FROM hw_page INNER JOIN hw_recent USING(id) WHERE
pagename='InterWikiMap')<li>
 <li>

MySQL 관련 에러인데 잘 모르겠지만 아마 Pear와 MySQL이 서로 버전이 맞지 않는 게 아닐까 하는.. MySQL의 DB 잠금 지원이 버전마다 차이가 있다고 들었거든요. 음 전문가의 도움이 필요하지 않을까 합니다 -.- --류광


도움이 필요합니다. 현재 Apache/1.3.20, mysql 3.23.32, PHP 4.0.6 으로 소스포지에서 phpwiki-1.3.3.tar.gz 파일을 받아 압축을 해제하였습니다. mysql의 user와 db에 각각 추가하는 부분은 수행하였는데, 저는 schemas/schemas.mysql 파일이 보이지 않습니다. 한글 문제로 templates 디렉토리 하위의 html들을 수정하라는 이야기도 들었습니다만 해당 디렉토리는 비어있습니다. 제가 파일을 잘못 받은게 아닌가 하는 의심도 들 정도인데요. 이 질문 페이지 에러메시지를 함께 적어보려니 자꾸 에러를 내면서 거부당하네요. 도움을 부탁드립니다. --chatmate

혹시 저처럼 해메는 분이 계실까봐 몇자 적습니다. 다 제대로 해놓고 db에 schemas 읽어들이는 것만 못해서 바보같이 해멨던거네요. 혹시 여기 와서 PhpWiki 1.3.3 까실 분들은 노스모크에 있는 컴맹도 할 수 있는 개인위키 만들기 페이지를 참조하시고요. 한글 문제를 index.php에서 수정하는걸 빼면 1.3.2 랑 별로 다른게 없는듯 합니다. 제가 php와 mysql에 까막눈이었던게 문제였죠 -_-; --chatmate


검색 관련

한글 이름 페이지 검색 문제를 어떻게 해결하셨는지 갈쳐주시면 고맙겠는데요.. -- 春

한글 이름 페이지 검색이요... GpGiki 소스를 그대로 설치하셨나요? lib 디렉토리의 TextSearchQuery.php 끝 부분에 보면 TextSearchQuery_Lexer 클래스의 function tokenize()가 있습니다. 그 함수 처음 부분 보면 strtolower 호출하는 문장이 있고 그 위에 setlocale 호출이 있습니다.

얼마전까지만해도 이 GpGiki 있는 서버의 strtolower가 이상하게 작동했었습니다.. strtolower는 영문 알파벳에만 영향을 미쳐야 정상인데, 이상하게도 한글 문자열에 대해 strtolower를 호출하면 한글 문자열이 깨졌거든요. 그래서 setlocale(LC_CTYPE, 'C')을 집어 넣어서 문자열이 항상 미국 영어 알파벳 기반으로 처리되도록 했었습니다. 그런데 최근 서버 설정이 바뀌었는지 이제는 setlocale을 빼야 제대로 작동하는군요..

결론적으로 말하면 그 setlocale 문을 빼서 해결했습니다(...만 다른 서버에서는 어떨지 모르겠습니다).

--류광

스킨 관련

사용자들 중에 아래의 버튼이 사각형(□)으로 보인다던 분이 있으시더군요. 그래서 CSS 파일의 모든 영어 폰트를 '굴림'이나 '굴림체'로 바꿨더니, 제대로 보인다고 하셨습니다^^. 다음 배포시에는 이것을 반영해 주셨으면 합니다.

deprecated 경고

무언가 가끔 문제가 생기고 있어요;

맨위에는 이렇게 뜨고요-_-;

 Warning: The call_user_method() function is deprecated, use the call_user_func
variety with the array(&$obj, "method") syntax instead in
/home/pudidic/www/jw/lib/ErrorManager.php on line 138

맨 아래에는 이렇게 떠요;

 PHP Warnings
 lib/TextSearchQuery.php:144: Notice[8]: The call_user_method() function is
deprecated, use the call_user_func variety with the array(&$obj, "method")
syntax instead

무엇이 문제일까요^^;


서버에 깔린 PHP가 call_user_method()를 폐기한 좀 더 최신 버전이기 때문인데요.. 해결도 그리 어려운 게 아닌데 아직 고칠 엄두를 못내고 있습니다(월드컵!).

그런데 그 부분은 내부적으로 어떤 오류가 있을 때 실행되는 부분인데.. 어떤 오류인지는 call_user_method() 문제 자체를 해결해야 알 수가 있겠네요..

한글 검색은 잘 되시는지?

--류광

속도 관련

속도문제와 최초 페이지 로딩시에 출력되는 경고메세지로 고민중이었는데, 경고메세지는 compress_output()함수에 대한 것이었습니다. main.php에서 주석처리되지않은 compress_output()을 주석처리하고나서 속도가 빨라지고 최초의 경고메세지가 표시되지 않게 되었습니다. 원인을 모르고 대략적으로 문제가 해결된 것이라서 찜찜하긴 하지만 일단 사용해봐야겠습니다. 저 함수의 역할이 압축해서 전송하는 것인가요? main.php에 류광님이 주석처리를 해둔 부분과 그냥 놔둔 부분이 있던데 차이가 뭐죠? -- zendar

PhpWiki를 쓰기 시작했습니다. 그런데, 다른 Php(제로보드)보다 엄청나게 느립니다. 제로보드는 클릭하는 순간(0.5초 이내로) 나오지만, PhpWiki는 클릭하고 10초 정도 지나야 한 화면이 나올 정도군요. 왜 이럴까요? 설정의 문제일까요? 아는 것이 있다면 답을 달아주시기 바랍니다. 모르신다면 '모른다' 라고라도..^^;

주소는 http://painclub.net/jw/index.php 입니다. -- ?최종욱

지금 가봤는데 그리 느리지 않은 듯... 1초 안 넘어가는 것 같은데요...(밤이라서 그런지? 그렇다면 회선 상의 문제일 수도 있구요). GpGiki의 경우 속도 최적화를 위해 압축 전송을 쓰기도 하는데 어쨌든 시스템 특성 상 일반 게시판보다는 좀 느린 것도 당연할 듯 하구요. PhpWiki 최신 버전들은 PhpWiki 개발자들이 여러 가지 아이디어를 적용하고 있는 것으로 알고 있습니다. 페이지 캐싱도 한다고 하던데 어떻게 되고 있는지는 잘.... --류광


언제부터인가 페이지 하나 뜨는 데 5 초 이상 걸리는 일이 많았는데, index.php의 define('ENABLE_REVERSE_DNS', true); 를 define('ENABLE_REVERSE_DNS', false);로 바꿨더니 그런 일이 없어졌습니다. 이제는 페이지 뜨는 속도가 페이지 크기에 비례합니다(이게 정상).

문제의 원인은 DNS 역참조 시 내부적으로 사용하는 gethostbyaddress() 함수였습니다. 예전 서버에서는 안 그랬는데 IDC 이전 이후 이 함수가 상당히 느리게 작동하더군요.... ENABLE_REVERSE_DNS를 false로 하면 DNS 역참조를 수행하지 않습니다.

--류광

HTML 출력의 레이아웃이 깨지는 문제

http://zzogman.com/wiki/index.php/PhpWikiDocumentation

PhpWiki 1.3.3을 설치해서 사용 중인데요, CHARSET을 euc-kr로 바꾼 이후로 그래픽이 깨어져서 나오고 있습니다. -_- 익스플로러 메뉴에서 편집 - 인코딩 메뉴에서 다른 언어를 선택하니 테이블은 제대로 나오는 데 한글이 안나오네요. 혹시 아시나 해서… --성근

HTML 소스를 보니 중간 중간에 ASCII 코드 A0가 끼어 있네요.. 특히 태그 앞, 뒤에 A0이 있는데 PHP 소스 차원에서 해결해야 할 문제인 것 같습니다. 제 기억에 A0은 내부 처리 중 필드들의 구분자로 사용하던 기호였던 것 같은데... 그게 최종 출력에도 남아 있다니 좀 이상하네요.

일단 생각할 수 있는 방법은 PHP 소스 중 어딘가 HTML 태그를 만드는 부분에서 '<' 앞에 빈칸을 삽입하는 것인데 시도해 보시길... 아니면 브라우저로 출력될 최종 HTML 텍스트에서 A0만 빼버리는 등..(PHP를 좀 다룰 줄 아시면 쉬운 일입니다)

설치하신 버전은 아마 개발중인 알파 버전인 것 같은데 좀 더 기다려 보시는 것도 좋겠구요.. --류광

감사합니다. 덕분에 잘 해결했습니다. ?HtmlElement.php 파일을 이렇게 수정했더니 해결되었습니다. 띄어쓰기 문제는 생각 해 봐야겠네요. --성근

//define('NBSP', "xA0");         // iso-8859-x non-breaking space.
define('NBSP', " ");         // iso-8859-x non-breaking space.

Administration

아이디를 만들게할수있는곳이 어딘가요? 사람들이 아이디를 만들었을때만 수정할수있게하려구여. 노스모크처럼요. 그리구 혹시... 관리자가 선택한 사람만 수정하게할수있게할수있나요?

GpGiki의 경우 아이디는 사실 사용자 브라우저의 쿠키에만 존재할 뿐입니다. 서버나 소스 코드 차원에서 존재하는 것은 관리자 ID 하나만 존재하는 것이구요... 첫 번째 것은 사용자 정보 쿠키가 존재하는 경우와 그렇지 않은 경우를 나누면 될 것이구요. 두 번째 것은 사용자 ID들을 서버가 기억해야 한다는 것인데 소스 코드를 많이 고쳐야 할 것입니다.. (또는 GpGiki 초창기처럼 공동 패스워드를 사용할 수도 있겠죠.. 그 때에는 admin 로그인 부분에서 패스워드만 점검했었습니다) --류광

관리자 아이디로 페이지에 lock을 걸어보았습니다. 되더군요. 되는거 확인하고 다시 lock을 풀려고 했지만 풀리지 않습니다. ㅡ.-; 어떻게 해야 풀 수 있을까요? -- zendar 2003-06-13

멀티 히스토리

Gpgiki에 감명받아 사내에 phpwiki를 설치 후 잡기장 대용으로 쓰고 있습니다. 그런데 Gpgiki는 히스토리가 8단계 정도 남는거 같던데 phpwiki는 그렇지 않더군요. 이런건 어떻게 만드셨나요 ? (음..Gpgiki랑은 약간 상관이 없을지도 모르지만...) --kwanny

어떤 버전을 쓰시는지 잘 모르겠는데 적어도 1.3.2 버전 이상에서는 히스토리 기능이 있습니다. 이전 버전들이 몇 개까지 유지되는가는 index.php의 ExpireParams 설정에서 변경할 수 있구요...

좀 더 본격적으로 쓰시려면, 특히 위키를 문서화에 활용하시려면 요즘 제가 한창 열을 올리고 있는 DbWiki를 추천합니다... GpGikiWikiToDocBook을 결합한 형태로, KLDP.org에 공식 채택될 예정입니다. ^^v

--류광

아..설치 할때 받은 패키지가 1.2.2 던데 최신 버젼이 아니 였군요. 어쩐지 기능이 않되는게 있다 싶었는데 이번 주 내부 데모 끝나면 받아서 설치 해야 겠습니다. DbWiki 라는 프로젝트도 좀전에 얼핏 보았는데 무척 흥미롭네요. 아뭇튼 감사 합니다. ^^ --kwanny

사용자 설정

PHP Warnings
lib/WikiUser.php:122: Notice[8]: Undefined index: edit_area.height

라는 메시지가 계속 뜹니다. 그리고 사용자 설정이 안됩니다. 쿠키에 문제가 있는것 같습니다. 브라우저의 문제인지, 아니면 서버측의 설정 문제인지를 모르겠습니다. [이상훈]


Request.php 중간 부분을 보면 쿠키 설정에 gpgstudy.com을 지정하는 부분이 있습니다.

//gryu+
		setcookie($key, $packedval, $expires, '/', '.gpgstudy.com');
//gryu-		setcookie($key, $packedval, $expires, '/');

저 부분을 아래와 같이 바꿔 보세요.

 setcookie($key, $packedval, $expires, '/');

그래도 잘 안 될 수 있습니다. 오페라 브라우저에서 잘 안 되고, IE에서도 PATH_INFO를 사용하지 않을 때, 즉 URL이 index.php/RecentChanges 형태가 아니라 index.php?pagename=RecentChanges 형태일 때 잘 안되는 것 같습니다. DbWiki에서도 마찬가지 문제가 발생하고 있어서 원인을 살펴보는 중입니다. DbWiki에서 해결이 되면 GpGiki도 해결이 될 겁니다. --류광

설치후-- 이렇게 안됨니다.T-T

설치를 다 한후 -- MYSQL,WIN2K-SERVER기반 들어가니-- 화면이 하얗군요-- 그냥아무것도 안뜸. 뭘잘못할것일까--음..

설치과정

 - mysql 최신버전 설치
 - php 최신버전 설치
 - gpgwiki 압축해제후 webwiki 에 옮김
 - iis 에 wiki폴더 등록
 - mysql 스키마 관련 테이블들 등록
 - index.php계정설정,db설정
 - explore 에서 창 염
 - xxx.php 관련 에러
 - xxx.php 삭제 ( - 위 글중에 그런 문구가 있어서 하라는데로 했음 )
 - 에러없이 잘 됨 근데 화면이 하얀화면에 아무거도 안뜸.--

위의 형태의 과정을 거쳤는데-- 이런현상이 발생합니다. 음. 아시는분 답변 주세요.

그리고 이 에러 아시는분

Fatal error: main(): Failed opening required 'lib/WikiDB.php' (include_path='.;c:php4pear') in D:Webdbwikilibmain.php on line 7

다른 위키 설치하니 이 에러가 뜨던데-- 그파일을 지우니 뜨는거 같은데. 음 대략 낭패. 1.1.1버전인가 그거 깔아도 뜨는거 같고. 1.1.2인가는 현재 잘되는중인데 화면이 하얀색..-- 그럼 즐거운시간되세요. 여기 이런글 쓰는가 맞는지 모르겠습니다T-T

GpGiki는 아파치에서만 시험해 봤습니다. DbWiki를 한 번 시험해 보세요. GpGiki와 거의 같은 위키이지만 좀 더 안정적이고 코드도 비교적 최신입니다. --류광

-- dbwiki

역시 세팅다하고 실행하면 화면에 아무것도 안뜨는군요. explore창에 뜨는건 그냥 하얀화면뿐입니다. 아예. '페이지를 찾을수 없습니다' 이런거라도 뜨면-- 싫수했구나 하겠는데 db연결이라던지 .wiki에서 처리하는 루틴은 모두 통과하는데 아무것도 안뜨는군요. win(iis)기반에서 따로 세팅해줘야하는 그런것이 있나요? 그럼 즐거운시간되시구

질문하나더 하자면 - 아파치라던지 기타 타 웹관련 서버는 그냥 받아서설치하고 사용하면 되는건가요? 그럼 즐거운시간되세요.

뭔가 오류가 생긴 것 같은데, 일단 PHP의 오류 보고 기능이 켜져 있는지 살펴보세요. php.ini에서 display_errors가 1로 설정되어 있어야 오류가 표시됩니다. php.ini를 변경하기 힘들다면 index.php 제일 처음에

 ini_set("display_errors", "1");

을 추가하고 실행해 보시길...

그리고 아파치는 설치하기 쉽습니다. 다만 IIS와 포트 80을 가지고 경쟁을 할 것이므로 IIS는 끄거나 포트 번호를 바꾸는 게 좋구요.

--류광

류광님의 ^^ 지속적인 답변 먼저 감사드립니다. -- 그래도 안되는군요. 위의 에러기능을 따로 추가해보았지만 아무에러가 없습니다. 마지막에 '완료'란 문구와 함께 여전히 화면은 하얀 화면이군요.T-T위키 돌리고 싶은데 음.. 아마 처음에 MYSQL설정 잘못해서 여러가지 에러가 뜨고 했으니단순히 DISPLAY안되는건 아닌거 같습니다-- IIS용 PHP를 어떤걸 설치하느냐 이런문제도 있나요?

NAVER에서 최신버전 받은후 홈페이지에서 PHP INSTALLER를 통해 인스톨을 했습니다.

음. 혹시나 제가 설치하 IIS가 이상한가 해서 여러 웹소스등을 구동해보았는데 잘되더군요.T-T PHP기반은 아직 못돌려봤지만. 그럼 즐거운시간되시구요. -- 혹시나 아시는분은 꼭 해결해주셨으면 감사합니다.

--SeMinZ

일단 PHP는 제대로 돌아가는거겠죠?

브라우저 소스 보기로 소스를 한 번 보세요. 아무 것도 없거나 소스가 아예 안 뜨면 서버의 전송 압축 관련 문제일 수도 있습니다. lib/main.php의 main() 보면 case 들이 많이 있는 곳에 //$request->compress_ouptut();라는 문장들이 있습니다. case 'browse': 아래에도 하나 있는데 //이 붙어 있으면 그걸 제거해 보시고, 붙어 있지 않으면 반대로 //를 추가해 보세요...

--류광

류광님의 계속적인 답변 ^^ 진심으로 감사드립니다. -- 답변에도 불구하고 iis+php+mysql은 포기. (참고로 위의 저 문장이 아예없더군요 dbwiki ) 그래서 포기호고 아파치를 설치하기로 했습니다. 아파치 설치후-- php동작이 잘안하더군요.음 아파치 서버 관련 세팅을 다시 해줘야하는가 보네요-- 휴.. 음. 아파치에 php세팅하는부분에 대해 조금 자세히 부탁드릴께요,.

제가 시도한 방법은 php 에 그냥 installer를 통해서 apache용으로php를 설치했는데. 설치마지막에 httpd.conf를 고칠수 없다고 install.txt.보고-- 수동으로 다 고치라는데 음 잘모르겠네요. ^^ 이부분을 부탁드리겠습니다. 그럼 즐거운시간되세요.

http://www.apmsetup.com/ 같은 통합 패키지를 사용해보세요~ --류광

다시질문. amp 통합패키지는 음. 다지우고 또 다시 설치해야 하는거 같아서 귀찮고-- 그냥 일일이 손으로 세팅하기로 마음먹었습니다.

근데 php부분에 대해서 인데요. IIS+PHP+MYSQL기반에서 PHP구동이 잘되나 안되나를 판단 하기 위해 아래와 같은 test.php를 제작하여. wiki 폴더에 넣고 강제로 아래 파일을 열어보니 잘 동작을 합니다.

샘프로 소스 <? echo (" <br><br><br><br><br><br>이것은 간단하게 PHP를 테스트 하는 것입니다. </p>

이 화면을 보고 계시다면 php3 설치와 아파치 환경설정에 <br>

성공하신 것입니다. </p>

"); ?>

음.. 위의 소스는 잘 동작하더군요. 고로 php문제는 아닐꺼라는 결론을 내렸습니다. T-T화면이 안뜨는 이유를 갈쳐주세요. 위키 쓰고 싶어. 보통 다른분들은 LINUX기반에서 구동시키는건가요?

음. 이참에 리눅스 서버도 하나 만들어야 하는건가 아....

-- SeMinZ

계정설정은 할수 없는건가요?

 wiki목적에 약간 어근난다고 할수있겠지만. 계정권한이 없는사람이나 보통사람같은경우에 글수정 권한이라던지. 특정 권한에 대한 제약을 걸수 있는 방법은 dbwiki,gpgwiki에는 ?

^^ 그럼 즐거운시간되시구요.

다들 행복한 하루되세요.

-- SeMinZ

있긴 있습니다만 위키 목적에 많이 어긋나므로 별로 권하고 싶지 않습니다. index.php와 lib/main.php를 보면 답이 있습니다.

개인 홈페이지를 꾸미기 위해 위키, 미니 홈피, 블로그 등등을 왔다갔다 사람들 많이 봤는데, 개인적인 용도로 위키 사용하는 거 실패율이 상당히 큽니다. 위키는 여러 사람이 함께 하지 않으면 금방 죽어버립니다.

--류광

PHP Warnings

PHP Warnings c:html_wikigpgwikilib ransform.php:419: Notice[8]: Undefined index: footnotes

c:html_wikigpgwikilib ransform.php:419: Notice[8]: Undefined index: footnotes

c:html_wikigpgwikilib ransform.php:419: Notice[8]: Undefined index: footnotes

위의 에러가 발생합니다.

위치는 글을 적고 나서 최신글이나기타 그글을 읽으면 화면 가장 하단에 네모박스안에 저런게 뜨는군요. php에 대해서는 문외한 이라!! 그럼 즐거운시간되시구요. 좋은 답변 부탁드립니다.

tranform.php의 419 줄 바로 위에 다음을 추가하면 그런 경고가 안 나올 것입니다. --류광

	if (empty($trfrm->user_data["footnotes"]))
		$trfrm->user_data["footnotes"] = array();

버튼 클릭시 다운로드 창이 뜹니다

처음 설치후 버튼을 클릭할때는 다음과 같은 에러가 떳습니다만. Security Alert! The PHP CGI cannot be accessed directly. This PHP CGI binary was compiled with force-cgi-redirect enabled. This means that a page will only be served up if the REDIRECT_STATUS CGI variable is set, e.g. via an Apache Action directive.

For more information as to why this behaviour exists, see the manual page for CGI security.

For more information about changing this behaviour or re-enabling this webserver, consult the installation file that came with this distribution, or visit the manual page.

웹에서 찾아낸 정보로 php.ini에서 cgi.force_redirect = 0 으로 세팅을 하니 이번에는 모든 버튼을 클릭할때마다 다운로드 창이뜹니다 파일이름 : php 이런 식으로여 php 설정 문제인가요? 답변 부탁드립니다.. - 한별

분류 Gpgiki


제일 위로
최종 수정 일시: 04월 08일(2005년) 05:43 AM 편집 | 정보 | 차이 | 비슷한 페이지 DebugInfo
유용한 페이지들: 분류 분류 | 자유로운 연습장 SandBox | 무작위 페이지들 RandomPages | 인기있는 페이지들 MostPopular