Tech

APM 서버

onesixx 2011. 7. 28. 16:22
반응형

MySQL + Aphache 웹서버 구축

3. MY-SQL 설치

4. APACHE 설치

5. PHP 설치

 

6. APACHE, PHP 설정

7. PHP를 이용한 Web Test Page 작성

 

Directory 구조

 

C:\sixxAPM\ MySQL

                     Apache

                     PHP

C:\sixxSrvr\ datafiles

                    htdocs

 

 

MySQL 설치

설치

0. 설치파일 Download

http://www.mysql.com/downloads/mysql/
MySQL Community Server 5.5.15ver. 5.5.14

1. Setup 파일을 실행

2. Custom을 선택 
   - < MySQL의 설치 경로 변경> : ex) C:\sixxAPM\MySQL\

3. 설치 완료후 실행되는 MySQL 환경 설정 마법사 에서
  

    Detailed Configuration –> Developer Machine –> Multifunctional Database

    --> <<(Installation Path)>>  C:\sixxSrvr\ datafiles   –> Decision Support –> port 3306

    --> Manual Selected Default Character Set/ collation : euckr

    --> Service및 PATH 체크 –> 1

4. MySQL 설치 및 환경 설정이 완료정상적인 작동 확인

C:\sixxAPM\MySQL\bin>net stop SixxSrvrMySQL                
C:\sixxAPM\MySQL\bin>net start SixxSrvrMySQL

-----------------------------------------------

my.ini 설정

 

1. MySQL 설치 폴더 안의 my.ini 열기

2. [mysql]

    default-character-set=latin1

 

----------------------------------------------------------------------------------

MySQL 실행하기

1. 시작 > 실행 >cmd >    

   C:\Users\sixx>  cd \SixxAPM\mysql\bin 


  C:\Sixxsrvr\MySQL\bin>mysqld --install

      Service successfully installed.


 

5. MySQL 이 정상적으로 작동하는지 확인하기 위해 "mysql" 명령을 입력하여 MySQL 콘솔 화면으로 들어가는지 확인합니다. 

콘솔화면에서 나오려면 exit 또는 quit 라고 입력하고 엔터를 누르면 됩니다.

 

 

 

 

 

 

 

 

 

 

 

 

-----------------------

3. skip-character-set-client-handshake을 추가 ?

있는거

default-character-set=utf8

# The default storage engine that will be used when create new tables when
default-storage-engine=INNODB

# Set the SQL mode to strict
sql-mode="STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION"

max_connections=100

query_cache_size=0

table_cache=256

tmp_table_size=18M

thread_cache_size=8

#*** MyISAM Specific options

myisam_max_sort_file_size=100G

myisam_sort_buffer_size=35M

key_buffer_size=25M

read_buffer_size=64K
read_rnd_buffer_size=256K

sort_buffer_size=256K

 

#*** INNODB Specific options ***

innodb_additional_mem_pool_size=2M

innodb_flush_log_at_trx_commit=1

innodb_log_buffer_size=1M

innodb_buffer_pool_size=47M

innodb_log_file_size=24M

innodb_thread_concurrency=18

 

 

없는거

no-auto-rehash

[mysqldump]
quick
max_allowed_packet = 16M

[isamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[myisamchk]
key_buffer = 20M
sort_buffer_size = 20M
read_buffer = 2M
write_buffer = 2M

[mysqlhotcopy]
interactive-timeout

[mysqladmin]
user=root
password='1'
port=3306

# The MySQL server
[mysqld]
log-bin=mysql-bin

server-id   = 1

port=3306
skip-locking
key_buffer = 16M
max_allowed_packet = 1M
table_cache = 64
sort_buffer_size = 512K
net_buffer_length = 8K


read_buffer_size = 256K
read_rnd_buffer_size = 512K
myisam_sort_buffer_size = 8M

 

MS SQL



Apache 설치

설치

0.  설치파일 다운로드

    http://httpd.apache.org/download.cgi

     Win32 Binary without crypto (no mod_ssl) (MSI Installer):
     httpd-2.2.19-win32-x86-no_ssl.msi[PGP] [MD5] [SHA1]

 

1.Apache2.2의 설치파일을 실행합니다.

   충돌시 서비스 항목에서 IIS Admin을 중지,( 속성-> 사용안함으로 )

2. 서버 정보는 다음과 같이 입력합니다.

    Network Domain : localhost
  
Server name : 127.0.0.1
   Administrator’s Email Address = admin@localhost

3.설치 경로 수정을 위해 Custom을 선택 후 < C:\SixxAPM\Apache >를 지정하세요

 

4. 설치 완료후 서버폴던 htdocs 폴더 변경   (C:\sixxAPM\Apache\conf 의 httpd.conf파일)

   ==> 설정변경후 서비스재시작

   # 웹서비스경로

     DocumentRoot "D:/SixxSrvr/htdocs"

   # 웹서비스 디렉토리 설정

     <Directory "D:/SixxSrvr/htdocs">

5. 설치확인

   http://localhost/index.html    It works!

 

--------------------

httpd.conf 설정

 

# 기본 인덱스파일 (스페이스로 구분)

<IfModule dir_module>
    DirectoryIndex index.html index.php
</IfModule>

 

--------------------

LoadModule php5_module "c:/php5/php5apache2.dll"

AddType application/x-httpd-php .php .html .htm .php3 .php4 .php5 .inc .phtml

저장후 모니터 아래 우측에 아파치 서버 아이콘을 눌러서 [Restart]를 선택합니다.

 

 

# 서비스 Port

Listen 80

# 웹서비스경로
http://blog.naver.com/o_zoom/90071595629 참조

 

---------------------------------------------------------------------------

 

  

 


# DefaultType: the default MIME type the server will use for a document
# if it cannot otherwise determine one, such as from filename extensions.
# If your server contains mostly text or HTML documents, "text/plain" is
# a good value.  If most of your content is binary, such as applications
# or images, you may want to use "application/octet-stream" instead to
# keep browsers from trying to display binary files as though they are
# text.
#

AddType application/x-compress .Z
AddType application/x-gzip .gz .tgz  밑에

 

AddType application/x-httpd-php .php

LoadModule php5_module "C:\APM\PHP/php5apache2_2.dll"

PHPIniDir "C:\APM\PHP"

을 추가합니다.

이거 쫌…….

# Sixx   
    AddType application/x-httpd-php .php
    LoadModule php5_module "C:/Sixxsrvr/PHP/php5.dll"
    PHPIniDir "C:/Sixxsrvr/PHP"

빈공간에

2.AddDefaultCharset euc-kr을 추가합니다. <------- AddCharset UTF-8 .utf8

(주석을 푸는 방법은 앞의 #을 제거하면 됩니다.)

 

 

7. 시작->프로그램->Apache->Configure Apache Server->Test Configuration 로 문법 TEST시

cmd창에서 메세지가 뜨지 않는다면 httpd.conf 설정 파일의 수정이 잘되었습니다. ^^

 

httpd.exe: Syntax error on line 393 of C:/Sixxsrvr/Apache/conf/httpd.conf:
Can't locate API module structure `php5_module' in file C:/Sixxsrvr/PHP/php5.dll: No error

Note the errors or messages above, and press the <ESC> key to exit.  21...

======================================================

4.Apache2.2의 설치가 완료되면 cmd에서 명령어로 Apache2.2 서비스를 제어해봅니다.

C:\> net stop apache2.2 C:\> net start apache2.2

5. 문제가 없다면 자신의 IP주소로 접속하여 It work! 페이지를 확인이 가능합니다.

6. 시작프로그램에서 Monitor Apache Servers 삭제하여 불필요한 실행을 막으면 끝입니다.

==============================================

 

8. 마지막으로 Apache와 MySQL와의 연동과 웹서버의 기본 디렉토리가 제대로 바뀌었는지 확인해

보기 위해 C:/Sixxsrvr/WWW (C:\APM\PHP)index.php를 만들어 아래와 같은 화면이 뜨는지 실행해봅니다.

index.php의 내용은

<?
        phpinfo();
?>

 

입니다.

=======================================

http://blog.naver.com/sweety2407?Redirect=Log&logNo=130113668984

 

 

Sugar에 있는거

 

 

LoadModule access_module modules/mod_access.so
LoadModule auth_module modules/mod_auth.so

LoadModule imap_module modules/mod_imap.so
LoadModule negotiation_module modules/mod_negotiation.so
LoadModule userdir_module modules/mod_userdir.so
LoadModule ssl_module modules/mod_ssl.so

 

ServerName localhost:80

LogFormat "%{Referer}i -> %U" referer
LogFormat "%{User-agent}i" agent

 

AddLanguage ca .ca
AddLanguage cs .cz .cs
AddLanguage da .dk
AddLanguage de .de
AddLanguage el .el
AddLanguage en .en
AddLanguage eo .eo
AddLanguage es .es
AddLanguage et .et
AddLanguage fr .fr
AddLanguage he .he
AddLanguage hr .hr
AddLanguage it .it
AddLanguage ja .ja
AddLanguage ko .ko
AddLanguage ltz .ltz
AddLanguage nl .nl
AddLanguage nn .nn
AddLanguage no .no
AddLanguage pl .po
AddLanguage pt .pt
AddLanguage pt-BR .pt-br
AddLanguage ru .ru
AddLanguage sv .sv
AddLanguage zh-CN .zh-cn
AddLanguage zh-TW .zh-tw

AddCharset ISO-8859-1  .iso8859-1 .latin1
AddCharset ISO-8859-2  .iso8859-2 .latin2 .cen
AddCharset ISO-8859-3  .iso8859-3 .latin3
AddCharset ISO-8859-4  .iso8859-4 .latin4
AddCharset ISO-8859-5  .iso8859-5 .latin5 .cyr .iso-ru
AddCharset ISO-8859-6  .iso8859-6 .latin6 .arb
AddCharset ISO-8859-7  .iso8859-7 .latin7 .grk
AddCharset ISO-8859-8  .iso8859-8 .latin8 .heb
AddCharset ISO-8859-9  .iso8859-9 .latin9 .trk
AddCharset ISO-2022-JP .iso2022-jp .jis
AddCharset ISO-2022-KR .iso2022-kr .kis
AddCharset ISO-2022-CN .iso2022-cn .cis
AddCharset Big5        .Big5       .big5
# For russian, more than one charset is used (depends on client, mostly):
AddCharset WINDOWS-1251 .cp-1251   .win-1251
AddCharset CP866       .cp866
AddCharset KOI8-r      .koi8-r .koi8-ru
AddCharset KOI8-ru     .koi8-uk .ua
AddCharset ISO-10646-UCS-2 .ucs2
AddCharset ISO-10646-UCS-4 .ucs4
AddCharset UTF-8       .utf8

 

LoadModule php5_module "C:\sugarcrm/php/php5apache2.dll"
AddType application/x-httpd-php .php
PHPIniDir "C:\sugarcrm/php"
<Directory "C:\sugarcrm/htdocs/sugarcrm">
AllowOverride All
</Directory>

<Location /phpmyadmin >
    php_flag zlib.output_compression off
</Location>

<Directory "C:\sugarcrm/htdocs/phpmyadmin">
AuthType Basic
AuthName phpMyAdmin
AuthUserFile "C:\sugarcrm/apache2/users"
Require valid-user
Order allow,deny
Allow from all
Satisfy all
ErrorDocument 403 /pmaforbidden.html
</Directory>
AddType Application/x-httpd-php .php .phtml

 

 

S에만 있는거

 


LoadModule auth_basic_module modules/mod_auth_basic.so
LoadModule authn_default_module modules/mod_authn_default.so
LoadModule authn_file_module modules/mod_authn_file.so
LoadModule authz_default_module modules/mod_authz_default.so
LoadModule authz_groupfile_module modules/mod_authz_groupfile.so
LoadModule authz_host_module modules/mod_authz_host.so
LoadModule authz_user_module modules/mod_authz_user.so

 

DocumentRoot "C:/S/www" 

 

 

 

 

 



 

PHP 설치

설치

0.  설치파일 다운로드

     http://windows.php.net/download/

      PHP 5.3 (5.3.6)  php-5.2.17-Win32-VC6-x86
      Windows + 아파치(MPM prefork) : VC6 Thread Safe 버전

[주의점]
  웹서버인 Apache 또는 IIS에 따라, 
   PHP 컴파일러가 어느 웹서버와 연동해야 하는지를 결정하고 그에 맞는 프로그램을 설치해야 한다. 
  VC6로 시작하는 버전은 웹서버가 Apache 일때이고, 
  VC9으로 시작하는 버전은 IIS 가 웹서버일때이다.

 

1. PHP는 압폴파일 풀어  미리 지정한 폴더 에 붙여넣기

     C:\sixxAPM\PHP

2. 설치완료후, Apache 서비스 재시작

 

3. 설치확인

잊지 말고 가능하면 지켜야 할 부분은 Encoding 이다. 한글문제를 고려해서 UTF-8 로 저장해버릇하자. 파일의 이름은 phpinfo.php 로 했다. 파일 이름은 별로 중요하지 않지만 확장자는 반드시 php 여야 한다.

---------------------------------------------

Apache와 연동

1. 폴더내의 php.ini-dist의 사본(복사 -> 붙여넣기)을 만들고 php.ini으로 이름을 바꿔준다.

 

2. PHP폴더 안의 php5apache2_2.dll (C:\sixxAPM\PHP) 을 C:\WINDOWS\system32에 복사합니다.

3. 시스템 변수 추가

  내컴퓨터 -> 속성 –> 고급시스템설정 –> 고급 -> 환경변수를 클릭하여 PHP PATH를 추가합니다.

  시스템 변수 -> path -> 편집 -> 변수값 마지막에 ;C:\sixxAPM\PHP 를 추가하면 됩니다.

4. Apache서버의 configure 파일에 아래 문구 삽입

#Sixx
LoadModule php5_module C:/sixxAPM/PHP/php5apache2_2.dll
AddType application/x-httpd-php .php
AddHandler application/x-httpd-php .php
AddType application/x-httpd-source .phps

 
PHPIniDir "C:/sugarcrm/php"

-------------------------------------------------------------

5. php5 폴더의 php.ini 파일을 수정해야 합니다.  메모장과 같은 편집기를 이용하여 파일을 연뒤

#Sixx
    ScriptAlias /php/ "C:/sixxAPM/PHP/"
    action application/x-http-php "/PHP/php.exe"   이건 잘 모르겠음.

 

 

; PHP 보안모듈  Off 보안모듈사용중

register_globals = On

 

;

extension_dir = "C:\sixxAPM\PHP\ext"

 

; Maximum allowed size for uploaded files.
upload_max_filesize = 2000M

 

; Windows Extensions
extension=php_mysql.dll

 

http://shw3167.blog.me/120109620793

 

;
default_charset = "utf-8"

--------------------

오류

[crit] Apache is running a threaded MPM, but your PHP Module is not compiled to be threadsafe.  You need to recompile PHP.Pre-configuration failed

==> non thread 버전이 아니 threadsafe버전으로 변경

 

 

 

phpMyAdmin설치



phpMyAdmin 설치


  1. 1. 압축을 푼다.
    # tar xfvz phpMyAdmin-3.2.3-all-languages.tar.gz

  2. libraries 폴더로 들어간다
  3. 설정파일을 복사한다.
    # cp config.default.php config.inc.php

  4. 파일을 수정
    # vi config.inc.php
    $cfg['PmaAbsoluteUri'] = 'http://localhost/phpmyadmin';
    $cfg['blowfish_secret'] = 'elkha'; // cookie 값 입력 (아무거나 입력해도 됨)
    $cfg['Servers'][$i]['host']          = 'localhost';
    $cfg['Servers'][$i]['auth_type']     = 'cookie'; (작동 안되면 http 입력)
    $cfg['Servers'][$i]['user']          = 'root';
    $cfg['Servers'][$i]['password']      = 'mysql 비밀번호'; 

  5. 수정한 파일 이동
    # mv config.inc.php ../

  6. phpMyAdmin 접속할 수 있도록 웹폴더로 이동
    # cd ../
    # mv phpMyAdmin-3.2.3-all-languages /usr/local/apache/htdocs/phpmyadmin

  7. 웹에 접속해서 확인
    http://localhost/phpmyadmin 

==========================================================================================

--------------

 

 

http://blog.naver.com/kimlh2?Redirect=Log&logNo=40129461377

 

---------------------------------------------------------------- 

다음은 php.ini 파일 설정입니다.

 

 

 

 

DEV

zlib.output_compression = Off

serialize_precision = 17

enable_dl= Off

Upload_max_filesize= 2M

max_file_uploads = 20

mysql.allow_local_infile =On

---------

 

 

Sugar의 php.ini

;;;;;;;;;;;;;;;;;;;;
; Language Options ;
;;;;;;;;;;;;;;;;;;;;

zlib.output_compression = On

serialize_precision = 100

;;;;;;;;;;;;;;;;;;;;;;;;;
; Paths and Directories ;
;;;;;;;;;;;;;;;;;;;;;;;;;

include_path = “.;c:\sugarcrm\php\pear”    <-- include_path = ".:/php/PEAR"

extension_dir = “c:/sugarcrm/php/ext”

extension= java.so

enable_dl= On

upload_tmp_dir = “c:/sugarcrm/php/tmp

upload_max_filesize = 40M

extension=php_java.dll

extension=php_curl.dll

extension=php_imap.dll

extension=mbstring.dll

extension=php_mysql.dll

extension=php_openssl.dll

extension=php_xmlrpc.dll

 

mysql.default_port=3306

mysql.default_socket=”c:/sugarcrm/mysql/tmp/mysql.sock”

 

msql.allow_persistent=On

msql.max_persistent= –1

msql.max_links= -1

 

session.save_path = “c:/sugarcrm/php/tmp”

 

mssql.charset = “utf-8”

mysql.charset= “utf-8”

mbstring.internal_encoding=utf-8

 

[Java]
java.class.path   = "C:\A\jdk1.6.0_25\lib\tools.jar"
java.home         = "C:\A\jdk1.6.0_25"
java.java         = "C:\sugarcrm\php\PEAR\java"
java.library      = "C:\A\jdk1.6.0_25\jre\bin\server\jvm.dll"
java.library.path = "C:\A\jdk1.6.0_25"

 

<참조>

http://javaexpert.co.kr/124, Windows7 Apache 에서 PHP5.3 설치하기 PHP

 

------------

PHP(5.2이후 버전, 수동 인스톨)
1. 수동인스톨이므로 .zip 파일을 다운로드.
2. IIS서버와 연동할경우는 PHP 5.3 VC9 Non Thread Safe 또는 PHP 5.2 VC6 Non Thread Safe 다운로드.
3. PHP5.3 이후버전을 IIS7서버와 연동할경우 VC9버전 을 사용.
4. PHP를 Apache1 또는 Apache2와 연동할경우, PHP5.3 VC6 또는 PHP5.2 VC6를 사용.
 

5. VC9는 Visual Studio 2008로 컴파일이 되어 있으므로, 퍼포먼스나 안전성이 뛰어나다.
       VC9를 사용하기 위해서는 Microsoft 2008 C++ Runtime(x86) 또는 Microsoft 2008 C++ Runtime(x64)이 인스톨 되어 있어야한다.


6. VC6 x86 Thread Safe를 사용하자. VC6 x86 Non Thread Safe버젼은 php5apache2_2.dll 파일이 없다.

7. 다운받은 .zip 파일을 원하는 폴더에 압축을 푼다.
8. php.ini-production 파일을 php.ini로 이름 변경.


9. php.ini파일을 에디터로 열어서 extension_dir 항목을 변경. "C:\PHP\ext"를 자신의 설정에 맞게 변경하자. PHP확장모듈이 어디에 존재하는지에 대한 설정이다. 앞에 세미콜론이 있으면 지우도록 하자. 세미콜론이 있으면 주석이라는 의미.
10. Apache와 연동하기 위해 Apache폴더의 Conf폴더의 httpd.conf파일을 수정.
11. 제일 뒷부분에
      LoadModule php5_module "C:/php/php5apache2_2.dll" 
      AddHandler application/x-httpd-php .php                     #웹서버가 .php파일의 해석은 php에 넘겨라 의 설정
      PHPIniDir "C:/php/"                                                   #php.ini파일이 어디있는지 설정
를 추가. http.conf는 [\] 이 아닌 [/] 로 패스를 설정. 마지막이 폴더일 경우 [/]붙이자.
12. Apache를 재기동 시키고 확인.

 

 

http://zuriyang.tistory.com/8

 

 

-------------------------------------------------------------------------

윈도우는 멀티스레드 방식

리눅스는 멀티프로세스 방식


멀티스레드 환경에는 Non Thread Safe 버전

멀티프로세스 환경에는 Thread Safe 버전


 

MPM prefork는 멀티프로세스

MPM worker는 멀티스레드


스레드 안전 - 멀티스레드 환경하에 하나의 자원에 여러 스레드가 동시에 접근해도 프로그램의 실행에 문제가 없음을 뜻함


Windows + IIS(ISAPI) : VC9 Thread Safe 버전

Windows + IIS(CGI + FastCGI) : VC9 Non Thread Safe 버전

 

Windows + 아파치(MPM worker) : VC6 Thread Safe 버전

Windows + 아파치(MPM prefork) : VC6 Non Thread Safe 버전

 

 

 

Prefork는 일반적으로 Single CPU 또는 Dual CPU에서 성능이 좋고 Worker는 일반적으로 멀티 CPU 시스템에서 성능이 좋다.

  • Prefork
    <IfModule mpm_prefork_module>
          StartServers                   5
          MinSpareServers            5
          MaxSpareServers          10
          MaxClients                  150
          MaxRequestsPerChild     0
    </IfModule>
  • Worker
    <IfModule mpm_worker_module>
           StartServers                 2
           MaxClients               150
           MinSpareThreads       25
           MaxSpareThreads      75
           ThreadsPerChild         25
           MaxRequestsPerChild   0
    </IfModule>

Apache MPM 이란?
MPM (Multi-Processing Module) : 다중 처리 모듈
☞ apache 가 받아들인 요청을 처리하기 위해 "자식 process" 에게 분배하는 방식이다.

종류 : 여러가지 종류가 있으나 대표적인 prefork 방식과 Worker 방식만 소개 하겠습니다.

Prefork
실행중인 프로세스 복제하여 실행 ( 메모리 영역까지 같이 복제)
프로세스가 소비하는 메모리가 많음.
응답프로세스를 미리 띄워놓고 클라이언트 요청시 자식 프로세스가 반응하게 되는 방식.

prefork MPM ( --with-mpm=profork) 컴파일
Prefork 방식은 일반적으로 single CPU 또는 Dual CPU에서 성능이 좋고


Worker

worker MPM ( --with-mpm=worker) 컴파일
Worker 방식은 일반적으로 멀티 CPU 시스템에서 성능이 좋다.
요청을 thread 단위로 처리 ( 최대 64개의 thread 처리 가능 )
지정된 만큼의 프로세스와 각 스레드를 준비하여 클라이언트의 요청을 받아들이는 설정


Prefork 방식과 Worker 방식의 차이점


(1)  Worker가 Prefork에 비해 적은 메모리 사용한다.
(2)  Worker : 통신량이 많은 서버에 적절한 형태를 가진다.


(3)  Prefork : 안전하지 않은 제 3자가 만든 모듈을 사용할 수 있다.
(4)  Prefork : 디버깅이 빈약한 플랫폼에서 쉽게 디버깅 할 수 있다.
(5)  ‘Worker‘ 와 ‘Prefork‘ 의 속도는 비슷하다.
(6)  apache MaxClient : Prefork 방식일 경우 최대 256 까지 변경 가능하다.

prefork 의 구동 방식은 child 프로세스를 똑같이 복사하면서 access를 처리하여, 이로인해 메모리도 똑같이 복사하게 되며 당연히 메모리를 많이 소비합니다.

이러한 단점을 극복하고자 나온게 httpd-2x.x 부터는 mpm 중에서 worker 가 추가되어 나왔으며, 모든 access 를 하나의 쓰레드로 처리하여, 결론적으로 메모리 소비에는 어느 정도 효과가 있으나, 하나의 쓰레드가 문제가 생기면 해당 쓰레드에 access 중인 모든 프로세스에 문제가 발생됩니다.

결론적으로 복제된 프로세스만 영향을 받는 prefork 에 비해서 굉장히 불안해 집니다.

대안으로 하나의 쓰레드가 처리하는 access 프로세스를 64개로 기본적으로 제한하고, 또는 수정할 수 있게되어 있으나, 이 부분도 더 개선이 되어야겠습니다.

 

http://mojily.net/bbs/board.php?bo_table=B19&wr_id=91&sfl=wr_subject||wr_content&stx=&sst=wr_hit&sod=asc&sop=and&page=6

 

 

 

 

 

 

 

 

Prefork

- 쓰레드가 한개의 자식 프로세스를 여러개 사용하며 각 프로세스는 한번에 한 연결을 담당

- worker보다 좀 더 많은 메모리를 사용함

- 프로세스간 메모리를 직접 공유하지 않으므로, 메모리 공간이 독립적이어서 안정적임

 

 

 

 

 

 

설정 예 
<IfModule mpm_prefork_module> 
StartServers 5 
MinSpareServers 5 
MaxSpareServers 10 
MaxClients 150 
MaxRequestsPerChild 0 
</IfModule> 


옵션 설명 
StartServer 
아파치 구동시에 자식 프로세스 개수 지정 

MinSpareServers, MaxSpareServers 
부하가 적어서 MinSpareServers 개수 보다 적었을 경우 최소한 이 개수 만큼 유지하려고 아파치가 노력하고 
부하가 증가하여 프로세스 개수가 많아질 경우에 MaxSpareServers 개수 이하로 줄이려고 아파치는 노력한다. 
즉, 절대적인 수치가 아니다. 

MaxClient 
초기 시작시 실행가능한 최대 아파치 자식 프로세스의 개수를 지정 
*worker방식의 MaxClient 와는 전혀 다른 의미임. 

MaxReqeustPerChild 
클라이언트들의 요청 개수를 제한. 만약 자식 프로세스가 이 값만큼의 클라이언트 요청을 받았다면 이 자식 프로세스는 자동으로 죽게 된다. 0 일 경우엔 무한대

 

 

 

 

Worker

- 자식 프로세스들이 각각 여러 쓰레드를 사용하며, 각 쓰레드는 한번에 한 연결을 담당

- Prefork보다 메모리 사용량이 적음. 통신량이 많은 서버에 적절

- 쓰레드 간에 메모리 공간을 공유함. 리소스 경합이 발생하지 않도록 주의 필요.

 

 

 

 

설정 예 
<IfModule mpm_worker_module> 
StartServers 2 
MaxClients 150 
MinSpareThreads 25 
MaxSpareThreads 75 
ThreadsPerChild 25 
MaxRequestsPerChild 0 
</IfModule>

  

옵션 설명 
StartServers 
시작시에 생성되는 서버 프로세스의 개수 

MaxClient 
동시 연결가능한 클라이언트의 최대 개수. 

MinSpareThreads 
최소 thread 개수 

MaxSpareThreads 
최대 thread개수 

ThreadPerChild 
개별 자식 프로세스가 지속적으로 가질 수 있는 Thread의 개수 

MaxRequestPerChild 
자식 프로세스가 서비스할 수 있는 최대 요청 개수

 

 

 

 

 

 

* 확장성이 필요한 사이트는 worker방식을 택하고, 안정성과 오래된 소프트웨어와 호환성이 필요한 사이트는 Prefork를 사용하기도 한다.

* Linux의 경우, Prefork 방식이 Default이며, Worker방식을 사용하기 위해서는 설치시에 -with-mpm=worker 옵션을 주어야 한다.

  ex) ./configure --prefix=/home/paint/apache-2.2.15 --enable-mods-shared=all --enable-module=so --enable-so --with-mpm=worker

-------------------------------------------------------------------


http://javaexpert.co.kr/124
PHP 컴파일러가 어느 웹서버와 연동해야 하는지를 결정하고 그에 맞는 프로그램을 설치해야 한다. VC6로 시작하는 버전은 웹서버가 Apache 일때이고, VC9으로 시작하는 버전은 IIS 가 웹서버일때이다. 
그래서 필자는 여러 목록 중 [VC6 x86 Thread Safe(2010-Jul-21 20:06:17)] 을 다운받기로 했다. 당연히 Thread 처리가 되는 Thread Safe 버전을 쓸 것이다. 또한 필자는 위에서 언급했듯이 압축파일버전이 아니라 msi 버전 즉 [Installer] 버전을 다운받고자 한다.

 

----------------------------------------------------------------------------


 

 

ZendOptimizer 설치

ZendOptimizer는 PHP 소스를 암호화시켜 웹서버에 올리므로 보안성 강화와  퍼포먼스가 30%정도 향상된다고 합니다.

 

http://www.zend.com/en/downloads/

 

 

1. ZendOptimizer의 Setup파일을 실행합니다.

2. 설치 경로는 Default 폴더를 지정합니다.

3. Apache 웹서버의 버전은 2.2므로 Apache 2.x를 선택합니다.

4. php.ini의 위치를 지정합니다. 여기서는 C:\APM\PHP를 지정해줍니다.

5.Apache의 설치 경로를 지정해줍니다. 여기서는 C:\APM\Apache 지정해줍니다.

그리고 Next를 누르면 설치가 실행되며 나오는 대화상자마다 ok를 눌러주시면 됩니다.

MySQL + Aphache 웹서버 구축 다섯번째 단계인 ezSQL 설치 입니다.

1. ezSQL의 압축파일을 풀고 C:\APM\www\lib\DB를 만들어 안에 복사해줍니다.

2. 끝. 더이상의 설명은 생략합니다.

 

 

 

 

마지막으로 속성으로 11월 6일까지 내용을 구축해보도록 하겠습니다.

1. www.zip의 압축을 풀어 웹서버 기본 디렉토리에(C:\APM\www) 넣습니다.

2. 그후 C:\APM\www\message\documents 안에 있는 message.sql 파일을

루트 디렉토리(C:\)에 복사합니다.

3. cmd를 실행하여 루트 디렉토리로 이동한뒤 다음과 같은 커맨드를 입력합니다.

MySQL -u root -p < message.sql

이상없이 입력이 완료되면 아래 그림과 같이 에러 메세지가 안뜨게 됩니다.

4. 마지막으로 http://해당ip/message/writr.php로 들어가서 입력이 잘되는지 확인합니다.

5. 입력이 잘되었습니다. 캬캬.

이상 끝.

반응형

'Tech' 카테고리의 다른 글

Wol Wake On Lan Wan 어플  (0) 2011.08.19
nvlddmkm.sys  (0) 2011.08.09
IANA (Internet Assigned Numbers Authority)  (0) 2011.08.01
MB Setting  (0) 2011.07.22
파이어폭스 메모리 점유율 낮추기  (1) 2011.07.22
하드 디스크 숨기기  (0) 2011.06.18