본문 바로가기

분류 전체보기

(54)
php exec 실행안될때 확인 $command = "sqlldr aaa/aaaa@123123123:1521/orcl \ control='".$this->arr_sqlldr_filename['ctl']."' \ data='".$this->data_file.".dat' \ bad='".$this->arr_sqlldr_filename['bad']."' \ discard='".$this->arr_sqlldr_filename['dsc']."' \ log='".$this->arr_sqlldr_filename['log']."'";e..
가상서버 웹, DB 서버 분리 일단 오라클 VM 을 사용했다. 개발용으로 웹서버와 DB를 하나의 가상서버에 몰아두고 사용했으나 다른 사람과 페이지를 공동으로 개발할 일이 생겨서 기존 개인적으로 사용하던 DB에 접근을 못하게 웹과 DB서버를 분리하는 작업을 했다.vm들의 os는 리눅스다.(centos7) - 호스트pc = 로컬 PC 를 의미 ( 내 컴퓨터 그 자체)- VM(가상머신) = 호스트 내에 구축된 PC를 의미 일단 가상네트워크는 이정도만 알고 작업했다.Host-only : 외부와 단절된 네트워크로 vm 끼리만 통신 가능NAT : 호스트pc로 부터 ip를 할당받아 vm이 자체 DHCP서버를 띄워 내부 네트워크 대역 할당 및 통신, 호스트pc를 통해 외부 네트워크와 통신 가능(호스트pc ip로 접근하여 올 때 분기시키는 방식)Br..
php empty null 값 체크를 위해 empty 함수를 활용하려는데 좀 예상치못한 결과가 있었다.$tmp = $_POST['tmp'];if(empty($tmp)){ print_r("비어있음);}대강 저런식이였는데 tmp 에 문자열 0 이 들어가면 빈값으로 인지한다는 것이다.문자열 0 까지 empty 처리 되는지는 몰랐다;;;0이라는 값이 들어올 가능성이 있는 경우empty 대신 isset 을 같이 써주고 0 처리를 따로 해주자$tmp = $_POST['tmp'];if (isset($tmp) && $tmp !== "0") { print_r("설정안되어있음");}
javascript input 데이터 post 전송 제한 꽤나 많은 input 데이터들을 저장해야하는 일이 있었다.평소에 하듯이 ajax 로 직렬화를 한 후 post로 데이터를 넘기는데 큰 이상이 없었는데 데이터를 확인해보니 일정 이상 input 데이터가 들어오지 않고 짤려있었다.특별한 오류도 화면에 나오지 않았던터라 문제없는줄 알았으나 아니였던 것... 일단 확인해볼것은 메모리 문제사실 메모리문제면 처리하는 동안 화면도 멈출테고 완료 메세지도 return이 되지 않겠지만 확인해보면 결과 역시 메모리문제는 아니였다. memory limit를 무한대로 줘도 그대로였다. 두번째로는 POST 용량제한 다른 언어는 모르겠다만 작업한 php에서는 post 로 받아올때 용량제한이 걸려있다. 사실 이것도 warning이 뜨는것으로 알고있었으나 혹시나 하는 마음에 확인해본결..
코드이그나이터3, 세션생성오류 코드이그나이터3(이하 CI3) 과 PHP 7.1 버젼을 사용하면서 세션에서 문제가 생겼다. 분명 컨트롤러에서는 생성이 되는데 view 로 리다이렉션만 해버리면 세팅한 세션이 사라지고 ci_last_regenerate] => 1627888197 이런 것만 남게되는 상황이다. ​ session_start() 를 해봐도 이미 세션은 시작되어있다고 나와있었고 config 파일에서 세션저장을 db로도 file 로도 해보고...참 많은 삽질을 한 결과 CI3 버젼과 PHP 7.1 버젼에서만 세션 오류가 생긴다는걸 확인할수 있었다. 해결은 CI3에 system/libraries/Session.php 파일에 들어가서 대략 130라인에 // Sanitize the cookie, because apparently PHP ..
php sftp로 폴더 업로드 필요한 서버에 sftp로 폴더 업로드 소스 개인적으로 사실 요즘 잘 안쓰긴 하다만... 그래도 예전에 네이버에 작성했던 글을 다시 읽으며 코드를 다시 보는게 재밌긴하다. $strServer = $host; $strServerPort = $port; $strServerUsername = $username; $strServerPassword = $pw; $resConnection = ssh2_connect($strServer, $strServerPort); if(ssh2_auth_password($resConnection, $strServerUsername, $strServerPassword)) { $sftp = ssh2_sftp($resConnection); $dir = ssh2_exec($resConne..
php 서버내의 폴더, 파일 압축 function dirZip($resource,$dir) { if(filetype($dir) === 'dir') { clearstatcache(); if($fp = @opendir($dir)) { while(false !== ($ftmp = readdir($fp))){ if(($ftmp !== ".") && ($ftmp !== "..") && ($ftmp !== "")) { if(filetype($dir.'/'.$ftmp) === 'dir') { clearstatcache(); // 디렉토리이면 생성하기 $resource->addEmptyDir($dir.'/'.$ftmp); set_time_limit(0); $this->dirZip($resource,$dir.'/'.$ftmp); } else { // 파..
테이블 LOCK 작업을 하는데 특정 테이블의 update가 안되는 이슈가 있었다. 단순 오류가 아니라 update 쿼리 실행시 db가 그대로 잠겨 페이지 또한 올라오지 않았다. 원인을 먼저 찾아보기위해 세션을 확인하기 위한 쿼리를 실행했다. SELECT A.USERNAME AS 계정명, A.SCHEMANAME AS 스키마명, A.STATUS AS 활성화여부, A.SID AS 세션식별자, A.SERIAL# AS 시리얼번호, A.MACHINE AS OS머신명, A.PROGRAM AS OS프로그램명, A.TYPE AS 세션타입, A.LOGON_TIME AS 세션로그인날짜, B.FIRST_LOAD_TIME AS 처음실행한시각, B.SQL_TEXT AS 실행쿼리, C.TYPE AS 락타입 FROM V$SESSION A, V$SQ..

반응형