#

# Alias 설정

#


<IfModule alias_module>


    Alias /myadmin/ "C:/APM_Setup/Server/phpMyAdmin/"

    <Directory "C:/APM_Setup/Server/phpMyAdmin">

        Options MultiViews

        AllowOverride None

        Order deny,allow

        deny from all

        Allow from 127.0.0.1

    </Directory>


</IfModule>



이 부분에서.


#

# Alias 설정

#


<IfModule alias_module>


    Alias /myadmin/ "C:/APM_Setup/Server/phpMyAdmin/"

    <Directory "C:/APM_Setup/Server/phpMyAdmin">

        Options MultiViews

        AllowOverride None

        Order allow,deny

        Allow from all

    </Directory>


</IfModule>


이렇게 바꾸시면 됩니다.

설정 파일은


APM_Setup\Server\Apache\conf\extra\httpd-alias.conf


입니다,.


[출처]

http://www.apmsetup.com/board.php?bid=511&bs_type=&bs_str=&pg=180&mode=view&uid=20151


Posted by 모과이IT
,

NT에서의 SVN설치는 다소 쉽다.

1. 옮길려는 NT서버에 visualSVN Server 설치
- https://www.visualsvn.com/server/
- 무료인 Standard Edition 또는 유료 Enterprise Edition

2. Repositories 복사
- 원본 서버에서 VisualSVN Server Manager 실행
- [동작]-[모든작업]-[Start Comand Prompt] 실행

- svnadmin hotcopy 복사원본repository경로 복사위치
ex) svnadmin hotcopy d:/repositories/target d:/repos-backup2
- 또는 svnadmin dump 복사원본 복사위치
ex) svnadmin dump d:/repositories/target > d:/repos-backup2.dump

3. 복사된repositories를 옮길려는 NT서버로 복사
-일반적으로 c: 또는 d: 의 repositories 폴더 내

4. visualSVN server manager에서 좌측 repostitories 노드를 우클릭 후 [Import Existing Repository.]


5. Users 및 Groups 복사
- 원본 서버의 Repositories폴더 내 authz, authz-windows, htpasswd 파일을 복사하여 
신규 서버 내 Repositories폴더 내로 옮겨줌
-예전 버전 2 당시에는 authz 파일 내에 groups 정보가 들어 있었지만 3.3.0 버전 부터 groups.conf 파일로 옮겨짐
-따라서 다른 버전 간 복사시에는 authz 파일 내 [groups]부분 이하 내용을 groups.conf파일로 복사해줌


Move visualSVN to New NT server.

1. Install VisualSVN on new NT server.
- https://www.visualsvn.com/server/

2. Backup repositories
- excute "VisualSVN Server Manager"
- Click [Action]-[All tasks]-[StartCommand Prompt] on upper tab menu
- Using svnadmin hotcopy or svnadmin dump
ex) svnadmin hotcopy d:/repositories/target_repository d:/repos-backup2
ex) svnadmin dump d:/repositories/target_repository > d:/repos-backup2.dump

3. copy backup repositories files to new NT server

4. select repositories node and right clikc, then select [Import Existing Repository] 
on left space on visualSVN server manager on new NT server

5. copy Users and Groups
- If visualSVN is older than version 3.3 on older server, 
copy authz, authz-windows, htpasswd in "Repositories" folder to "Repositories" folder on New server
- copy contents of below [groups] in authz to groups.conf(It is groups info file upper version 3)



[출처]

http://egloos.zum.com/zeraf29/v/5892622

Posted by 모과이IT
,

1. apmsetup 설치

2. 설치한 컴의 윈도우 방화벽 제어판에 -> 고급 -> 인바운드 -> mysql 포트 3306 TCP 추가

3. mysql workbench로 'anywhere'로 설정한 계정으로 DB 접속


성공~!


Posted by 모과이IT
,

INNODB를 사용해야 하는데 PHPMyAdimn에서는 데이터베이스를 만들 때 innoDB로 생성할 수 있도록 선택할 수 있는 부분이 없네요.

어떻게 하면 DB를 innoDB로 만들 수 있나요?

??? 2007-11-13 14:47:18  
APM_Setup\my.ini 파일을 열으셔서

# INNODB타입을 사용할지 하지 않을지
skip-innodb

부분을

# INNODB타입을 사용할지 하지 않을지
#skip-innodb

으로 수정 하신 후

mySQL 서버를 다시 시작하시면 사용 하실 수 있습니다.
Posted by 모과이IT
,

///////////////////////////// 주소록 시도, 구군 2단계 //////////////////////

String [] strSido={"서울","부산","대구","인천","광주","대전","울산","강원","경기","경남","경북","전남","전북","제주","충남","충북"};
String [][] strGugun= { {"강남구","강동구","강북구","강서구","관악구","광진구","구로구","금천구","노원구","도봉구","동대문구","동작구","마포구","서대문구","서초구","성동구","성북구","송파구","양천구","영등포구","용산구","은평구","종로구","중구","중랑구"},
{"강서구","금정구","남구","동구","동래구","부산진구","북구","사상구","사하구","서구","수영구","연제구","영도구","중구","해운대구","기장군"},
{"남구","달서구","동구","북구","서구","수성구","중구","달성군"},
{"계양구","남구","남동구","동구","부평구","서구","연수구","중구","강화군","옹진군"},
{"광산구","남구","동구","북구","서구"},
{"대덕구","동구","서구","유성구","중구"},
{"남구","동구","북구","중구","울주군"},
{"강릉시","동해시","삼척시","속초시","원주시","춘천시","태백시","고성군","양구군","양양군","영월군","인제군","정선군","철원군","평창군","홍천군","화천군","횡성군"},
{"고양시 덕양구","고양시 일산동구","고양시 일산서구","과천시","광명시","광주시","구리시","군포시","김포시","남양주시","동두천시","부천시 소사구","부천시 오정구","부천시 원미구","성남시 분당구","성남시 수정구","성남시 중원구","수원시 권선구","수원시 영통구","수원시 장안구","수원시 팔달구","시흥시","안산시 단원구","안산시 상록구","안성시","안양시 동안구","안양시 만안구","양주시","오산시","용인시 기흥구","용인시 수지구","용인시 처인구","의왕시","의정부시","이천시","파주시","평택시","포천시","하남시","화성시","가평군","양평군","여주군","연천군"},
{"거제시","김해시","마산시","밀양시","사천시","양산시","진주시","진해시","창원시","통영시","거창군","고성군","남해군","산청군","의령군","창녕군","하동군","함안군","함양군","합천군"},
{"경산시","경주시","구미시","김천시","문경시","상주시","안동시","영주시","영천시","포항시 남구","포항시 북구","고령군","군위군","봉화군","성주군","영덕군","영양군","예천군","울릉군","울진군","의성군","청도군","청송군","칠곡군"},
{"광양시","나주시","목포시","순천시","여수시","강진군","고흥군","곡성군","구례군","담양군","무안군","보성군","신안군","영광군","영암군","완도군","장성군","장흥군","진도군","함평군","해남군","화순군"},
{"군산시","김제시","남원시","익산시","전주시 덕진구","전주시 완산구","정읍시","고창군","무주군","부안군","순창군","완주군","임실군","장수군","진안군"},
{"제주시","서귀포시"},
{"계룡시","공주시","논산시","보령시","서산시","아산시","천안시 동남구","천안시 서북구","금산군","당진군","부여군","서천군","연기군","예산군","청양군","태안군","홍성군"},
{"제천시","청주시 상당구","청주시 흥덕구","충주시","괴산군","단양군","보은군","영동군","옥천군","음성군","증평군","진천군","청원군"}
};


Posted by 모과이IT
,

1) php 코드 파일 소스


<?php


header("Content-Type: text/html; charset=UTF-8");


?>


<script src="http://dmaps.daum.net/map_js_init/postcode.v2.js"></script>

<script>

    new daum.Postcode({

        oncomplete: function(data) {

    

if(data.userSelectedType=="R"){

window.SmartKiKiApp.testMove(data.zonecode, data.roadAddress);

}

else{

window.SmartKiKiApp.testMove(data.zonecode, data.jibunAddress);

}

    

        }

    }).open();

</script>


2) android 소스

// 주소검색관련
Dialog dialogWeb;
private final Handler handler = new Handler();
private class AndroidBridge {
public void testMove(final String arg1,final String arg2) { // must be final
handler.post(new Runnable() {
@Override
public void run() {
// 원하는 동작
Log.d("moguwai","핸들러 호출!!");
Log.d("moguwai",arg1);Log.d("moguwai",arg2);
etZipcode1.setText(arg1);etZipcode2.setText(arg2);
dialogWeb.dismiss();
//mWebView.loadUrl(arg);
}
});
}
}

public void init(){

...........
dialogWeb = new Dialog(this);// WebDialog 초기화

.....

}

@Override
public void onClick(View v) {

...........

case R.id.btn_zipsearch:
Util.Toast(this, "검색버튼 클릭");
dialogWeb.setContentView(R.layout.web_dialog);
WebView wb = (WebView) dialogWeb.findViewById(R.id.webview);
wb.getSettings().setJavaScriptEnabled(true);
// wb.getSettings().setJavaScriptEnabled(true);
wb.getSettings().setJavaScriptCanOpenWindowsAutomatically(true);
wb.addJavascriptInterface(new AndroidBridge(), "SmartKiKiApp");

// wb.setWebViewClient(new MyWebViewClient());
wb.setWebChromeClient(new WebChromeClient());
wb.loadUrl("http://121.182.120.85/jimin.php");
dialogWeb.setCancelable(true);
dialogWeb.setTitle("주소검색");
dialogWeb.show();
break;
..............
}


Posted by 모과이IT
,

https://support.office.com/en-us/article/Add-holidays-and-vacation-days-83497cbf-9b6e-4805-8603-2a89038290a0

Posted by 모과이IT
,

var gcm = require('node-gcm');


// create a message with default values

var message = new gcm.Message();


// or with object values

var message = new gcm.Message({

    collapseKey: 'demo',

    delayWhileIdle: false,

    timeToLive: 3,

    data: {

        title: '스마트키키 GCM ',

        message: '개별 푸시 테스트 절전',

        custom_key1: 'custom data1',

        custom_key2: 'custom data2'

    }

});


// Server Key

var server_access_key = 'AIzaSyBvbex9ynazbWM8YHwIWS9sl8c4eMWy7UE';

var sender = new gcm.Sender(server_access_key);

var registrationIds = [];


// 폰에서 생성된 토큰 개별푸시할때 이걸로 

// db에서 1세, 2세 3세의 유저들에게 개별 푸시를 보내준다

var registration_id = 'dAdP7TmKFNA:APA91bG_bT_LtzaTOJFqfBz3EU7YYVuC2wQFzN6HCZiaPi5Ng7nQWerQhRwIfes65YQxPLlYOgOrpNsNxMSb9aJBR_Db2Xa5FzYOL7h4v50-RcCSS-l0rtd4cNNhS3uD9KdmaKOpCqwb';

// At least one required

registrationIds.push(registration_id);


/**

 * Params: message-literal, registrationIds-array, No. of retries, callback-function

 **/

sender.send(message, registrationIds, 4, function (err, result) {

    console.log(result);

});

Posted by 모과이IT
,

<?php 
include_once 'class.push.php'
$push = new pushmessage(); 

$params = array("pushtype"=>"android"$idphone=>"android_smart_phone_id_here"$mst=>"Hello, an android user"); 
$rtn $push->sendMessage($params); 
//print_r($rtn); 


=========================================================================================


class.push.php


<?php 
/** 
 * Copyright 2014 Shop-Wiz.Com. 
 * 
 * Licensed under the Apache License, Version 2.0 (the "License"); you may 
 * not use this file except in compliance with the License. You may obtain 
 * a copy of the License at 
 * 
 * http://www.apache.org/licenses/LICENSE-2.0 
 * 
 * Unless required by applicable law or agreed to in writing, software 
 * distributed under the License is distributed on an "AS IS" BASIS, WITHOUT 
 * WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. See the 
 * License for the specific language governing permissions and limitations 
 * under the License. 
 */ 

class pushmessage
     
     
     
    public 
$androidAuthKey "Android Auth Key Here"
    public 
$iosApnsCert "./certification/xxxxx.pem"
    
     
/** 
     * For Android GCM 
     * $params["msg"] : Expected Message For GCM 
     */ 
    
private function sendMessageAndroid($registration_id$params) { 
        
$this->androidAuthKey "Android Auth Key Here";//Auth Key Herer 
         
        ## data is different from what your app is programmed 
        
$data = array( 
                
'registration_ids' => array($registration_id), 
                
'data' => array( 
                                
'gcm_msg' => $params["msg"
                            ) 
                ); 
         
         
        
$headers = array( 
        
"Content-Type:application/json"
        
"Authorization:key=".$this->androidAuthKey 
        
); 
         
         
        
$ch curl_init(); 
        
curl_setopt($chCURLOPT_URL"https://android.googleapis.com/gcm/send"); 
        
curl_setopt($chCURLOPT_SSL_VERIFYHOST0); 
        
curl_setopt($chCURLOPT_SSL_VERIFYPEER0); 
        
curl_setopt($chCURLOPT_RETURNTRANSFERtrue); 
        
curl_setopt($chCURLOPT_HTTPHEADER$headers); 
        
curl_setopt($chCURLOPT_POSTtrue); 
        
curl_setopt($chCURLOPT_POSTFIELDSjson_encode($data)); 
        
$result curl_exec($ch); 
        
//result sample {"multicast_id":6375780939476727795,"success":1,"failure":0,"canonical_ids":0,"results":[{"message_id":"0:1390531659626943%6cd617fcf9fd7ecd"}]} 
        //http://developer.android.com/google/gcm/http.html // refer error code 
        
curl_close($ch); 
        
        
$rtn["code"] = "000";//means result OK 
        
$rtn["msg"] = "OK"
        
$rtn["result"] = $result
        return 
$rtn
        
     } 
     
     
    
/** 
     * For IOS APNS 
     * $params["msg"] : Expected Message For APNS 
     */ 
    
private function sendMessageIos($registration_id$params) { 
        
        
$ssl_url 'ssl://gateway.push.apple.com:2195'
        
//$ssl_url = 'ssl://gateway.sandbox.push.apple.com:2195; //For Test 
        
        
$payload = array(); 
        
$payload['aps'] = array('alert' => array("body"=>$params["msg"], "action-loc-key"=>"View"), 'badge' => 0'sound' => 'default'); 
        
## notice : alert, badge, sound 

                 
        ## $payload['extra_info'] is different from what your app is programmed, this extra_info transfer to your IOS App 
        
$payload['extra_info'] = array('apns_msg' => $params["msg"]); 
        
$push json_encode($payload); 
         
        
//Create stream context for Push Sever. 
        
$streamContext stream_context_create(); 
        
stream_context_set_option($streamContext'ssl''local_cert'$this->iosApnsCert); 

        
$apns stream_socket_client($ssl_url$error$errorString60STREAM_CLIENT_CONNECT$streamContext); 
        if (!
$apns) { 

            
$rtn["code"] = "001"
            
$rtn["msg"] = "Failed to connect ".$error." ".$errorString
            return 
$rtn
        } 
         
        
//echo 'error=' . $error; 
        
$t_registration_id str_replace('%20'''$registration_id); 
        
$t_registration_id str_replace(' '''$t_registration_id); 
        
$apnsMessage chr(0) . chr(0) . chr(32) . pack('H*'str_replace(' '''$t_registration_id)) . chr(0) . chr(strlen($push)) . $push
         
        
$writeResult fwrite($apns$apnsMessage); 
        
fclose($apns); 
        
        
$rtn["code"] = "000";//means result OK 
        
$rtn["msg"] = "OK"
        return 
$rtn

    }
//private function sendMessageIos($registration_id, $msg, $link, $type) { 
           
            
        
       /** 
     * Send message to SmartPhone 
     * $params [pushtype, msg, registration_id] 
     */ 
       
public function sendMessage($params){ 
           
        
//$parm = array("msg"=>$params["msg"]); 
        
if($params["registration_id"] && $params["msg"]){ 
               switch(
$params["pushtype"]){ 
                   case 
"ios"
                    
$this->sendMessageIos($params["registration_id"], $params); 
                    break; 
                case 
"android"
                    
$this->sendMessageAndroid($params["registration_id"], $params); 
                    break; 
               } 
        } 

       } 
    
   
    
/* 
     * Sample For database 
     * regist phone Id from Phone to Mysql via controllers 
     * Look a tableSchema at the bottom 
     * @ $params["appType"] : android or ios.. 
     * @ $params["appId"] : //APA91bGEGu5NSyYDYp5OMO4mZ0j1n2DznGARaNFVcCYfLHvHat..... or 6b1653ad818a89fc6937f5067a9b372aec79edeb9504d6ef.... 
     **/ 
    
public function registration($params){ 
        
$pushtype $params["pushtype"]; 
        
$idphone $params["idphone"]; 
        
        
print_r($params); 
        
//{insert into database} 
        
echo json_encode($rtn); 
    } 
     
     
    
/** 
     * Step 2. 
     * Send message to each iphone from web App. 
     * @params : Array() : messages () 
     */ 
    
public function send($params){ 
        
//$sql = "select pushtype, idphone from gcmapns "; 
       // $rows = $CI->db->get_rows($sql); 
       //get data from database and save to $rows 
        
if(is_array($rows)){ 
            foreach(
$rows as $key => $val){ 
                switch(
$val["pushtype"]){ 
                    case 
"ios"
                        
$rtn $this->sendMessageIos($val["idphone"], $params); 
                        break; 
                    case 
"android"
                        
$rtn $this->sendMessageAndroid($val["idphone"], $params); 
                        break; 
                }
//switch($val["pushtype"]){ 
            
}//foreach($rows as $key => $val){ 
        
}//if(is_array($rows)){ 

         
    
}//function send(){ 
            
         
     

                 

Posted by 모과이IT
,

상식적이지만 의외로 이것때문에 삽질을 하였다.


1) 안드로이드 프로젝트 파일

2) php 프로젝트 파일

3) mysql DB서버


3곳 모두 같은 인코딩 이어야지 된다. 그러면 프로그래밍적으로 어느곳에서서든 utf8로 변환 하거나 그럴 필요

자체가 없는것이다. 그런걸 감안해서 안드로이드이드 혹은 php 코딩일하는 파일의 인코딩 방식이 일치하는지

확인해야한다. 참고로 필자는 php코드를 notepad++에서 기본 "ANSI"로 되어진것을 utf8로 인코딩 covert를 하지 않고 웹에서 한글이 깨어져서 순간 당황했던 경험이 있다. 


Posted by 모과이IT
,