[완료] 윈도우2000 APM 5(PHP_4.4.2)(mysql_4.0.26-nt-max)(Apache_1.3.34) 에서 Cent OS 로 홈페이지 옮기기
글쓴이: zamia / 작성시간: 수, 2008/05/28 - 9:46오후
3일째 삽질하다 허리 끊어질 정도로 초짜가 퍼덕퍼덕 하다 못해 가라안고 있습니다. ㅠㅠ 제목대로 윈도우2000 APM 5(PHP_4.4.2)(mysql_4.0.26-nt-max)(Apache_1.3.34) 에서 Cent OS 로 홈페이지 옮기는 작업을 하고있습니다. Cent OS(PHP 5.1.6) (mysql 5.0.8)(Apache_ 2.0.59) 입니다. 옮기는 것은 폴더 tgz로 압축해서(알집으로) FTP를 이용하여업로드후 CentOS에다가 풀었습니다. DB는 mysqldump -uxxxx -p db명 > backup.sql 로 뜬후 mysql -uxxx -p db명 < backup.sql 로 넣어주었습니다. 물론 DB계정 생성시 관련 권한(Localhost,%) 쪽으로 다주었고 필요한 권한 Select,insert 등도 Y로 주어서 처리 했습니다. 1차 문제 Database 명을 대소문자 구분하더군요.. 하여 my.cnf 에서 lower_case_table_name = 1 로 바꾸어줄라다가 이미 CS로 사용하는 DB가 있어서 이러지도 못하고 저러지도 못하고 하여 옮겨온 홈페이지 DB Table 네임을 alter table table명 rename table명 으로 대문자 주고 바꾸어 주니 DB가 잘붙고 게시판 기능도 정상으로 되었습니다. 가장큰 문제 미해결... 로그인이 안되고 하얀 백지만 나옵니다. php를 잘몰라서 소스를 올립니다. =================================================================================== DbConn.php 부분입니다. <? $Db_Name = "xxxxxx"; $Db_User = "xxxx"; $Db_Pass="xxxx"; $sql_ip="???.??????.???"; <--- 요거에 도메인도 넣어봤구요 IP도 넣어봤구요, Localhost 도 넣어봤습니다.(모두 연결됩니다.) $_dbconn = mysql_connect("$sql_ip","$Db_User","$Db_Pass") or die("DB connect error"); mysql_select_db("$Db_Name",$_dbconn); ?> ========================================================================================= 로그인 메인 페이지 부분 main.php <? header('P3P: CP="NOI CURa ADMa DEVa TAIa OUR DELa BUS IND PHY ONL UNI COM NAV INT DEM PRE"'); include "include/head_index.php"; include "include/DbConn.php"; include "include/Tpl_Header.php"; $from = $PHP_SELF; ?> <script language=javascript> <!-- function login() { var f = document.logform; if (f.uid.value == "") { alert("ID를 입력해 주세요"); f.uid.focus(); return; } if (f.pwd.value == "") { alert("Password를 입력해 주세요"); f.pwd.focus(); return; } f.action = "/08_member/DoLogin.php"; f.submit(); } function logout() { document.logform.action = "<?=$memPath?>/logout.php?skinm=<?=$skinm?>"; document.logform.submit(); } function join(url) { window.open(url,'회원가입','width=620,height=500,left=300,top=200,scrollbars=yes'); } function edit(url2) { window.open(url2,'회원정보수정','width=620,height=500,left=300,top=200,scrollbars=yes'); } function findpwd(url) { window.open(url,'비밀번호찾기','width=422,height=300,left=300,top=200,scrollbars=no'); } //--> </script> <tr> <td valign="top"><table width="870" border="0" cellspacing="0" cellpadding="0"> <tr> <td width="395" align="left" valign="bottom"><object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://download.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=6,0,29,0" width="380" height="480"> <param name="movie" value="visual.swf"> <param name="quality" value="high"> <embed src="visual.swf" quality="high" pluginspage="http://www.macromedia.com/go/getflashplayer" type="application/x-shockwave-flash" width="380" height="480"></embed> </object></td> <td valign="top"><table width="100%" border="0" cellspacing="0" cellpadding="0"> <tr> <td height="54"><table width="100%" height="32" border="0" cellpadding="0" cellspacing="0" bgcolor="E9E9E9"> <form name=logform method=post action=""> <input type=hidden name=from value="<?=$from?>"> <? if($session_id) { ?> <tr> <td width="110"><img src="images/00_login_title.gif" width="110" height="32"></td> <td style="padding-left:10px"><?=$session_name?>님 환영합니다!</td> <td width="140"><a href="08_member/member_01_edit.php" onfocus="this.blur();"><img src="images/bt_privateedit.gif"hspace="10" border="0" align=absmiddle></a><a href="08_member/Logout.php?from=<?=$from?>" onfocus="this.blur();"><img src="images/bt_logout.gif" border="0"></a></td> <td width="5"><img src="images/00_login_right.gif" width="5" height="32"></td> </tr> <? } else { ?> <tr> <td width="110"><img src="images/00_login_title.gif" width="110" height="32"></td> <td width="40" align="right"><img src="images/00_login_id.gif" width="8" height="32" hspace="4"></td> <td><input name="uid" type="text" class="input_login" size="10" style="ime-mode:disabled"></td> <td width="30" align="right"><img src="images/00_login_pw.gif" width="12" height="32" hspace="4"></td> <td><input name="pwd" type="password" class="input_login" size="10"></td> <td width="140"><input type=image src="images/00_login_bt.gif" width="36" height="17" hspace="10" border="0" onmouseover="this.style.cursor='hand';" align=absmiddle onclick="javascript:login();" onfocus="this.blur();"><a href="javascript:findpwd('08_member/search.php');" onfocus="this.blur();"><img src="images/00_login_search_bt.gif" width="66" height="17" border="0"></a></td> <td width="5"><img src="images/00_login_right.gif" width="5" height="32"></td> </tr> <? } ?> </form> ~~~ 쭉 이어지는 소스는 게시판 항목 5개씩 조회해서 보여주는 소스인데 길어서 패스 ========================================================================================================= DoLogin.php 소스 부분 입니다. <? header('P3P: CP="NOI CURa ADMa DEVa TAIa OUR DELa BUS IND PHY ONL UNI COM NAV INT DEM PRE"'); session_start(); ?> <? include "../Include/DbConn.php"; include "../Include/Tpl_Header.php"; include "../Admin/Include/AdminInfo.php"; if ($admin_id != $uid) { $query = "select id,pwd,name,email,homepage from Members where id='$uid'"; $result = mysql_query($query,$_dbconn) or die(mysql_error()); if($result) $result_count = mysql_num_rows($result); else $result_count = 0; if ($result_count < 1) { ?> <script language=javascript> <!-- alert("존재하지 않는 아이디 입니다."); history.back(); //--> </script> <? } else { while($fields = @mysql_fetch_array($result,MYSQL_ASSOC)) { if ($fields["pwd"] != $pwd) { ?> <script language=javascript> <!-- alert("비밀번호가 일치하지 않습니다."); history.back(); //--> </script> <? } else $session_id = $fields["id"]; $session_email = $fields["email"]; $session_name = $fields["name"]; $session_home = $fields["homepage"]; session_register("session_id"); session_register("session_email"); session_register("session_name"); session_register("session_home"); //SetCookie( "savelogin", $fields['id']); movepage($from); } mysql_free_result($result); } } else { if ($pwd == $admin_pwd) { $session_id = $admin_id; $session_email = $admin_mail; $session_name = $admin_name; $session_home = $admin_home; session_register("session_id"); session_register("session_mail"); session_register("session_name"); session_register("session_home"); movepage($from); } else { ?> <script language=javascript> <!-- alert("비밀번호가 일치하지 않습니다."); history.back(); //--> </script> <? } } ?> ========================================================================================= Tpl_Header.php 부분 입니다. <? $TPL_PATH = $_cur_dir."/Board"; $pagesize = 12; $skippage = 10; function msgback($msg) { echo "<script language=javascript>\n\r"; echo "alert(\"".$msg."\");\n\r"; echo "history.back();\n\r"; echo "</script>"; exit; } function isblank($str) { $temp=str_replace(" ","",$str); $temp=str_replace("\n","",$temp); $temp=strip_tags($temp); $temp=str_replace(" ","",$temp); $temp=str_replace(" ","",$temp); if(eregi("[^[:space:]]",$temp)) return 0; return 1; } function movepage($url) { global $dbconn; echo"<meta http-equiv=\"refresh\" content=\"0; url=$url\">"; if($dbconn) @mysql_close($dbconn); exit; } function isAllowExt($fname,$more) { if($more){ $bret = false; $more = explode(",",$more); for($i=0;$i<count($more);$i++) { if(eregi("(\.".trim($more[$i]).")$",$fname)) { $bret = true; break; } } return $bret; } if( eregi("(\.php)$",$fname) || eregi("(\.phtm)$",$fname) || eregi("(\.inc)$",$fname) || eregi("(\.htm)$",$fname) || eregi("(\.html)$",$fname) || eregi("(\.shtm)$",$fname) || eregi("(\.shtml)$",$fname) || eregi("(\.asp)$",$fname) || eregi("(\.pl)$",$fname) || eregi("(\.vbs)$",$fname) || eregi("(\.cgi)$",$fname) ) return false; else return true; } // By ZBoard function autolink($str) { // URL 치환 $homepage_pattern = "/([^\"\'\=\>])(mms|http|HTTP|ftp|FTP|telnet|TELNET)\:\/\/(.[^ \n\<\"\']+)/"; $str = preg_replace($homepage_pattern,"\\1<a href=\\2://\\3 target=_blank>\\2://\\3</a>", " ".$str); // 메일 치환 $email_pattern = "/([ \n]+)([a-z0-9\_\-\.]+)@([a-z0-9\_\-\.]+)/"; $str = preg_replace($email_pattern,"\\1<a href=mailto:\\2@\\3>\\2@\\3</a>", " ".$str); return $str; } function getSizeString($size, $flag /* "kb" or "mb" */) { if(!$size) $str = "0 Byte"; if(eregi("kb",$flag)) { $str = sprintf("%0.2f KByte",$size/1024); } else if(eregi("mb",$flag)) { $str = sprintf("%0.2f MBytes",$size/(1024*1024)); } else{ $str = sprintf("%0.2f KBytes",$size/1024); } return $str; } function getSafeImgSize($img) { $width = 500; $s = getimagesize($img); $iwidth = $s[0]; if ($iwidth > $width){ $iwidth = $width-20; } return " width=$iwidth "; } function getCutString($str, $len) { if ($len >= strlen($str)) return $str; $klen = $len - 1; while(ord($str[$klen]) & 0x80) $klen--; return substr($str, 0, $len - (($len + $klen + 1) % 2)); } function fileremove($filepath) { $delete = @unlink($filepath); if (@file_exists($filepath)) { $filesys = eregi_replace("/","\\",$filename); $delete = @system("del $filesys"); if (@file_exists($filepath)) { $delete = @chmod ($filepath, 0775); $delete = @unlink($filepath); $delete = @system("del $filesys"); } } return $delete; } ?> ============================================================================= 3일 삽질하다 하다 보니 PHP 버젼이나 Mysql 버젼이 상위 버젼으로 되면서 여러가지 설정을 변경해야 되는 것을 알았습니다. 하여 OLD_PASSWORD=1 , register_globals = on, register_long_arrays = on, 도 하였습니다. 헌데 위에 항목하고는 관계가 없는듯 보입니다. 홈페이지 게시판은 직접 4년전에 구축된거라 직접 구현한 게시판입니다. 다른 게시판 항목 조회 보기 등은 이상없이 되나 Id,PWD 넣은다음 Login 만 누르면 백지가 나오고 하다못해 잘못된 ID를 넣으면 잘못된 아이디라고 멘트라도 나와야하는데 그렇지가 못합니다 의심되는 부분이 Session()부분과 main.php 에서 DoLogin.php 로 넘어 가지를 않는다는 거죠. 이것을 어떻게 해결해야 될지 고수님의 의견 부탁 드립니다. ㅠㅠ..
Forums:
include
include "../Include/DbConn.php";
include "../Include/Tpl_Header.php";
include "../Admin/Include/AdminInfo.php";
경로 대소문자 문제였습니다. ㅠㅠ
댓글 달기