Introducing
Your new presentation assistant.
Refine, enhance, and tailor your content, source relevant images, and edit visuals quicker than ever before.
Trending searches
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
파서(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(); ?>
Apache + PHP 연동 확인
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는 멀티 플랫폼을 위한 빌드 지원 시스템이며 사용이 쉽고 관리하기 편리
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 등의 프로토콜을
구동할수 있는 환경을 만들어 주는 소프트웨어
<--------
스키마 생성 시 특별히 명시하지 않는 한 컬럼 속성은 표준방식인 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 시작
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) 추가
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 지원
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