VM에 Ubuntu를 통해서 서버를 구축할 것이다



0.기본 설정 

먼저 VM과 Ubuntu를 설치한다

VM: https://www.virtualbox.org/wiki/Downloads

Ubuntu: https://www.ubuntu.com/download/desktop




Mac을 사용하기 때문에 iso파일의 Ubuntud를 받았다.

VM을 먼저 설치하고 그 다음 VirtualBox에서 새로 만들기를 통해 가상의 linux OS기반의 환경을 조성한다





(계속...........)

만들어진 Linux-Ubuntu를 시작하면 아래와 같은 창이 뜨는데 아까 받은 Ubuntu를 적용 시키면 된다


그리고 Ubuntu를 깔끔하게 깔아주면 된다

깔렸다................................성공


1.APM+phpmyadmin설치

$sudo su를 통해서 root권한을 통해서 접속하면 관리하기 편한다

1.1 apache2 설치하기 

(이미 Ubuntu에 존재하는 package를 설치하는 것이다)


web browser에 127.0.0.1 혹은 localhost라고 치면, apacher2로 설정된 default page를 볼 수 있다 




1.2 mysql 설치하기

그냥 terminal 위와 같이 command를 하면 된다

이과정에서 오류가 가장 많이 나왔었다. msql에 server community에 접속할 수 없다면서 error가 지속적으로 발생해서 google에 수도 없이 검색해보았다. 답이없다 그냥, vm과 ubuntu를 다 전부 삭제하고 다시 다운로드 받고 시작하면 된다. 그래도 가끔식 안될 때 있는데 다시하면 된다.


원인은 잘 모르겠다. 맨 처음 시도 했을 때는 모든게 순조롭게 설치가 되었는데 다 삭제하고 다시 vm에서 부터 Linux-Ubuntu생성하고 나서 부터 이 부분에서 계속 설치가 안됬다. dpkg도 해보고 remove도 해봤는데 답은 그냥 완전!! 처음 부터 다시 시작하는 것이다. 


여튼, 설치가 되면.......php를 설치하기로 하자


1.3 php 설치

php는 여러 버전이 존재하는데 나는 php7.2    버전을 설치하였다


php의 package는 없기 때문에 apt에 추가하여야 설치가 가능하다!!


$sudo add-apt-repository ppa:ondrej/php

한번 update를 해주고....(저장소로부터 추가 목록을 가져오는 것)

$ sudo apt-get update

php7.2를 설치 해준다

$ sudo apt-get install php7.2 php7.2-common

php가 설치 되었는지 확인하기 위해서 phpinfo()파일을 만들어본다

$ sudo sh -c 'echo "<?php phpinfo(); ?>" > /var/www/html/info.php'


localhost/info.php에 들어가면..........





이렇게 ubuntu에 APM을 모두 설치하였다.



1.4 phpmyadmin 설치

phpmyadmin은 데이터 베이스를 관리하는 인터페이스이다

$sudo apt-get install phpmyadmin


패키지 설정에서는 apache2로 정하고--> phpmyadmin의 데이터 베이스를 dbconfig-common으로 설정하냐에 yes를 하면된다--> mysql에 등록할 password로 설정하고 설치를 마무리 하면 된다.


localhost/phpmyadmin/에 접속 하면 다음 page를 볼 수 있다


접속이 안되는 경우 http://kyu-tag.tistory.com/11 의 reference를 참고하면 깔끔히 설정할 수 있다






2. Index.html page 변경하기

현재 localhost로 되어 있는 page를 변경해 보겠다.

web browser에 localhost라고 치면 apache2로 된 default page가 뜬다. 자세히보면 

/var/www/html/index.html을 replace하라고 되어 있다. 하지만 실제로 terminal로 들어가게되면, 변경할 수 가 없다. readonly이기 때문이다. 

그래서 권한을 chmod index.html 777로 바꾸고 (777이면 다른 사람도 modify 할 수 있기 때문에 조심하여라) 

을 통해서 html 파일을 변경하여라 (vim을 사용하는 경우 install을 통해서 vim을 설치하여야 한다)


결과: 

원래의 defaul page를 변경하였다.





후기:

솔직히 이번 시도는 너무 많은 error와 시간 투자가 필요했다. 왜 오류가 뜬지도 모르겠다 어떻게 고치는지도 잘 몰랐다. 오로지 지우고 새로 설치하고를 정말 많이 반복하였다. 그리고 처음에는 mac을 사용해서 vm을 통해서 Ubuntu를 다루려고 했지만, 너무 버벅거림이 심하고 firfox에서는 아예 작동이 되지 않고 꺼지는 경우가 많아서 window에서 VMware에서 똑같은 방법으로 시도하였다. 컴퓨터 문제인지는 잘 모르겠지만,  window에서도 run하는 VM이 훨씬더 빠르고 부드러웠다.


아래 참조 하였던 블로그에 설치 방법은 훨씬더 자세히 나와있다. 꼭 참고 하기를 바란다



그리고 처음에는 mac을 사용해서 vm을 통해서 Ubuntu를 다루려고 했지만, 너무 버벅거림이 심하고 firfox에서는


해결책: 처음에 VM을 설치 할 때  기본 메모리의 설정을 1024MB로 잡아놨기 때문이다. VM은 사용 컴퓨터 위에서 돌아가는 것이기에 메모리도 설정 값에 의해서 돌아가는 것 같다. 다시말해서 기본메모리를 값을 더 많이 잡으면 된다







참조:http://webnautes.tistory.com/1028







'OSS' 카테고리의 다른 글

[Ubuntu]hostname 변경  (0) 2018.05.07
[Ubuntu] Package tool&Network status  (0) 2018.05.07
[나름해석]JSMN-kyu.version2.0-jsondump.c  (0) 2018.04.09
[Command]git 기초2  (0) 2018.04.09
[Command]git의 기초1  (0) 2018.04.07

자바 중간고사 review



while(condition)

condition에는 비교하는 operation이 들어 갈 수 있으며, 해당 조건이 만족하여야 while의 loop가 돌아간다. 

내가 한 실수 while(a==b)

나의 생각: while문의 조건이 a와 b가 같아지면 끝나는 것으로 생각 했었다. 다시 생각해보면, condition에 들어가는 operation은 항상 <과 >을 기반으로 =와 함께 쓴다. 나의 논리를 따르려면, 보통 while(true)을 넣고, loop statement 안에 if조건문을 통해서 a==b를 비교하여 break문을 실행시키는 것이다.




while(a==b)--> X            while(true){if(a==b)break;}    -->O


short circuit

나의 생각: or operand이나 and operand이든 항상 앞에 오는 조건문이 중요하다. 뒤에 것과 상관없이 앞에 것에 의존한다


틀린 것은 아니다. 하지만, short circuit의 가장 core는 앞에 있는 것에 대한 판단이 아니라, 앞에 것에 의해서 뒤에 것이 계산이 안되는 다는 것이다. 


나의 생각과 비슷한 이야기지만이지만,  short circuit은 의존의 중요가 아니라 계산이 덜 된다는 것이 중요하다


super

super은 하위 class에서 상위 class를 참조할 때, 사용하는 것이다. 


문제: super가 해당 class의 변수들에 대해 접근 할 수 있다 였다.(정확하지는 않다) 



답은 this이다. this가 현재 object의 변수들에 접근하는 것이다. 

내 생각: 생각이 짧았다. super을 통해서 상위 class에 접근 하는 것인데 문제에 within class를 access한다고 하기에 현재 object가 참조 할 수 있는 함수에 대해 가능하냐는 말이다. 나의 생각도 틀렸고 해석도 잘못했다. 



Wrap up

위 3 문제 말고는 실수로 2문제 더 틀렸는데, 사실 상 빈 칸 채우기에서 override와 overriding의 문법차이(동사와 명사)때문에 틀린 것이다. 

사실 super의 정의 따지는 T/F를 제외하고는 같은 흐름에서 다시한번 다른 방향에서 생각하지 못했다는 점이 아쉽다.




'걸림돌' 카테고리의 다른 글

[OSS]Linux&git command  (0) 2018.04.30

현 시점까지의 잠깐의 복습....



git에 대한 5가지 정의

git push: 새로운 소스 파일을 local repository가 아닌 remote repository에 저장하는 것이다

git init: 현재 dir을 git 저장소로 관리하고 싶을 때 사용한다

git status: git repository의 현재 상태를 알려준다

git commit: traked된 파일들을 staging하기 위해서 commit한다. 여기서 traked는 git add를 통한 것을 말한다

git add: 소스파일을 staging하기위해 trake하는 것을 말한다




linux명령어

mv a b c d e f g: 현재 dir에서 g라는 dir을 만들고 그 안에 다시 a와 b와 c와 d와 e와 f의 이름으로 된 dir을 만드는 것이다




pull request에 관하여....

보통 우리가 pull request를 하는 경우는 상대방의 git을 fork를 하는 경우(clone을 통해서 local repository나 혹은 remote repository에 하여도 된다) 혹은 상대방의 프로그램에 문제가 있을 경우 해당 프로그램의 작성자에게 pull request를 한다. 작성자는 수정자의 수정 내용을 확인 후  수정을 받아 드릴 경우 merge를 통해서 원본 저장소에 합친다



make로 디버깅용 실행 파일을 생성하기.......

make로 디버깅 파일을 실행하기 위해서는 make의 순서가 중요하다. make 를 통해서 실행 파일을 만들때는 먼저 해당 소스 파일의 object 파일을 만들고 해당 object를 통해서 실행 파일을 만들게 되는 것이다 


Makefile을 작성할 때는 target, dependency, command, macro로 나누어 저있으며, target은 make를 통해 invocation될 이름이다. dependency는 command로 compile 될떄 사용 되는 재료이며, marcro는 전처리로 setting되게끔 도와주는 역활을 한다


 즉, debuging을 하는 경우, debugging으로 구성된 command를 정해주고 target과 필요로 하는 (소스파일, 해더파일 등등) 파일들과 함께 작성하면 된다.

'걸림돌' 카테고리의 다른 글

[Java]중간고사 review  (0) 2018.04.30

+ Recent posts