[aws-ec2-linux2] node설치하기
apt-get은 우분투 명령어임.
aws-linux에서는 yum을 사용.
sudo yum update
리눅스 처음 시작하자마자 업데이트해주고
sudo yum install -y gcc-c++ make
curl -sL https://rpm.nodesource.com/setup_16.x | sudo -E bash -
//최신버전 릴리즈
$ sudo yum install -y gcc-c++ make
$ curl -sL https://rpm.nodesource.com/setup_14.x | sudo -E bash -
//안정적인 버전 릴리즈
둘중에 나는 안정적인 버전 릴리즈를 통해 설치함.
위에 명령어를 실행시키고 나면
sudo yum install -y nodejs 를 입력하라는 메세지가 나온다
$ sudo yum install -y nodejs
node -v
명령어를 통해 노드 설치 확인
home/app/TravelAlbum이라는 폴더를 만들고
mkdir TravelAlbum
cd TravelAlbum
express-generator expree를 전역으로 설치
sudo npm install -g express-generator
//꼭 sudo 명령어를 사용할것!!
express --version
명령어로 설치 확인
cd TravelAlbum폴더로 이동후
express server
실행하면 `server`라는 폴더를 가지는 express 프로젝트 생성
cd server
server폴더 이동후에
npm install
프로젝트 셋팅시키기
----vue를 설치하자
(x) sudo npm install vue-cli -g (x)
vue-cli를 전역으로 설치한다.
인터넷보고 저렇게 설치 했더니 vue가 2.9버전이 깔린다...;;
나는Vue3버전을 설치하고 싶다.
sudo npm install -g @vue/cli
vue create client
https://simplevue.gitbook.io/intro/01.-vue-cli
위사이트 참고함
파일zila에 인스턴스 연결할려고 하니까 계속 이런 오류가 뜸
FATAL ERROR: No supported authentication methods available (server sent: publickey,gssapi-keyex,gssapi-with-mic)
.pem파일을 다른 인스턴스꺼 쓰고 있어서 저런 에러뜸 .... 해결함.
지금까지 만든걸 종합하면
앞으로 만들 폴더구성
TravelAlbum
--server
node.js - express.js로 서버단 구성
--clinet
vue.js - vue로 프론트단 구성
이렇게 되있을거고 이제 express와 vue를 연동해보자
vue.config.js파일을 만들어서
module.exports = {
devServer: { //① api 요청이 있을때 어디에서 처리할지를 설정
proxy: {
'/api': {
target: 'http://localhost:3000/api',
changeOrigin: true,
pathRewrite: {
'^/api': ''
}
}
}
},
outputDir: '../server/public', //② 배포 파일의 위치를 지정
}
이렇게 추가한후에,
npm run build
//이렇게 하면 server/public에 build파일이 생기는듯?
server쪽으로가서 npm start해보면 vue가 3000포트로 실행된다!.
server] $ npm start
서버명:3000으로 접속하면 vue페이지가 보임!
--- mysql을 설치한다.
https://techviewleo.com/how-to-install-mysql-8-on-amazon-linux-2/
이글을 참고해서 aws ec2 linux2에 mysql8버전을 설치해본다!!!
쭉 따라하다가 임시비밀번호를 log에서 찾고 그걸로 접속 한다음에 루트 비밀번호 바꾸는 과정에서
sudo grep 'temporary password' /var/log/mysqld.log
비밀번호가 뭐라뭐라 나올거고 그게 root@localhost: BEw-U?DV,7eO
뒤에 BEw-U?DV,7eO이게 비밀번호고
$ sudo mysql_secure_installation -p'BEw-U?DV,7eO'
하면 새 비밀번호 입력하라고 나옴
위에 임시비밀번호처럼 어렵게 해야 됨 ㅠ
heidisql에서 접속할려고하니
//에러발생
Host is not allowed to connect to this MYSQL server
mysql8에서 보안이 더 빡세져서 그런것 같다.
리눅스에서 mysql에 접속한다음에 use mysql을하고
select host, user from user;하면 접속하는 host가 로컬만 허용되게끔 되어있다. 이걸 꼭 접속할려는 pc에서도 허용되게 해주자.
grant all privileges on *.* to 'root또는 원하는계정'@'본인IP';
//변경사항 적용
flush privileges;
권한 줄려니까
ERROR 1410 (42000): You are not allowed to create a user with GRANT
이딴오류 발생
mysql> create user 'admin'@'%' IDENTIFIED BY 'admin';
mysql> grant all privileges ON *.* TO 'admin'@'%' with grant option;
//이유 자체가 완전 처음 만들어진 root계정에 외부접속을 허용해주게 못하는것 같다 mysql8에서
//그래서 새로 admin이라는 계정을 만들어서 거기에 루트 권한을 주고 외부접속 허용하게 만들어서
// 개발 끝나고
mysql> revoke all on *.* from admin@'%';
mysql> flush privileges;
이렇게 해줘서 권한 외부접속 막아야겠다.
그런다음 ssh말고 그냥 일반접속으로 aws ec2 아이피주소 넣고 admin 비밀번호 쳐서 접속하면 성공!
vscode를 ec2에 ssh로 연결할때
Permission denied (publickey,gssapi-keyex,gssapi-with-mic).
이런오류가 뜨는데 이거 해결할려면
chmod 700 /root/.ssh
chmod 600 /root/.ssh/authorized_keys
이렇게 주면 됨
https://medium.com/@christyjacob4/using-vscode-remotely-on-an-ec2-instance-7822c4032cff