여전히[설치문제]칼자루는 저쪽이 쥐고 있는데.. > 그누4 질문답변

그누4 질문답변

그누보드4 관련 질문은 QA 로 이전됩니다. QA 그누보드4 바로가기
기존 게시물은 열람만 가능합니다.

여전히[설치문제]칼자루는 저쪽이 쥐고 있는데.. 정보

여전히[설치문제]칼자루는 저쪽이 쥐고 있는데..

본문

설치시 2/3에서 에러 나는 부분입니다.
(외국호스팅업체 safemode on일 경우/보안상의 이유로 off 할수 없답니다.)

설치시 에러 메세지

Warning: set_time_limit(): Cannot set time limit in safe mode in /hp/ab/ab/be/www/g4/install/install_db.php on line 2

Warning: Cannot modify header information - headers already sent by (output started at /hp/ab/ab/be/www/g4/install/install_db.php:2) in /hp/ab/ab/be/www/g4/install/install_db.php on line 19

Warning: Cannot modify header information - headers already sent by (output started at /hp/ab/ab/be/www/g4/install/install_db.php:2) in /hp/ab/ab/be/www/g4/install/install_db.php on line 20

Warning: Cannot modify header information - headers already sent by (output started at /hp/ab/ab/be/www/g4/install/install_db.php:2) in /hp/ab/ab/be/www/g4/install/install_db.php on line 21

Warning: Cannot modify header information - headers already sent by (output started at /hp/ab/ab/be/www/g4/install/install_db.php:2) in /hp/ab/ab/be/www/g4/install/install_db.php on line 22

Warning: Cannot modify header information - headers already sent by (output started at /hp/ab/ab/be/www/g4/install/install_db.php:2) in /hp/ab/ab/be/www/g4/install/install_db.php on line 23

위의 메세지는
set_time_limit():  부분을  // set_time_limit():
혹은 @set_time_limit()로 하면
위의 에러 메세지는 안보입니다.
근본적인 이유는
safemode를 on으로 되어있기 때문입니다.


웹 호스팅업체에서 보안상의 이유로
safemode를 on으로 해 놓았을 경우

나스카님이 알려주신데로

-. php문서에서 일괄 처리하는 (예를 들어 install 등) 부분에 문제가 발생될 수 있다.
(예) 특정 경로가 생성되지 않는다.(또는 생성할 수 없다.)
      extend 또는 /data 및 그 이하의 경로(session, file 등)
 
-. 특정 파일의 퍼미션(소유권이 아닌 접근권한이라는 설명이 타당) 변경을 가할 수 없다.
(예) 특정 파일(php)에서 퍼미션 관련 부분의 일괄 처리내용을 수행할 수 없다.
(예) 특정 게시물에 파일을 첨부할 경우 업로드 불가능 또는 썸네일 등을 생성할 수 없다.
 
-. mysql 접근&수행 과정에 있어서 정상적인 사용에 제약을 받을 수 있다.

이러한 문제가 발생합니다.
따라서 data에 올라가는 게시판 첨부 그림파일등은 올릴 경우 에러가 발생합니다.

제가 서비스 받는 호스팅업체의 정보에

php info를 보면
safemode관련부분은

safe_mode                          On        On
safe_mode_exec_dir          no value  no value
safe_mode_gid                      Off        Off
safe_mode_include_dir          no value  no value

섹션부분은
session.name                  PHPSESSID        PHPSESSID
session.referer_check          no value        no value
session.save_handler        files                      files
session.save_path    ../data/session      /var/lib/php4
이렇게 되어 있는데요.

그런데 /tmp나
/data디렉토리 를 변경하려면
어떤 파일을 수정해야 합니까?
save_path쪽을 수정하면 되지않을까 막연하게 생각하여,

install_db.php부분의 data디렉토리 설치부분을  /var/lib/php4
이렇게
write_up.php에서 data를 /var/lib/php4 로 바꾸었더니 첨부파일의 그림이 올라갑니다.
다만 db와 연결되는 부분을 제가 어디를 손바야 하는지 몰라서
/var/lib/php4 이하의 각 게시판생성시 자동으로 만들어지는 게시판 디렉토리는 사용자가 만들어주어야 하는군요.

아.~정말 어렵습니다.

정영 호스팅업체를 바꾸어야 한단 말인가요?

ps:그누보드설치가 안되니 스킨사용같은 것은 그림에 떡이옵니다.
귀중한 게시판 같은 문제로 계속 올림에 용서를 구합니다.
  • 복사

댓글 전체

독일입니다. 호스팅 업체마다 일일이 safemode가 on,인지 off인지 물어봐야 하는것도 쉽지 않네요.
대부분 업체들은 php지원여부만 알려주고 있으니까요
ftp 로 접속하셔서 그누보드설치폴더/하위폴더로 data 폴더와 extend 폴더를 수작업으로 만들어주시고,
퍼미션을 707로 해보세요...
퍼미션을 707로 할수있다면 본문처럼 주석처리로 설치하고난뒤에 사용가능해집니다...^^

그런다음 data 하위폴더를
cheditor , file , member , session ,log 폴더를 추가로 수작업으로 만들어주세요..

그런다음 그누보드를 실행한뒤 게시판도 만들고 그림파일을 올려 보세요...^^

만약, data 폴더의 퍼미션을 707 로 할수 없다면  첨부파일은 사용할수 없습니다..
답변감사합니다.
data폴더는 퍼미션이 707입니다. 그래도 여전히 문제가 발생합니다.
이것은 잘 모르겠지만
퍼미션문제이기는 하지만 퍼미션문제가 아닌듯 합니다.
소유자(?)가 원소유자인지 아닌지 확인을 못해서 발생하는 문제인것 같습니다.
혹시 테스트용으로 개인서버를 운영하시는 분들 중에서 safemode를 on으로 하시고 그누보드를 설치해 보시분 계시면 어떻게 처리하셨는지 가르쳐 주옵소서.
갈길이 먼데 아직 걸음마도 못떼고 있습니다.
설치할때는 물론 safemode를 on으로 되어있었지 않았지만,
테스트를 위하여 safemode를 on으로 변경한뒤 서버를 재시동하고 테스트를 해봤거든요..
이미지파일 잘 올라가고 섬네일생성잘되구요..로그인 잘 되더라구요...

확인해보니 제 서버에서는 이상이 없어서 위에 답글을 올린것인데,
또 다른 문제가 있는 모양이군요...
-. 안전 모드에 의해 제한되는/비활성화되는 함수들
http://kr2.php.net/manual/kr/features.safe-mode.functions.php
즉, exec(), php 소스파일에 의해 외부(웹)에서 접근하는 함수,
서버측 자료의 특성(퍼미션 등)을 변경시키는 작업(chmod) 등을
정상적으로 수행할 수 없는 문제가 발생될 수도 있습니다.
(뭐... 현재는 발생되고 있다고 봐도 무리가 없을 듯 합니다만...)
safe_mode_exec_dir string
PHP가 안전 모드를 사용중이라면, system()과 그 외의 시스템 프로그램을 실행하는 함수는 이 디렉토리에 있지 않으면 프로그램 시작이 거부된다.

이 값을 한번 사용해 보세요.
슬픈일이지만, 일년치 선불주고 선택한 호스팅업체를 포기할 수 밖에 없겠습니다.
똥인지 덴장인지 구분못하는 제가, php도, 서버도 모르고 먼가 해볼려는 자체가 문제가 있었는지도 모르겠습니다.
그동안 나모로 홈페이지를 만드는 것만 알았는데 그누보드같은 것으로 홈페이지를 만들면, 살아있는 홈페이지로 변한다는 사실도 알았고,
2주동안, 여기저기 찾아 보고 서버가 safemode, on이라면 그누보드가 설치안된다는 사실을 안건만 해도 소득이라면 소득이라고 하겠습니다. 호스팅업체를 선택할 때 서버환경이 safemode, on인지 off 확인하고 선택하는 사람이 몇명이나 되는지 모르겠습니다.  한국의 대부분 호스팅서비스 업체는 off로 되어있으니 다행이라고나 할까요?  혹시 보안에 문제가 큰문제가 생기면 on으로 할지도 모르지만.......
아무튼 좋은 경험해 본 것 같습니다.
도와주신 모든 분들께 감사드립니다.
수작업으로 만들어준 data 폴더와 하위폴더들의 퍼미션을 707 로 맞춰주시면 write 가 가능하기때문에
safemode on 이라도 동작되어야 하는데....

다른 폴더와 파일들도 확인해 보시죠... 퍼미션 706 (클라이언트 읽기 실행 가능)으로 하시면 될겁니다...

참고삼아서 제 서버설정중 일부를 올려드립니다..
 ==============================================
safe_mode = On

; By default, Safe Mode does a UID compare check when
; opening files. If you want to relax this to a GID compare,
; then turn on safe_mode_gid.

safe_mode_gid = Off 


이상태에서는 data 폴더와 하위폴더와 파일들의 퍼미션만 맞추시면 동작 이상없거든요....^^
safe_mode = On
상태에서 그누보드를 설치하면
data는 퍼미션 707로 폴더가 만들어지지만 하위폴더 생성이 안됩니다.
또한 만들어진 data의 퍼미션은 ftp에서도 퍼미션변경이 안됩니다.
이부분은 위에 나스카님이 말씀해주신데로 입니다.

감사합니다.
일단 호스팅업체에 그누보드 설치시에만 safe mode를 off하고
설치후 on으로 돌리면 되지 않게냐고 물어 봐야 겠습니다. 포토플라이님 말씀대로 설치전에만 off으로 되면 정상적으로 작동할지도 모르니
그나 저나. 호스팅 회사에서 두번씩 서버를 재시동 할려고 할지 모르겠습니다.
만들어진 data의 퍼미션은 ftp에서도 퍼미션변경이 안된다면
포기하시고 다른 호스팅사를 찾아보시는것이 좋을듯 합니다.
게시판을 만들거나 섬네일을 생성할때도 data 폴더의 하위폴더를 생성해야 하니까요...

하루이틀 운영할것도 아닌데, 두고두고 말썽을 부릴테니.....^^
전 php를 모릅니다.
data를 임으로 만들경우
session 부분에서 값을 제대로 못받아서
에러가 나는 것 같습니다.

safe_mode  on이 되면 보안을 위해
data/session path는 다음과 같이 바뀌어 버리는 것같습니다.

session.save_path    ../data/session      /var/lib/php4
세션경로는 임의로 생성하시면 됩니다.
기 설치해 본 결과 이전과 동일합니다.

상기된 코멘트 중에서 안전모드(safe_mode)에 의해
비활성화 되는 함수들이라는 코멘트를 참조하시면,
외부(웹 명령에 의해 작동되어)에서 실행할 수 없는 명령은,
해당 경로(계정 내부)에서 지원되어야 만 사용할 수 있습니다.
이 부분에 대한 내용도 읽어 보시기 바랍니다.

-. 설치 및 설치 후 로그인 관련

-. 생성 및 검토할 경로 및 접근권한(퍼미션)
전체적인 퍼미션은 707(rwx----rwx) 이상으로 조정하셔야 됩니다.
/data/
/data/cheditor/
/data/file/
/data/index.php
/data/log/
/data/session/
/data/member/

최초 설치시 /data/session/ 경로가 생성되지 않고 퍼미션이 정상적으로 부여되어 있지 않다면,
계정 사용자가 셀로 접속해서 수동으로 변경하셔야 됩니다. (ftp 비추천 / 셀 작업 추천)

마찬가지로 /data/file/ 이하의 하위 경로도 게시판을 새로 생성시킬 때마다,
수동으로 생성해 주셔야 합니다.
이러한 과정을 수행하지 않는다면,
특정 게시판 생성 후 게시물 작성시 파일을 첨부할 경우 퍼미션 관련 오류를 발생시키며,
게시물 작성 불가 또는 파일첨부가 이루어지지 않습니다.

뭐 근본적인 문제는 외부에서 수행할 수 없는 명령과,
해당경로에서만 수행할 수 있는 명령(exec_dir())을 체크하고,
사용자 계정에 적절히 적용될 수 있느냐가 관건입니다만...


http://sir.co.kr/bbs/tb.php/cm_hanjul/51
© SIRSOFT
현재 페이지 제일 처음으로