기본 콘텐츠로 건너뛰기

[server] ubuntu에 APM을 설치해보자.



시작하기에 앞서서 필자는 docker에 ubuntu 16버전에서 셋팅을 하였습니다. ubuntu 설치 직후와 같은환경. 필자는 도커를 사용했기 때문에 기본포트를 사용하지 않고 10000번 포트로 바꿔서 사용을 할 것입니다.

왜 굳이 10000번을 했냐면?, 
왜우기 쉬워서... ㅋㅋ

APM설치

ubuntu에 php환경을 셋팅을 해보도록 하곘습니다.
도커에 우분투를 올린것은 우분투를 설치 직후와 같기때문에 패키지, apt-get을 업데이트를 시켜줍니다.
apache, php, mysql을 APM이라고 부른다
$ apt-get update
$ apt-get upgrade
  • apache2 설치
$ apt-get install apache2
  • mysql 설치
$ apt-get install mysql-server mysql-client
mysql은 설치를 진행중에 관리자 계정의 패스워드를 입력하라는 창이 뜬다.
  • php 설치
$ apt-get install php libapache2-mod-php php-xml php-gd php-mysql
  • apache, mysql 실행하기
$ service apache2 restart
 * Restarting Apache httpd web server apache2
AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
                                                                                                                                            [ OK ]
$ service mysql restart
 * Stopping MySQL database server mysqld                                                                                                    [ OK ]
 * Starting MySQL database server mysqld
No directory, logging in with HOME=/
                                                                                                                                            [ OK ]


apache2 셋팅

지금까지는 설치하는 방법이었습니다. 이제는 apache2를 설정하는 방법에 대해서 알아보도록 하겠습니다.
  • 포트변경
$ vim /etc/apache2/ports.conf
# If you just change the port or add more ports here, you will likely also
# have to change the VirtualHost statement in
# /etc/apache2/sites-enabled/000-default.conf

Listen 10000


        Listen 443



        Listen 443


# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Listen을 원하는 포트로 바꿔주시면 됩니다.
$ service apache2 restart
포트를 바꿔주셨으면 이제 서버를 재시작 해줍니다.

php파일 추가하기

apache는 /var/www가 루트 디렉토리로 동작을 하게된다.
$ cd /var/www
$ ls
html
/var/www로 이동을 해보면 html디레토리가 있을 겁니다. 해당 디렉토리 내부에 php파일을 만들어 주도록 합니다.
$ vim /etc/www/html/helloworld.php


echo
'Hello world'; ?>
자 이제 해당 서버로 접속을 해줍니다.
localhost:포트번호/helloworld.php로 접속을 해보겠습니다.
$ curl http://localhost:10000/phpinfo.php

Hello world

정상적으로 접속이 됩니다.
흠… apache랑 php는 처음 다뤄보는데 먼가 신선하네 ㅋㅋㅋㅋㅋ

phpmyadmin을 이용하여 디비관리

$ apt-get install phpmyadmin
phpmyadmin을 설치를 해줍니다.
Deconfigure database for phpmyadmin with dbconfig-common? [yes/no]
yes를 입력해줍니다.
Please provide a password for phpmyadmin to register with the database server. If left blank, a random password will be generated.

MySQL application password for phpmyadmin:

Password confirmation:
database의 관리자 계정을 설정해 줍니다.
Determining localhost credentials from /etc/mysql/debian.cnf: succeeded.
Please choose the web server that should be automatically configured to run phpMyAdmin.

  1. apache2  2. lighttpd

(Enter the items you want to select, separated by spaces.)

Web server to reconfigure automatically:
어떤 웹서버를 사용할지 선택을 해줍니다.
apache2를 사용할 것이기 때문에 1번을 입력해주고 엔터를 쳐줍니다
$ service apache2 restart
쾌적한 진행을 위해 apache2를 재시작을 해줍니다
이제 http://localhost:포트/phpmyadmin을 접속을 해줍니다.
그럼 로그인창이 뜨게 되는데
ID : root
PASSWORD : 관리자 비밀번호
여기까지 apache를 이용해서 php를 제공을 해주고 phpmyadmin을 이용하여 디비를 관리할 수 있도록 셋팅을 해보았습니다.
마지막으로 한가지만 더 해결을 해보도록 하겠습니다.
apache를 재시작하기 위해 service apache2 restart를 입력할 때마다 이상한 문구가 계속 떴을겁니다.
$ service apache2 restart
 * Restarting Apache httpd web server apache2

 AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 172.17.0.2. Set the 'ServerName' directive globally to suppress this message
                                                                                                                                            [ OK ]
AH00558: apache2 ~라는 문구가 보기가 싫습니다.
$ vim /etc/apache2/apache2.conf
/etc/apache2/apache2.conf을 열어서 Servername localhost를 추가를 해주고 저장을 해줍니다.
# service apache2 restart
 * Restarting Apache httpd web server apache2                                                                                               [ OK ]
이제야 보기가 좋네요

댓글

이 블로그의 인기 게시물

[git] git log 확인하기

git log를 통해서 커밋 이력과 해당 커밋에서 어떤 작업이 있었는지에 대해 조회를 할 수 있다. 우선 git에서의 주요 명령어부터 알아보겠다. $ git push [branch name] $ git pull [branch name] 여기서 branch name은 로컬일 경우 해당 브런치 이름만 적으면 되지만 깃허브 원격 저장소로 연결을 원할 경우는 해당 브런치 이름 앞에 꼭 origin을 붙이도록 한다. $ git brnch [branch name] $ git checkout [branch name] branch일경우 해당 브런치를 생성을 한다. 여기서 현재의 브런치를 기준으로 브런치를 따는것이다. checkout은 브런치를 바꾸는 것이다.(HEAD~[숫자]를 이용하면 해당 커밋으로 움직일수 있다.. 아니면 해당 커밋 번호를 통해 직접 옮기는것도 가능하다.) -> 해당 커밋으로 옮기는 것일뿐 실질적으로 바뀌는 것은 없다. 해당 커밋으로 완전히 되돌리려면 reset이라는 명령어를 써야한다. 처음 checkout을 쓰면 매우 신기하게 느껴진다. 막 폴더가 생겼다가 지워졌다가 ㅋㅋㅋㅋㅋ  master 브런치에서는 ht.html파일이 존재하지만 a브런치에서는 존재하지않는다. checkout 으로 변경을 하면 D 로 명시를 해준다.  $ git log 해당 브런치의 커밋 내역을 보여준다. a 브런치의 커밋 내역들이다. (머지 테스트를 하느라 커밋 내용이 거의 비슷하다 ㅋㅋ) master 브런치의 커밋 내역들이다. 커밋 번호, 사용자, 날짜, 내용순으로 등장을 한다. 이건 단순히 지금까지의 내역을 훑어보기 좋다. 좀더 세밀한 내용을 봐보자. $ git log --stat --stat을 붙이면 기존의 로그에서 간략하게 어떤 파일에서

[git] pull을 하여 최신코드를 내려받자

보면 먼가 로고가 다르게 뜨는것을 확인을 할 수가있다. C:\Users\mung\Desktop\etc\study\python-gene>git checkout remotes/origin/master Note: checking out 'remotes/origin/master'. You are in 'detached HEAD' state. You can look around, make experimental changes and commit them, and you can discard any commits you make in this state without impacting any branches by performing another checkout. If you want to create a new branch to retain commits you create, you may do so (now or later) by using -b with the checkout command again. Example:   git checkout -b HEAD is now at 29e282a... fetch test C:\Users\mung\Desktop\etc\study\python-gene>git branch * (HEAD detached at origin/master)   master   test1   test2 깃이 잘 쓰면 참 좋은놈인데 어지간히 쓰기가 까다롭다. 처음에 깃을 푸시 성공하는데만 한달정도 걸렸던걸로 기억이 난다.. ㅋㅋㅋ 여담으로  깃 프로필을 가면 아래사진 처럼 보인다. 기여도에 따라서 초록색으로 작은 박스가 채워지는데 저걸 잔디라고 표현을 한다고 합니다 ㅎ 저 사진은 제 깃 기여도 사진입니당 ㅋㅋㅋㅋ 다시 본론으로 돌아와서 ㅋㅋ pull을 하면 깃에 최신 소

[kali linux] sqlmap - post요청 injection 시도

아래 내용은 직접 테스트 서버를 구축하여 테스트 함을 알립니다.  실 서버에 사용하여 얻는 불이익에는 책임을 지지 않음을 알립니다. sqlmap을 이용하여 get요청이 아닌 post요청에 대해서 injection공격을 시도하자. 뚀한 다양한 플래그를 이용하여 DB 취약점 테스트를 진행을 해보려고 한다. 서버  OS : windows 7 64bit Web server : X Server engine : node.js Framework : expresss Use modules : mysql Address : 172.30.1.30 Open port : 6000번 공격자 OS : kali linux 64bit use tools : sqlmap Address : 172.30.1.57 우선 서버측 부터  1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 var  express  =  require( 'express' ); var  app  =  express(); var  mysql  =  require( 'mysql' ); var  ccc  =  mysql.createConnection({     host: '127.0.0.1' ,     user: 'root' ,     post: '3306' ,     password: '*********' ,     database: 'test' }) app.post(