클라우드로 micro 서버를 추가 한 뒤에

console.ncloud.com/server/server/connection-guide?type=LNX&instanceNo=5536925

 

뿌띠를 이용해 서버에 접속했다.

우선 mysql을 설치하려고

sudo apt-get install mysql-server

에러가 난다.

먼저 vi /etc/hosts  해서

127.0.0.1 에 있는 localhost 를 서버이름으로 바꿔준다.

그 뒤에도 또 에러가 나는데

Fail to fetch .... all.deb 404 not found 라고

sudo apt update

위 명령으로 update를 한 뒤에

sudo apt-get install mysql-server 를 하면 정상적으로 설치한다.
(중간에 root password 설정하라고 나오면 잘 되는것임)

설치가 끝나면

sudo service mysql start

 

728x90

소스 개발이 끝이 났으면 이제 실행해보자

pom.xml 이 있는 경우

상단 메뉴의 프로젝트 > 실행 > 실행명령 추가 > new run java(maven) 을 실행한다.

화면 가운데에 실행명령어와 웹브라우저 접속 경로가 나온다.

실행명령으로 서버가 시작되면 브라우저에 해당 경로를 입력한다.

오류가 있으면 정상적으로 실행이 되지 않으므로 터미널의 오류 메세지를 확인한다.

ctrl + c 로 중단할 수 있고

다시 가동시킬 때에는 터미널에
mvn spring-boot:run

입력하고 엔터를 치면 서버가 가동된다.

 

728x90

2020-10-28 00:21:03.762 TRACE 11388 --- [nio-8080-exec-7] o.h.type.descriptor.sql.BasicBinder : binding parameter [1] as [BIGINT] - [2]

2020-10-28 00:21:03.764 TRACE 11388 --- [nio-8080-exec-7] o.h.type.descriptor.sql.BasicExtractor : extracted value ([role_id1_2_1_] : [INTEGER]) - [2]

2020-10-28 00:21:03.764 TRACE 11388 --- [nio-8080-exec-7] o.h.type.descriptor.sql.BasicExtractor : extracted value ([name2_2_1_] : [VARCHAR]) - [null]

2020-10-28 00:21:03.764 TRACE 11388 --- [nio-8080-exec-7] o.h.type.descriptor.sql.BasicExtractor : extracted value ([user_id3_4_0_] : [BIGINT]) - [2]

2020-10-28 00:21:03.764 TRACE 11388 --- [nio-8080-exec-7] o.h.type.descriptor.sql.BasicExtractor : extracted value ([role_id2_4_0_] : [INTEGER]) - [2]

 

2020-10-28 00:21:03.870 ERROR 11388 --- [nio-8080-exec-7] o.a.c.c.C.[.[.[/].[dispatcherServlet]    : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception

java.lang.IllegalArgumentException:

---------

spring security 에서 로그인 시 위와 같은 오류가 난다면

return 된 parameter 중 null인 값이 있어서 그럴 수 있다.

쿼리문을 실행시켜본 다음 null인 Column 과 Class의 parameter name이 동일한지 확인

728x90

java update 메세지가 자꾸 나와서

sts 상에서 그냥 update를 눌렀더니.... 11이상 설치하라는...

STS버전이 4.4

JAVA는 1.8

이게 뭐야... 어쩔 수 없이

JAVA를 15로 upgrade했는데... lib가 호환이 안되는 것들이 좀 있나보다.

결국 찾아낸 간단한 방법

sts 홈페이지에서 4.8 받으니 문제 해결 됨.... ㅜ.ㅜ

 

728x90

구름 IDE에서 영카트 설치하는 방법.

컨테이너에 php를 선택하면 되는데

github에 영카트 소스가 있기 때문에 github 주소를 이용하여

공개범위 : Private (Public 로 하면 git/svn 고르기가 안됨)
템플릿 : Git/SVN
   - TYPE : Git
   - REPOSITORY URL : github.com/gnuboard/youngcart5.git
   - 인증 : Anonymous (별도의 인증 필요없음)

Test버튼을 누르면 -> Success로 연결 됨.

소프트웨어 스택에서 PHP 선택

Mysql 설치에 체크하고 "컨테이너 생성"

 

생성이 되면

Young cart 소스가 이미 생성되어 있다
(연결 안했으면 앞으로 PHP 파일을 만들어 가면 된다)

 

서버를 가동해야 화면이 뜨는데

상단메뉴에서
프로젝트 - 실행 - 실행명령 추가 를 누르면

new run php 라는 탭이 생긴다.
'실행' 버튼을 눌러 서버를 가동시킨다.

가동완료되면 아래쪽에 명령탭에 시작되었다고 나온다.
server started at ...
Listening on ...
Press Ctrl-C to quit

서버를 가동시키지 않으면
프로젝트 - 실행 URL과 포트 에 실행용 URL 을 클릭했을 때( 아래 그림에서 빨간색 동그라미 버튼)

-- 서버가 실행중이지 않으면

 

-- 서버가 실행 중이면 그누보드 설치화면이 나온다.

그누보드5 설치하기 버튼을 누른다.

 

먼저 data라는 폴더하면
config.php가 위치한 곳에 data 디렉터리를 만들어 준다

mkdir data
cd data
ls 로 파일이 생성되었는지 확인

 

또는 프로젝트에서 추가버튼으로 폴더 추가, 파일 추가를 해도 된다.

 

그누보드 생성 진행

DB설정정보, 최고관리자 정보 입력

 

---

생성이 제대로 안되는 경우는 root 계정으로 시도한다.
root 계정 password 변경

alter user 'root'@'localhost' identified with mysql_native_password by '1111';

서버를 재가동한다.
new run php 탭에서 '종료'버튼 누른 후 다시 '시작' 버튼 클릭

 

728x90

Spring Security로 로그인을 구현할 때

기본 password는 BCryptPasswordEncoder 를 사용한다.

mysql의 password() 를 사용하여 password를 저장하는 경우에는 맞지 않기 때문에

MysqlPasswordEncoder를 만들어 적용한다.

--------------------

import java.security.GeneralSecurityException;
import java.security.MessageDigest;
import org.springframework.security.crypto.password.PasswordEncoder;

public class MySqlPasswordEncoder implements PasswordEncoder {
    @Override
    public String encode(CharSequence rawPassword) {
        if (rawPassword == null) {
            throw new NullPointerException();
        }
        byte[] bpara = new byte[rawPassword.length()];
        byte[] rethash;
        int i;

        for (i = 0; i < rawPassword.length(); i++)
            bpara[i] = (byte) (rawPassword.charAt(i) & 0xff);

        try {
            MessageDigest sha1er = MessageDigest.getInstance("SHA1");
            rethash = sha1er.digest(bpara); // stage1
            rethash = sha1er.digest(rethash); // stage2
        } catch (GeneralSecurityException e) {
            throw new RuntimeException(e);
        }

        StringBuffer r = new StringBuffer(41);
        r.append("*");

        for (i = 0; i < rethash.length; i++) {
            String x = Integer.toHexString(rethash[i] & 0xff).toUpperCase();
            if (x.length() < 2) r.append("0"); r.append(x);
        }
        return r.toString();
    }

    @Override
    public boolean matches(CharSequence rawPassword, String encodedPassword) {
        if (encodedPassword == null || rawPassword == null) { return false; }
        if (!encodedPassword.equals(encode(rawPassword))) { return false; }
        return true;
    }
}

-------------------

사용방법 : UserServiceImpl 등 login 처리를 하는 class에서

    @Autowired
    private BCryptPasswordEncoder passwordEncoder;
    
    @Autowired
    private MySqlPasswordEncoder mysqlPasswordEncoder;
...

//user.setPassword(passwordEncoder.encode(registration.getPassword())); user.setPassword(mysqlPasswordEncoder.encode(registration.getPassword()));

 

기존에 사용하던 BCryptPasswordEncoder 대신 MysqlPasswordEncoder 를 사용하면 됨.

728x90

node.js boiler-plate

2020. 6. 11. 22:39

프로젝트 복사

git clone git://github.com/jaewonhimnae/boilerplate-mern-stack.git

프로젝트가 복사되면

cd boilerplate-mern-stack

npm install

install 완료되면

cd client

npm install

----

mongo db 접속 설정

좌측메뉴 : Network Access 에서 ip whitelist 에 ip 추가

ip : 0.0.0.0/0

comment : goorm ide

(이렇게 하지 않으면 접속오류 남)

 

728x90

Laravel Install

2020. 5. 31. 21:19

복잡하네...

먼저 php는 설치되어 있어야 하고

composer 다운 -> composer 설치 -> laravel 설치 -> laravel 프로젝트 생성 순이다.
그러나.. 쉽지 않네

1. composer 다운.

php -r "copy('https://getcomposer.org/installer', 'composer-setup.php');"

php -r "if (hash_file('sha384', 'composer-setup.php') === 'e0012edf3e80b6978849f5eff0d4b4e4c79ff1609dd1e613307e16318854d24ae64f26d17af3ef0bf7cfb710ca74755a') { echo 'Installer verified'; } else { echo 'Installer corrupt'; unlink('composer-setup.php'); } echo PHP_EOL;"

php composer-setup.php

php -r "unlink('composer-setup.php');"

차례대로 위 4개의 명령을 실행하면 composer.phar 파일이 다운된다.
다음 경로로 옮긴다.

mv composer.phar /usr/local/bin/composer

이러면 composer 명령을 바로 사용가능하다.
laravel installer를 다운받는다.

composer global require laravel/installer

근데... fail이 난다.

Problem 1
- Installation request for laravel/installer ^3.1 -> satisfiable by laravel/installer[v3.
1.0].
- laravel/installer v3.1.0 requires ext-zip * -> the requested PHP extension zip is missi
ng from your system.

zip 파일이 부족하다는군...

php.zip 파일을 다시 설치하면 될 듯. 버전에 맞는 php파일 설치

sudo apt-get install php7.3-zip

설치한 뒤 다시

composer global require laravel/installer

에러없이 설치가 됐다.

이제 프로젝트를 생성한다.

composer create-project --prefer-dist laravel/laravel 프로젝트명

생성이 정상적으로 되면 프로젝트 폴더로 이동

cd 프로젝트명

서버를 가동시킨다.

php artisan serve

가동이 안되고 에러가 난다
PHP Warning: require(/workspace/프로젝트명/vendor/autoload.php): failed t
o open stream: No such file or directory in /workspace/프로젝트명/artisan
on line 18
PHP Fatal error: require(): Failed opening required '/workspace/프로젝트명/vendor/autoload.php' (include_path='.:/usr/share/php') in /workspace/프로젝트명/artisan on line 18

vendor 폴더와 autoload.php 가 없댄다.
composer의 dump-autoload를 실행하면 자동으로 생성된다.

composer dump-autoload

브라우저를 띄워 홈페이지에 접속해본다

http://localhost:8000

728x90

node.js 의 경우 5000번 포트를 사용한다.

그런데 url에 직접 5000을 붙이면 접속이 되지 않는다.

프로젝트 > 실행 URL과 포트 : url과 port 지정
ex) url에 myproject, port에 5000 을 입력하면
https://myproject.run.goorm.io 로 접속을 했을 때 내부 5000번 포트로 전달된다.

Test 하려면 링크버튼 클릭 또는 카피버튼으로 url 복사한 뒤 브라우저에 붙여넣으면 된다.

https://node-react.run.goorm.io/api/hello 같이 호출하면 됨. url에 포트는 안붙인다.

728x90

외부에서 접속하려고 하면 몇가지 설정이 필요하다.

1. 포트 포워딩 설정

내 컨테이너에 접속한 뒤

상단메뉴의 컨테이너 > 포트포워딩 설정

유형을 Mysql 선택한 뒤 등록을 하면 접속할 IP와 외부포트가 나온다.

2. mysql.cnf 수정

cd /etc/mysql/mysql.conf.d
ls 하면 mysqld.conf 파일이 있다.

vi mysqld.conf 한 뒤에

bind-address = 127.0.0.1 이 있으면 주석 또는 삭제한 뒤 :wq 로 저장

3. mysql workbench에 커넥션 추가

mysql connection 에서 + 버튼 클릭

host name : 포트포워딩에서 설정 된 IP

port : 포트포워딩에서 설정 된 포트번호

- 접속에러

Failed to Connect to MySQL at 123.321.123.321:51404 with user root

root라는 user가 접속하는 ip는 허용되지 않았다는 뜻이다.

root보다는 다른 user를 추가하는게 좋으니 admin을 추가한다.

INSERT INTO mysql.user (host,user,authentication_string,ssl_cipher, x509_issuer, x509_subject) VALUES ('%','admin',password('1234'),'','','');

GRANT ALL PRIVILEGES ON *.* TO 'admin'@'%';

FLUSH PRIVILEGES;

mysql workbench 접속정보에 admin 으로 해서 접속성공하면 끝.

 

참조 : 달콘박스 https://dalconbox.tistory.com/37

 

구름IDE 에서 MySQL 사용하기

구름 IDE에서 컨테이너를 생성 합니다. 맨 아래에서 MySQL설치를 체크한 후 설치하면 됩니다. 소프트웨어 스택은 Node.js를 사용했습니다. 그리고 더 편리하게 사용하기 위해 HeidiSQL을 설치해 줍니다. https://..

dalconbox.tistory.com

참조 : 제타위키 https://zetawiki.com/wiki/MySQL_%EC%9B%90%EA%B2%A9_%EC%A0%91%EC%86%8D_%ED%97%88%EC%9A%A9

 

MySQL 원격 접속 허용 - 제타위키

다음 문자열 포함...

zetawiki.com

 

728x90
BLOG main image
"그게 뭐 어쨌다는 거냐?" 늘 누가 나에게 나에대한 말을할 때면 이말을 기억해라. by nobang

카테고리

nobang이야기 (1933)
Life With Gopro (7)
Life With Mini (79)
Diary (971)
너 그거 아니(do you know) (162)
난 그래 (159)
Study (290)
속지말자 (10)
Project (34)
Poem (15)
Song (0)
Photo (113)
낙서장 (45)
일정 (0)
C.A.P.i (2)
PodCast (0)
nobang (27)
고한친구들 (4)
recieve (0)
History (0)
android_app (2)

최근에 올라온 글

최근에 달린 댓글

최근에 받은 트랙백

Total :
Today : Yesterday :