Introducing 

Prezi AI.

Your new presentation assistant.

Refine, enhance, and tailor your content, source relevant images, and edit visuals quicker than ever before.

Loading…
Transcript

configure

스크립트는 현재 시스템에 어떤 프로그램과 라이브러리가 설치되어 있는지를 분석해

Makefile을 생성

make

실제로 소스를 컴파일하는 명령어

autotools

GNU 시스템에서 사용하는 빌드 도구

기존의 make를 이용하기 위한 Makefile을 쉽고 이식성있게 작성하기 위한 기법

Autoconf

자동으로 소스 프로그램을 설정하는 셀스크립트

Automake

GNU 코딩 표준에 준하는 Makefile을 자동으로 생성해주는 프로그램

Libtool

플랫폼간의 차이 및 플랫폼 상의 라이브러리 형식차이를 내부로 숨기기위해 설계된 것

pkgconfig

어플리케이션과 라이브러리를 컴파일할 경우 필요한 flag를 찾아주는 역할을 하는 소프트웨어.

--libs를 포함시킬경우 포함되어야할 라이브러리들에 대해서도 출력시켜준다.

findutils

파일시스템에 있는 파일을 찾을 때 사용. 많은 패키지들이 이를 사용해 설치 스크립트

(buildscripts)를 작성.

zlib

C언어로 작성된 데이터 압축 라이브러리

openldap

공개형 LDAP 엔진으로 TCP/IP 위에서 디렉터리 서비스를 조회하고 수정하는 응용 프로토콜이다.

openssl

공개형 Secure Socket Layer로 월드 와이드 웹 브라우저와 웹 서버 간에 데이터를 안전하게

주고 받기 위한 업계 표준 프로토콜

libxml2

XML C parser로서 리눅스의 Gnome 프로젝트를 위한 툴킷

freetype

폰트에 대한 정보를 추출하는 폰트 엔진

expat

소규모 XML 파싱 라이브러리. XML::Parser Perl 모듈에 필요

apr

아파치 포터블 런타임. 아파치 HTTP 서버 2.x.의 핵심이며 휴대용 라이브러리 (tomcat 기반)

httpd

httpd란 HTTP Protocol을 지원하는 daemon,

HTTP는 브라우저에서 해독가능한 http파일을 전송해주는 규약

config

./configure --prefix=/home/httpd

HTTP 설치 디렉토리 설정

--enable-modules=so

열거한 모듈들을 정적으로 링크 (mod_so를 올리기위한 옵션)

--enable-mods-shared=all

동적공유모듈로 컴파일할 모듈 목록을 지정

--enable-modules=shared

해당 모듈을 DSO 모듈로 컴파일

* DSO모듈 로딩방법 2가지

1. 실행프로그램이 시작할때 ld.so라는 시스템 프로그램이 로딩을 자동으로 하는 경우

2. 실행중인 프로그램에서 dlopen()/dlsym() 시스템콜로 유닉스 로더의 시스템

인터페이스을 사용하여 직접 로딩

--enable-ssl

mod_ssl이 제공하는 SSL/TLS 기능을 사용

--enable-rewrite

mod_rewrite가 제공하는 규칙기반 URL 조작 기능을 사용

--with-mpm=prefork

서버의 동작방식을 선택 (prefork : 한 자식프로세스당 하나의 쓰레드를 사용)

3.Servername 설정

vi /home/httpd/conf/httpd.conf

4.권한설정

chmod 755 /home/httpd

chmod 755 /home/httpd/htdocs

chmod 750 /home/httpd/logs

chmod 640 /home/httpd/logs/*

chmod -R 640 /home/httpd/conf

5.apache 시작

/home/httpd/bin/apachectl -t

/home/httpd/bin/apachectl start

-DCMAKE_INSTALL_PREFIX

-> MYSQL 디렉토리 설치경로 지정

-DMYSQL_DATADIR

-> MYSQL DATA 디렉토리 경로 지정

-DDEFAULT_CHARSET=charset_name

-> 기본 캐릭터셋을 지정

-DDEFAULT_COLLATION=collation_name

-> 캐릭터 셋의 collation을 지정하는 것

-DWITH_EXTRA_CHARSETS=name

-> 추가로 지원할 언어를 지정. 기본값은 all

-DENABLED_LOCAL_INFILE=boolean

-> SQL파일을 로드하게 해주는 기능 (on = 1)

-DWITHOUT_engine_STORAGE_ENGINE

-> 사용하고자 하는 스토리지 엔진을 지정

-DMYSQL_UNIX_ADDR

-> 서버가 소켓 연결을 수신하는 Unix 소켓 파일의 경로

-DSYSCONFDIR : DB디렉토리 지정

-DMYSQL_TCP_PORT : MYSQL 기본포트

cp support-files/mysql.server /etc/init.d/mysqld

vi /etc/init.d/mysqld

basedir=/usr/local/mysql

datadir=/home/data/mysqldata

cp support-files/my-default.cnf /etc/my.cnf

vi /etc/my.cnf //mysql 설정파일

basedir = /usr/local/mysql

datadir = /home/data/mysqldata

port = 44006

server_id = 1

socket = /tmp/mysql.sock

explicit_defaults_for_timestamp=true

/usr/local/mysql/scripts/mysql_install_db --defaults-file=/etc/my.cnf --user=mysql --basedir=/usr/local/mysql --datadir=/home/data/mysqldata

JDK

- 자바 개발을 위한 도구(Kit)

설치

rpm –qa | grep java ß 기존 rpm 삭제

ex) yum remove 해당 패키지 이름

cd /home/src

wget ftp:/?/linux/src/java/jdk/jdk-8u5-linux-x64.gz

tar xvf jdk-8u5-linux-x64.gz

mv jdk1.8.0_05/ /usr/local/java

vi /etc/profile

export JAVA_HOME="/usr/local/java/"

PATH="$JAVA_HOME/bin:$PATH“

export JAVA_OPTS="-Xms256m -Xmx1024m -XX:MaxPermSize=1024m"

source /etc/profile

java -version

APM설치 및 설정

1. Apache 설치 및 설정

2. Mysql 설치 및 설정

3. PHP 설치 및 설정

4. Apache + PHP 연동

5. Apache + tomcat 연동 (java기반)

4. Apache + PHP 연동

파서(parser) 역할을 하는 컴퓨터가 문장 단위의 문자열을 의미 있다고 여겨지는 토큰(token)으로 분류하고 이들을 구문 트리(parse tree)로 재구성하는 구문 분석 과정

# vi /home/httpd/conf/httpd.conf -> php 모듈 추가 확인

LoadModule php5_module modules/libphp5.so

# vi /home/httpd/conf/httpd.conf -> php 파싱 설정

AddType application/x-tar .tgz 아래 라인에 밑의 두 라인을 추가

AddType application/x-httpd-php .php .php3 .ph .inc .ini

AddType application/x-httpd-php-source .phps

Apache + PHP 연동 확인

# vi /home/httpd/htdocs/phpinfo.php

<? phpinfo(); ?>

2. Mysql 설치 및 설정

Apache + PHP 연동 확인

5. Apache + tomcat 연동 (java 기반)

Mysql

MySQL 멀티유저, 멀티 쓰레드 SQL 데이타베이스 서버

DB질의어(SQL), DB서버 데몬인 mysqld 와 여러 가지 이용자 프로그램 그리고 라이브러리로 구성

TOMCAT

JDK

tomcat

- 서버와 연동하여 실행할 수 있는 자바 환경을 제공하여

자바 서버 페이지(JSP)와 자바 서블릿이 실행할 수 있는 환경을 제공

설치

cd /home/src

wget ftp://?/linux/src/java/tomcat/apache-tomcat-8.0.5.tar.gz

tar xvf apache-tomcat-8.0.5.tar.gz

mv apache-tomcat-8.0.5 /usr/local/tomcat

cd /usr/local/tomcat/bin

./start.sh

(iptables에서 8080 port open)

(http://고객IP:8080 -> 고양이 마크와 version표시 확인)

설치

wget ftp://?/linux/src/cmake-2.8.4.tar.gz

tar xvzf cmake-2.8.4.tar.gz

cd cmake-2.8.4

./bootstrap

make && make install

groupadd -g 400 mysql

useradd -u 400 -g 400 -d /usr/local/mysql -s /bin/false mysql

cd /home/src

wget ftp://?/linux/src/sql/mysql-5.6.10.tar.gz

tar xvf mysql-5.6.10.tar.gz

cd mysql-5.6.10

cmake -DCMAKE_INSTALL_PREFIX=/usr/local/mysql -DMYSQL_DATADIR=/home/data/mysqldata -DDEFAULT_CHARSET=euckr -DDEFAULT_COLLATION=euckr_korean_ci -DWITH_EXTRA_CHARSETS=all -DENABLED_LOCAL_INFILE=1 -DWITH_INNOBASE_STORAGE_ENGINE=1 -DMYSQL_UNIX_ADDR=/tmp/mysql.sock -DSYSCONFDIR=/etc -DMYSQL_TCP_PORT=3306

make && make install

Tomcat 환경변수 설정

vi /etc/profile

CATALINA_HOME="/usr/local/tomcat"

PATH="$PATH:$CATALINA_HOME/bin"

export CATALINA_HOME="/usr/local/tomcat"

export CLASSPATH="$CLASSPATH":"$CATALINA_HOME"/lib

export JAVA_OPTS="-xms512m -Xmx1024m -XX:MaxPermSize=1024m"

Cmake

CMake는 멀티 플랫폼을 위한 빌드 지원 시스템이며 사용이 쉽고 관리하기 편리

1.Apache 설치 및 설정

tomcat 확인

java -version

apache

리눅스 와 유닉스 기반에서 동작하는 오픈소스

웹서버 프로젝트

chmod 700 /etc/init.d/mysqld

chown root.root /etc/init.d/mysqld

chkconfig mysqld on

chmod 711 /usr/local/mysql

chmod 700 /home/data/mysqldata

chmod 751 /usr/local/mysql/bin

chmod 750 /usr/local/mysql/bin/*

chmod 755 /usr/local/mysql/bin/mysql

chmod 755 /usr/local/mysql/bin/mysqldump

vi /etc/profile

export PATH=$PATH:/usr/local/mysql/bin

source /etc/profile

service mysqld start

mysqladmin –u root password ‘password’

※ 8글자 이상 문자 / 숫자 / 특수문자 조합

mysql -u root –p

Apache + Tomcat 연동

역할

tcp/ip 기반으로 http , https 등의 프로토콜을

구동할수 있는 환경을 만들어 주는 소프트웨어

3. PHP 설치 및 설정

<--------

스키마 생성 시 특별히 명시하지 않는 한 컬럼 속성은 표준방식인 NULL DEFAULT NULL로 지정

Apache + Tomcat 연동(1)

Apache + Tomcat 연동(2)

mysql 로그인

mysql port 확인

vi /home/httpd/conf/workers.properties // worker설정파일

workers.tomcat_home=/usr/local/tomcat

workers.java_home=/usr/local/java

worker.list=default

worker.default.type=ajp13 // apache + tomcat 프로토콜

worker.default.host=localhost // 호스트

worker.default.port=8009 // 포트

worker.default.lbfactor=1

worker.default.connection_pool_timeout=600 // 연결시간

worker.default.socket_keepalive=1

vi /home/httpd/conf/extra/httpd-vhosts.conf 가상호스트파일 설정

<VirtualHost 192.168.6.129:80>

ServerAdmin admin@yesidc.com

DocumentRoot "/home/httpd/htdocs"

ServerName 192.168.6.129

ErrorLog "|/home/httpd/bin/rotatelogs

/home/httpd/logs/yesidc-error_log.%y%m%d 86400"

CustomLog "|/home/httpd/bin/rotatelogs

/home/httpd/logs/yesidc-access_log.%y%m%d 86400" common

JkMount /*.jsp default

</VirtualHost>

cd /home/src

wget ftp:/?/linux/src/java/tomcat/tomcat-connectors-1.2.40-src.tar.gz

tar xvf tomcat-connectors-1.2.40-src.tar.gz

cd tomcat-connectors-1.2.40-src/native/

sh buildconf.sh

./configure --with-apxs=/home/httpd/bin/apxs

make && make install

vi /home/httpd/conf/httpd.conf // 앞파치 설정파일

Include conf/extra/httpd-vhosts.conf 주석해제

Directoryindex index.jsp

LoadModule jk_module modules/mod_jk.so // mod_jk.so 모듈로드

<IfModule mod_jk.c>

JkWorkersFile /home/httpd/conf/workers.properties

>> workers.properties 파일의 위치

JkShmFile /home/httpd/conf/logs/mod_jk.shm

JkLogFile /home/httpd/conf/logs/mod_jk.log

>> 로그파일 경로

JkLogLevel info

JkLogStampFormat "[%a %b %d %H:%M:%S %Y] "

>> 로그 형태 : 요일 월 일 시간정보와 연도

</IfModule>

config

설치 및 설정

yum install make gcc gcc-c++ autoconf automake libtool pkgconfig findutils zlib-devel openldap-devel openssl-devel libxml2-devel freetype-devel libtool-ltdl-devel expat-devel

1. vi server/mpm/prefork/prefork.c

define DEFAULT_SERVER_LIMIT 2048 수정 // 접속자수

* prefork.c -> php zend 모듈추기시

2.config

./configure --prefix=/home/httpd --enable-modules=so --enable-mods-shared=all --enable-modules=shared --enable-ssl --enable-rewrite --with-mpm=prefork

PHP

범용성을 지닌 널리 사용되는 오픈 소스 스크립트 언어. 특히, 웹 개발 및 HTML에 포함하기에 적합하다.

pcre-config error

-> Yum install pcre-devel

설치후 다시 config

Make && make install

Apache + Tomcat 연동(3)

아파치 실행후 index.html 화면

vi /usr/local/tomcat/conf/server.xml

<Host name="localhost" appBase="webapps"

unpackWARs="true" autoDeploy="true">  아래 라인에 Context path 추가

<Context path="" docBase="/home/httpd/htdocs" debug="0" privileged="true"/>

Tomcat 중지 > apache 재시작 -> tomcat 시작

Zend Guard Loader 설치

wget ftp://?/linux/src/apache/apr/apr-1.4.2.tar.gz

wget ftp://?/linux/src/apache/apr/apr-util-1.3.9.tar.gz

wget ftp://?/linux/src/apache/httpd-2.4.9.tar.gz

Zend Guard Loader 역활 : 암호화된 PHP프로그램을 실행만 시킴

과정

라이브러리

# vi /home/httpd/htdocs/tomcat.jsp

<br />

============apache tomcat connection test==================

<br />

--------------------<br />

apache + tomcat connect 10 + 1 = <%= 10 + 1 %>

<br />

--------------------<br />

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

# 인터넷 창에 -> http://서버IP/tomcat.jsp

cd /home/src

wget ftp:/?/linux/src/zend/ZendGuardLoader

-70429-PHP-5.4-linux-glibc23-x86_64.tar.gz

tar xvf ZendGuardLoader-70429-PHP-5.4-linux-glibc23-x86_64.tar.gz

cd ZendGuardLoader-70429-PHP-5.4-linux-glibc23-x86_64/php-5.4.x

cp ZendGuardLoader.so /home/httpd/modules/

vi /home/httpd/htdocs/phpinfo.php

# 아래 내용 추가

[Zend]

zend_extension=/home/httpd/modules/ZendGuardLoader.so

zend_loader.enable=1

php –v 확인

설치

vi /etc/profile

export CFLAGS="-fPIC"

//64bit시 컴파일 에러를 먼저 막아줌.

export CC="gcc"

- freetype : 폰트에 대한 정보를 추출하는 폰트 엔진

- libpng : png 이미지를 다루기 위한 라이브러리

- jpeg : jpeg 이미지를 다루기 위한 라이브러리

- zlib : 데이터 압축 라이브러리

- gd : gif 이미지를 다루기 위한 라이브러리

- libiconv : GNU 에서 만든 문자열 변환 라이브러리

- mcrypt : 암호화 라이브러리(복화화가능)

- mhash : MD5, SHA1, GOST 등 다양한 해시 알고리즘

지원해주는 라이브러리

apache + tomcat 연동 확인

* gd 라이브러리 에러

with Zend Guard Loader 추가

error : 'struct gdIoctx' has no member named 'data'

/usr/local/gd/gd_io.h 파일에 void (*data) 추가

PHP 설치(1)

cd /home/src

wget ftp:/??/linux/src/php/php-5.4.27.tar.gz

tar xzvf php-5.4.27.tar.gz

mv php-5.4.27 /usr/local/php

cd /usr/local/php

./configure

--with-apxs2=/home/httpd/bin/apxs

apache2와 연동 지원을 위한 디렉토리 설정

--with-config-file-path=/home/httpd/conf

php.ini 를 찾기 위한 디렉토리 설정

--with-mysql=/usr/local/mysql

mysql 경로 설정

--with-gd=/usr/local/gd --with-iconv=/usr/local/iconv --with-freetype-dir=/usr/local/freetype --with-zlib=/usr/local/zlib --with-png-dir=/usr/local/libpng --with-curl=/usr/local/curl --with-jpeg-dir=/usr/local/jpeg --with-mcrypt=/usr/local/mcrypt --with-mhash=/usr/local/mhash

라이브러리 경로 설정

--with-openssl : mod_ssl이 제공하는 SSL/TLS 기능 지원

--with-gdbm : GNU DBM 헤더파일과 라이브러리를 찾는 기능

--with-gettext : php내에 국제화를 위한 프로그램을 지원하기위해서 필요한 기능을 지원

--enable-sockets : 소켓 함수 사용 지원

--enable-sysvmsg : System V message 를 지원 (windows 지원 x)

--enable-sysvsem : System V Semaphore 를 지원 (windows 지원 x)

--enable-sysvshm : System V shared memory 를 지원 (windows 지원 x)

--enable-wddx : wddx 지원 (refresh가 없이 양방향 통신)

--enable-soap : SOAP 웹 서비스 지원

--enable-ftp : ftp 지원

--enable-mbstring=all : mbstring 함수를 설정 (언어지원)

--enable-gd-native-ttf : gd TrueType 문자열 지원

--enable-dba : dba 지원

PHP 설치(2)

vi /home/httpd/conf/php.ini

disable_functions=exec,passthru,shell_exec,system,proc_open,

popen,curl_exec,curl_multi_exec,parse_ini_file,show_source

해당 기능 사용 금지

- allow_url_fopen = Off

파일관련 함수에서 URL로 파일을 읽기 불가능

- date.timezone = Asia/Seoul

시간대 설정

- short_open_tag= On

짧은 태그 허용

(php 코딩을 시작할때 <? 이렇게 되있으면 인식을 못함

<?php라고 해야 인식을 하는데, <? 태그의 사용을 허가함

5.4 버전에서는 기본으로 Off 되어 있음)

error : please reinstaill the libcurl distribution

-> yum -y install curl-devel

Logo

Learn more about creating dynamic, engaging presentations with Prezi