디렉토리 생성이 안되는데 문제가 뭘까요? 정보
디렉토리 생성이 안되는데 문제가 뭘까요?본문
Warning: mkdir(): open_basedir restriction in effect. File(/data/info) is not within the allowed path(s): (/home/jejugatour:/var/tmp:/tmp:/usr/local) in /home/jejugatour/jfc/info/info.lib.php on line 95
================== Error Message ===========================
에러 메시지 내용입니다.
그누보드4를 웹서비스 루트에 설치하여서 /data 디렉토리가 있습니다.
현재 이 곳은 Ower.Group이 nobody,nobody로 되어 있습니다.
ftp 로 파일을 올리면서 디렉토리를 만들어서 퍼미션 문제인 줄 알고
다시 지우고 웹 소스상에서
mkdir("$g4[path]/info", 0707);
이렇게 했는데 디렉토리가 생성이 안되고 에러만 납니다.
그런데 어드민에서 게시판을 생성하면 게시판은 제대로 생성이 됩니다.
답답하네요. 무엇이 문제일까요?
댓글 전체
info.lib.php on line 95
어떤 내용이 담겨있을까요?
상기된 오류메시지 중에서 open_basedir~*
경로지정(path)에서 '/'의 포함여부도 체크해 보실 필요가 보여집니다.
(관리자 권한을 갖고 있다면...)
팁앤테크 > 관리자(kagla)님의 게시물 참조.
어떤 내용이 담겨있을까요?
상기된 오류메시지 중에서 open_basedir~*
경로지정(path)에서 '/'의 포함여부도 체크해 보실 필요가 보여집니다.
(관리자 권한을 갖고 있다면...)
팁앤테크 > 관리자(kagla)님의 게시물 참조.
function insert_tour_info(){
$table = "kr_tour_info";
$uname = "inf_uid";
$int_uid = intval(trim($_REQUEST[int_uid])); //정보분류 고유번호 대분류/소분류
$area = trim($_REQUEST[area]); //지역분류
$name = trim($_REQUEST[name]); //관광지, 업소명
$m_desc = trim($_REQUEST[m_desc]); //메인 설명
$zip1 = trim($_REQUEST[zip1]); //우편번호1
$zip2 = trim($_REQUEST[zip2]); //우편번호2
$addr1 = trim($_REQUEST[addr1]); //주소1
$addr2 = trim($_REQUEST[addr2]); //주소2
$phone = trim($_REQUEST[phone]); //전화번호
$fax = trim($_REQUEST[fax]); //팩스번호
$map_desc = trim($_REQUEST[map_desc]); //안내도 설명
$remark = trim($_REQUEST[remark]); //안내도 설명
$desc = array();
$fare = array();
$desc_sql = "";
$desc_val = "";
for($i=0; $i<count($_REQUEST[desc]); $i++){
$desc[$i] = trim($_REQUEST[desc][$i]); //사진 i번 설명
$desc_sql = $desc_sql.sprintf("inf_desc%d, ", $i+1);
$desc_val = $desc_val.sprintf("'%s', ", $desc[$i]);
}
$fare_sql = "";
$fare_val = "";
for($i=0; $i<count($_REQUEST[fare]); $i++){
$fare[$i] = trim($_REQUEST[fare][$i]); //i번의 가격, 설명과 1:1 연결이 되지는 않는다.
$fare_sql = $fare_sql.sprintf("inf_fare%d, ", $i+1);
$fare_val = $fare_val.sprintf("'%s', ", $fare[$i]);
}
$car_num = trim($_REQUEST[car_num]); //주차가능대수
$car_fee = trim($_REQUEST[car_fee]); //승용주차료
$van_fee = trim($_REQUEST[van_fee]); //승합주차료
$open_time = trim($_REQUEST[open_time]); //개장시간
$see_time = trim($_REQUEST[see_time]); //관람소요시간
$group = trim($_REQUEST[group]); //단체기준인원
$x_value = intval(trim($_REQUEST[x_value])); //지도 X 값
$y_value = intval(trim($_REQUEST[y_value])); //지도 Y 값
$query = "INSERT INTO $table (
inf_int_uid, inf_area, inf_name, inf_m_desc,
inf_zip1, inf_zip2, inf_addr1, inf_addr2,
inf_phone, inf_fax, inf_map_desc, inf_remark,
$desc_sql
inf_car_num, inf_car_fee, inf_van_fee, inf_open_time, inf_see_time,
$fare_sql
inf_group,inf_x_value,inf_y_value,inf_up_date,inf_aid
) VALUES (
'$int_uid', '$area', '$name', '$m_desc',
'$zip1', '$zip2', '$addr1', '$addr2',
'$phone', '$fax', '$map_desc', '$remark',
$desc_val
'$car_num', '$car_fee', '$van_fee', '$open_time', '$see_time',
$fare_val
'$group', '$x_value', '$y_value', 'unix_timestamp()', 'www'
)";
//echo $query;
//exit();
sql_query($query);
$seq_id = mysql_insert_id();
$target_path = "$g4[path]/data/info";
// 디렉토리가 없다면 생성합니다. (퍼미션도 변경하구요.)
mkdir("$g4[path]/data/info", 0707);
chmod("$g4[path]/data/info", 0707);
$query = "";
$m_image_arr = array(); //메인 이미지
upload_single_file($m_image_arr, $target_path, $table, "inf_m_image", $uname, $seq_id);
if(count($m_image_arr)>0){
$query = $query."inf_m_image = '$m_image_arr[dest]',";
}
$map_arr = array(); //안내 지도
upload_single_file($map_arr, $target_path, $table, "inf_map", $uname, $seq_id);
if(count($map_arr)>0){
$query = $query."inf_map = '$map_arr[dest]',";
}
$etc_arr = array(); //기타 설명글
upload_single_file($etc_arr, $target_path, $table, "inf_etc", $uname, $seq_id);
if(count($etc_arr)>0){
$query = $query."inf_etc = '$etc_arr[dest]',";
}
$image_arr = array(); //추가 이미지
upload_plural_file($image_arr, $target_path, $table, "inf_image", $uname, $seq_id);
for($i=0; $i<count($image_arr); $i++){
$idx = sprintf("inf_image%d", $i+1);
$query = $query."$idx = '$image_arr[$i][dest]',";
}
if(strlen($query)>0){
$query = substr($query, 0, -1);
$query = "UPDATE $table SET $query WHERE $uname = $seq_id";
sql_query($query);
}
echo $query;
exit();
return $seq_id;
}
올라갈려나 모르겠지만.. 소스파일입니다. 함수호출형태로 되어 있습니다.
어디가 틀린 것인지 도움 부탁드립니다.
$table = "kr_tour_info";
$uname = "inf_uid";
$int_uid = intval(trim($_REQUEST[int_uid])); //정보분류 고유번호 대분류/소분류
$area = trim($_REQUEST[area]); //지역분류
$name = trim($_REQUEST[name]); //관광지, 업소명
$m_desc = trim($_REQUEST[m_desc]); //메인 설명
$zip1 = trim($_REQUEST[zip1]); //우편번호1
$zip2 = trim($_REQUEST[zip2]); //우편번호2
$addr1 = trim($_REQUEST[addr1]); //주소1
$addr2 = trim($_REQUEST[addr2]); //주소2
$phone = trim($_REQUEST[phone]); //전화번호
$fax = trim($_REQUEST[fax]); //팩스번호
$map_desc = trim($_REQUEST[map_desc]); //안내도 설명
$remark = trim($_REQUEST[remark]); //안내도 설명
$desc = array();
$fare = array();
$desc_sql = "";
$desc_val = "";
for($i=0; $i<count($_REQUEST[desc]); $i++){
$desc[$i] = trim($_REQUEST[desc][$i]); //사진 i번 설명
$desc_sql = $desc_sql.sprintf("inf_desc%d, ", $i+1);
$desc_val = $desc_val.sprintf("'%s', ", $desc[$i]);
}
$fare_sql = "";
$fare_val = "";
for($i=0; $i<count($_REQUEST[fare]); $i++){
$fare[$i] = trim($_REQUEST[fare][$i]); //i번의 가격, 설명과 1:1 연결이 되지는 않는다.
$fare_sql = $fare_sql.sprintf("inf_fare%d, ", $i+1);
$fare_val = $fare_val.sprintf("'%s', ", $fare[$i]);
}
$car_num = trim($_REQUEST[car_num]); //주차가능대수
$car_fee = trim($_REQUEST[car_fee]); //승용주차료
$van_fee = trim($_REQUEST[van_fee]); //승합주차료
$open_time = trim($_REQUEST[open_time]); //개장시간
$see_time = trim($_REQUEST[see_time]); //관람소요시간
$group = trim($_REQUEST[group]); //단체기준인원
$x_value = intval(trim($_REQUEST[x_value])); //지도 X 값
$y_value = intval(trim($_REQUEST[y_value])); //지도 Y 값
$query = "INSERT INTO $table (
inf_int_uid, inf_area, inf_name, inf_m_desc,
inf_zip1, inf_zip2, inf_addr1, inf_addr2,
inf_phone, inf_fax, inf_map_desc, inf_remark,
$desc_sql
inf_car_num, inf_car_fee, inf_van_fee, inf_open_time, inf_see_time,
$fare_sql
inf_group,inf_x_value,inf_y_value,inf_up_date,inf_aid
) VALUES (
'$int_uid', '$area', '$name', '$m_desc',
'$zip1', '$zip2', '$addr1', '$addr2',
'$phone', '$fax', '$map_desc', '$remark',
$desc_val
'$car_num', '$car_fee', '$van_fee', '$open_time', '$see_time',
$fare_val
'$group', '$x_value', '$y_value', 'unix_timestamp()', 'www'
)";
//echo $query;
//exit();
sql_query($query);
$seq_id = mysql_insert_id();
$target_path = "$g4[path]/data/info";
// 디렉토리가 없다면 생성합니다. (퍼미션도 변경하구요.)
mkdir("$g4[path]/data/info", 0707);
chmod("$g4[path]/data/info", 0707);
$query = "";
$m_image_arr = array(); //메인 이미지
upload_single_file($m_image_arr, $target_path, $table, "inf_m_image", $uname, $seq_id);
if(count($m_image_arr)>0){
$query = $query."inf_m_image = '$m_image_arr[dest]',";
}
$map_arr = array(); //안내 지도
upload_single_file($map_arr, $target_path, $table, "inf_map", $uname, $seq_id);
if(count($map_arr)>0){
$query = $query."inf_map = '$map_arr[dest]',";
}
$etc_arr = array(); //기타 설명글
upload_single_file($etc_arr, $target_path, $table, "inf_etc", $uname, $seq_id);
if(count($etc_arr)>0){
$query = $query."inf_etc = '$etc_arr[dest]',";
}
$image_arr = array(); //추가 이미지
upload_plural_file($image_arr, $target_path, $table, "inf_image", $uname, $seq_id);
for($i=0; $i<count($image_arr); $i++){
$idx = sprintf("inf_image%d", $i+1);
$query = $query."$idx = '$image_arr[$i][dest]',";
}
if(strlen($query)>0){
$query = substr($query, 0, -1);
$query = "UPDATE $table SET $query WHERE $uname = $seq_id";
sql_query($query);
}
echo $query;
exit();
return $seq_id;
}
올라갈려나 모르겠지만.. 소스파일입니다. 함수호출형태로 되어 있습니다.
어디가 틀린 것인지 도움 부탁드립니다.