본문 바로가기

과목/Linux 리눅스

IWINV 클라우드 서버

대여 받은 클라우드 서버에 리눅스 운영체제가 깔려있다. Ubuntu 16.04 LTS이다. 여기에 Apache + PHP + Mysql 도 기본으로 깔려있다. 그리고 Xwindow라는 건 GUI 환경을 제공해주는 거라고 생각하면 된다. 아무래도 리눅스는 터미널에서 명령을 작성하고 출력물도 확인해야 해서 xwindow가 큰 장점인지는 잘 모르겠다. 그래도 완전 터미널이면 답답했겠지.


DB와 연동하려면 이런 저런 설정 과정이 필요하다. 이것이 우분투 리눅스다 라는 도서를 학교 도서관에서 빌렸는데 다행히도 설명도 잘 되어있고 동영상 강의도 있고 카페에 질문을 올리면 답도 잘 해주신다. 학교에서 배우는 것보다 훨씬 낫다!



이것이 우분투 리눅스다 카페 주소 : http://cafe.naver.com/thisislinux

이것이 우분투 리눅스다 동영상 강의 주소 : https://www.youtube.com/watch?v=-hsTerGam3Y&list=PLVsNizTWUw7H0hL3MIk4POxadZVwNOycL


사실 서버는 전에 대여했으나 타이젠과 아두이노 때문에 쭉 미루다가 일주일 전에 시작한 것 같다. 서버에 대해 잘 모르고 기껏해봐야 리눅스 커널에서 함수 작성해서 출력하기, 리눅스 마스터 2급 덤프 문제 풀어서 턱걸이로 합격 정도의 수준이었다. 운영체제 수업 시간에 교수님께서 내주신 과제도 빨리 완료한 사람은 4,5시간만에 했고 나는 거의 6일동안 붙들고 있어서 해결해냈다. 새벽이 지나고 동이 틀 무렵 성공했던 게 기억이 난다... 이번에 서버 구축을 할 때도 뭣도 모르고 책에 있는 것만 따라했다. 동영상에선 스무스하게 진행했으나 나는 마리아 DB 설치하는 것 부터 안됐다. apt-get install 어쩌구 저쩌구를 한번에 복붙하면 안되고 한줄씩 해야했다. 이것이 동영상에서 진행한 것과 내가 따라한 것의 차이다. 한줄 한줄 정성스레 작성해야 리누스 토발즈님의 허락이 떨어지는 것이다.


시작할 때부터 뭔가 불안했다. 이것만 따라하면 정답으로 인도한다는 식의 왕도는 없는 것 같았고 역시나 진행하면서 수많은 오류를 만났다. stackoverflow와 지식인, 기타 구글 검색 결과로 나온 수많은 블로그, 사이트들을 참고했다. 졸업해서 일 배우고 있는 형들한테도 물어보고 여기저기 수소문했다. 내 일은 내 일이므로 그들은 아주 친절하진 않았다. 대략 이렇게 저렇게 어쩌구 저쩌구 하면 될걸? 이라는 식이었다. 어쩔 수 없이 구글의 바다를 헤맸다.


처음에 클라우드 서버를 사용할 때 xwindow도 아니었다. 그래서 거기다가 우분투를 설치하고 여하튼 이상한 짓을 막하다가 운영체제 밀고 다시 설치... 또 삽질하다가 다시 설치... 그렇게 새벽이 되었고 책상을 주먹으로 내리치면서 계속 삽질을 했다.


나중에 깨달은게 xwindow가 딸려있는 버전을 깔아야한다는 것이었다. 진짜 모를땐 깜깜한데 알면 너무 간단하다. APM도 기본으로 설치되어있었는데 마리아 DB는 그냥 동영상에 나오는 대로 깔아봤다.


자잘한 설정을 하는데 외부에서 DB에 접근할 수 있도록 하려면 bind-address=127.0.0.1을 주석처리하고 bind-address=0.0.0.0으로 만들어 줘야했다. 근데 이놈의 경로를 따라가면 나한테 없는 파일 내용이 동영상 강의에는 버젓이 있었던 것이다. 어처구니가 없었다. 역시 몇시간 넘게 삽질을 해서 경로를 알아낸 뒤 적절히 수정했다. 만약 동영상으 11장에 나오는 경로가 나오지 않는다면 터미널에

 #vi /etc/mysql/mariadb.conf.d/50-server.cnf

이렇게 입력하면 혹시 나올지도 모른다.


또 하나 큰 삽질을 했었는데 브라우저 창에 공인 IP주소를 입력하면 html 폴더에 있는 html 문서가 출력된다. 그러나 PHP로 작성한 코드를 실행하면 안됐었다. 물론 grant all 어쩌구 아이디 @'%' 어쩌구를 해서 모든 IP에서 접속이 가능토록 했었다. 바보 같았던 것은 PHP에 접근할 아아디를 내가 설정한 아이디가 아닌 root로 적었던 것이다. 아래의 코드에서 아이디라고 적은 부분에 root로 적어놓고 접속을 시도하니 당연히 실패할 수 밖에... 여튼 서버에서 허용한 아이디를 저 아이디에 잘 입력해주면 브라우저에 DB생성이라고 뜨고 터미널에서 mysql 들어간 뒤 use testDB를 입력하면 그 DB를 사용할 수 있게 된다. 겨우 여기까지 하는데 굉장한 정신력을 썼다... 안되면 될 때까지 오기로 집요하게 구글링을 하고 수소문하면 뭐라도 된다. 그 뭐라는게 아주 사소할지라도 그냥 하는 게 좋다. 이게 될까? 저게 될까? 하지말고 그냥 부딪혀서 될 때까지.


<?php


$servername = "공인 IP 주소:3306";

$username = "아이디";

$password = '1234';


$conn = new mysqli($servername, $username, $password);


if($conn->connect_error)

die("connection failed: "+$conn->connect_error);


$sql = "create database testDB";


if($conn->query($sql) === TRUE){

echo "DB 생성";

}else{

echo "Error creating DB: " + $conn -> error;

}

$conn->close();

?>



도움이 좀 될 수도 있는 링크 

https://blog.lael.be/post/73

원격 접속에 대한 몇가지 설정

https://mariadb.com/kb/en/library/configuring-mariadb-for-remote-client-access/