본문 바로가기

Linux/기타

연습 2

============================================================ LAB> APM 설치 static 방식 컴파일 !!! 실무에서는 가끔씩 한 대의 서버에서 테스트용으로 여러개의 !!! 아파치 웹서버를 설치해서 사용 경우도 존재한다. !!! 여기서는 한 대의 서버에 두 개의 웹서버를 설치하는걸로 한다. !!! 중요하는 것은 두 개의 웹서버가 떠지기 위해서는 서로간의 !!! 포트번호가 충돌이 없어야 한다는 조건이 선행되야 한다. -- 조건 -- 1. 한 대의 서버에 (DSO, Static) 둘 다 설치 - 기존의 DSO 로 운영되는 서버에 Static 방식을 설치한다. 2. 설치 디렉토리 - Apache(/usr/local/apache_static) - Php(/usr/local/php_static) 3. 아파치 웹서버 포트 - Port : 8000 -- 조건 -- Mysql 설치 : 이미 설치되어 있으므로 mysql은 설치를 생략한다. Apache 설치 : static 방식으로 컴파일한다. Php 설치 : static 방식으로 컴파일한다. - 설치 순서 Mysql(1,2,3,4)->Apache(1)->Php(1,2,3,4)->Apache(1,2,3,4) - Mysql 설치 Mysql은 이미 설치되어 있으므로 생략한다. - Apache 설치 # rm -rf apache_1.3.41 # tar xzf apache_1.3.41.tar.gz # rm -rf php-4.4.8 # tar xzf php-4.4.8.tar.gz # cd apache_1.3.41 # ./configure --prefix=/usr/local/apache_static - php4 모듈을 확인한다. (현재는 없다. X) # ls src/modules example extra NWGNUmakefile README experimental Makefile proxy standard - static 으로 컴파일하기 위해서 php 옵션중에 --with-apache를 준다. - php의 환경설정에서 여러 모듈들이 있지만 여기서는 생략한다. # cd ../php-4.4.8 # ./configure \ --prefix=/usr/local/php_static \ --with-apache=../apache_1.3.41 \ --with-mysql \ --with-zlib # make # make install # cp php.ini-dist /usr/local/php_static/lib/php.ini - php4 모듈을 확인 (O) # ls src/modules example extra NWGNUmakefile proxy standard experimental Makefile php4 README - 아래 두 개의 명령어중 하나를 이용하여 실행한다. # ./config.status \ --enable-module=vhost_alias \ --activate-module=src/modules/php4/libphp4.a or # ./configure \ --prefix=/usr/local/apache_static \ --enable-module=vhost_alias \ --activate-module=src/modules/php4/libphp4.a # ls -ld /usr/local/*static -- php 와 port 번호를 설정하고 웹페이지에 연동 여부를 확인 -- - httpd.conf 에서 포트와 php 인식을 설정한다. Port 8000 .php .html 인식 - 연동이 잘 되었는지 확인한다. http://ipaddress:8000/ .... # vi /usr/local/apache_static/conf/httpd.conf -- /usr/local/apache_static/conf/httpd.conf -- : Port 8000 : <IfModule mod_dir.c> DirectoryIndex index.html index.php </IfModule> : : - 800번 라인 부근에 위치 아래 두 줄을 추가한다. AddType application/x-tar .tgz AddType application/x-httpd-php .php .html AddType application/x-httpd-php-source .phps : : -- /usr/local/apache_static/conf/httpd.conf -- # /usr/local/apache_static/bin/apachectl start # netstat -nltp | grep :80 tcp 0 0 0.0.0.0:8000 0.0.0.0:* LISTEN 14069/httpd tcp 0 0 0.0.0.0:80 0.0.0.0:* LISTEN 21897/httpd # cd /usr/local/apache_static/htdocs/ # rm -fr * # echo '<? phpinfo(); ?>' > index.html - DSO, static 확인 DSO 확인 : - httpd -l http_core.c mod_so.c - ls /usr/local/apache/libexec libhttpd.so mod_auth.so mod_include.so mod_userdir.so libphp4.so ... static 확인 : - /usr/local/apache_static/bin/httpd -l http_core.c mod_vhost_alias.c : : mod_auth.c mod_setenvif.c mod_php4.c <-- - ls /usr/local/apache/libexec ============================================================

============================================================
로그인 기능 구현 

   +--------------------------------+
   |                                |
   |                                |
   v
login.html --->  loginok.html ---> 로그인 
userid, userpw      검사   (세션파일 생성  /tmp/sess_랜덤문자열 )


- index.html 의 소스 조건
전송방식 : mothod=post 
전송할 파일 : action=loginok.html
전송할 사용자 변수 : name=userid
전송할 비밀번호 변수 : name=userpw

+----------+-----------------+
| 사용자   |                 |
+----------+-----------------+
| 비밀번호 |                 |
+----------+-----------------+
|           로그인           |
+----------------------------+
-- login.html --
<? session_start(); ?>
<html>
<head>
<title> ::: 로그인 ::: </title>
 </head>

<body>
<?
  // 로그인을 했다면
  if(isset($_SESSION['userid']))
 {
?>
  <table align=center cellpadding=3 cellspacing=1 bgcolor=black width=300>
   <tr bgcolor=white>
    <td align=center> <?=$_SESSION['userid']?> 님 환영합니다. </td>
   </tr>
   <tr bgcolor=white>
    <td align=center> <a href=logout.html>로그아웃</a> </td> 
   </tr>
<?
 } else {
?>
  <form method=post action=loginok.php>
  <table align=center cellpadding=3 cellspacing=1 bgcolor=black width=300>
   <tr bgcolor=white>
    <td align=center> id </td>  
    <td> <input type=text name=userid> </td>
   </tr>
   <tr bgcolor=white>
    <td align=center> pw </td> 
    <td> <input type=password name=userpw> </td>
   </tr>
   <tr bgcolor=white>
     <td align=center colspan=2> 
        <input type=submit value=로그인> 
     </td>
   </tr>
  </table>
  </form>

<?
   }
?>

</body>
</html>

-- login.html --

-- loginok.html --
<?
  session_start();  // /tmp/sess_랜덤문자열 세션파일을 생성
  // Array ( [userid] => aaa [userpw] => 1234 ) 
  // print_r($_POST); 

  // 나중에는 DB에서 꺼내와서 변수로 등록해야 하지만
  // 현재는 그냥 변수로 처리한다.
  $dbuser = "linux";
  $dbpass = "linux1234";

  // 사용자와 비밀번호가 같다면
  // if(strcmp($_POST['userid'], $dbuser) == 0)
  if($_POST['userid'] == $dbuser && $_POST['userpw'] == $dbpass)
  {
     // 세션변수를 생성하고 login.html 로 보낸다.
     // $_SESSION[userid] = $_POST[userid];  X
     $_SESSION['userid'] = $_POST['userid'];

     echo "<script language=JavaScript>
           <!--
	      location.href = 'login.html';
	   -->
	   </script>
	  ";

     exit;
          
  } else {
     echo "<script language=JavaScript>
           <!--
	      alert('사용자와 비밀번호를 확인해주세요!!!'); 
	      location.href = 'login.html';
	   -->
	   </script>
	  ";
     exit;

  }
 
?>
-- loginok.html --

-- logout.html --
<?
  session_start(); 
  session_destroy();
  echo "<script language=JavaScript>
           <!--
	      location.href = 'login.html';
	   -->
	   </script>
	  "; 
?>
-- logout.html --

# while :
> do
>   ls -l /tmp
>   sleep 2
>   clear
> done
============================================================


'Linux > 기타' 카테고리의 다른 글

ucspi-tcp 설치하기  (0) 2015.06.12
네임서버 세팅하기  (0) 2015.06.11
db 활용  (0) 2015.05.28
어셈블리[if]  (0) 2015.05.26
ebp  (0) 2015.05.19