이번 포스트는 낚시와 관련된게 아니라 제가 현재 회사에서 작업을 하고 있거나 했던 내용을 참고 하기 위해 올리는거라 설명이 별루 없으며 순간 순간 수정이 되오니 ㅎㅎ 양해 바랍니다.

ㅠ.ㅠ 출조 가고파요~~ 족저근막염 때문에 출조를 못 나가니.. 이거워 야 원....

아무튼 낚시와 관련된게 아니니 서버쪽과 관련이 없으신분들은 패스~~~하세요!!!

고객사에서 이번에 HP Server(HP ProLiant DL360 G9)를 새로 구입을 하였는데 따로 RAID Controller를 구입하지 않으시고 내장 RAID Controller B140i을 사용 하시네요. B140i를 사용할때에는 CentOS 설치시 반드시 dd 형식으로 설치 해야하는데 HP에서 B140i에서 CentOS 설치 지원되는 최소 버젼이 6.6 버전이라 어차피 dd 로 올릴꺼 최신 버전으로 CentOS 7(x86_64 1804) 설치를 합니다.

문제는 현재 사용하고 있는 APM(Apache, PHP, Mysql) 들이 CentOS 6.2 버전이고 홈페이지 소스를 관리하는 업체에서 최대한 APM 버전을 그대로 해달라는 요청에 저만 죽어나네요.

RPM, yum 으로 APM 예전 버전들을 찾아서 설치해 보았으나 모조리 실패~~!!

어쩔수 없이 Source 컴파일 설치를 시작합니다.

APM Source 파일을 찾아서 다운로드 하는것만 해도 하루 지나가네요. ㅡ,.ㅡ

예전 설치 환경

OS : CentOS 6.2

Apache : httpd-2.2.24

MySQL : MySQL 5.1.52

PHP : 5.3.3

새로 설치 환경

OS : CentOS 7.5(x86_64 1804)

Apache : httpd-2.2.24

MySQL : MySQL 5.1.52

PHP : 5.3.3

MySQL 5.1.52 Source 컴파일 설치

다운로드 경로 :

# wget https://downloads.mysql.com/archives/get/file/mysql-5.1.52.tar.gz

Source 로 설치시 필요한 의존성 패키지를 모조리 설치합니다~

# yum install -y wget patch pcre-devel lua-devel libxml2-devel ncurses-devel zlib zlib-devel curl openssl openssl-devel libtermcap-devel libc-client-devel bison gcc g++ cpp gcc-c++ freetype freetype-devel freetype-utils gd gd-devel libjpeg libjpeg-devel libpng libpng-devel curl curl-devel flex php-mbstring libexif-devel libmcrypt libmcrypt-devel

# tar xvfpz mysql-5.1.52.tar.gz

# ./configure --prefix=/usr/local/mysql --enable-thread-safe-client --localstatedir=/usr/local/msyql/data --enable-shared --with-mysqld-user=mysql --with-charset=utf8 --with-extra-charsets=all --with-libedit --enable-assembler --sysconfdir=/etc

# make && make install

# useradd mysql

# chown -R mysql.mysql /usr/local/mysql

# chown -R mysql.mysql /usr/local/mysql/data

# chmod 755 /usr/local/mysql/data

# /usr/local/mysql/bin/mysql_install_db --user=mysql --datadir=/usr/local/mysql/data

# cp /usr/local/mysql/share/mysql/my-huge.cnf /etc/my.cnf

# cd

# vi ~/.bash_profile

PATH=$PATH:$HOME/bin:/etc/rc.d/init.d:/usr/local/mysql/bin

# /usr/local/mysql/bin/mysqld_safe --user=mysql &

# cp -a /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld

# chkconfig --add mysqld

그다음 root 암호 설정을 알아서...

APAHCE 2.2.24 컴파일 설치

다운로드 경로 :

# wget https://archive.apache.org/dist/httpd/httpd-2.2.24.tar.gz

# tar xfpz httpd-2.2.24.tar.gz

# cd httpd-2.2.24

# ./configure --prefix=/usr/local/apache2 --enable-rule=SHARED_CORE --enable-modules=all --enable-mods-shared=most --with-mpm=worker --enable-rewrite --enable-deflate --enable-headers --enable-so --enable-ssl --enable-unique-id

# make && make istall

# cp /usr/local/apache2/bin/apachectl /etc/rc.d/init.d/httpd

PHP 5.3.3 컴파일 설치

다운로드 경로 : http://php.net/releases/

# wget http://museum.php.net/php5/php-5.3.3.tar.gz

# tar xvfpz php-5.3.3.tar.gz

# cd php-5.3.3

# ./configure --prefix=/usr/local/php --with-mysql=/usr/local/mysql --with-apxs2=/usr/local/apache2/bin/apxs --with-config-file-path=/usr/local/apache2/conf --with-regex=php --with-zlib --disable-debug --enable-calendar --enable-ftp --enable-sockets --enable-sysvsem --enable-sysvshm --enable-mbstring --enable-magic-quotes

# make && make install

위의 명령어를 적었는데 아래와 같이 오류가 발생하면..

.. php-5.3.3/ext/dom/node.c: In function 'dom_canonicalization'

.. php-5.3.3/ext/dom/node.c: 1953:21: ............

.. php-5.3.3/ext/dom/node.c: 1955:5: ............

아래 명령어를 사용하여 다운 받아 진행을 합니다.

# wget -O php.patch https://mail.gnome.org/archives/xml/2012-August/txtbgxGXAvz4N.txt

(참조 : http://blog.naver.com/PostView.nhn?blogId=ssik425&logNo=10175143994)

# cd php-5.3.3

# patch -p0 -b < php.patch

# make && make install




1. hosts 호스트명 변경


# vi /etc/hosts

127.0.0.1    localhost    localhost.localdomain    도메인


2. 자체방화벽이 있다면 iptable, ip6table 정책 삭제 및 이름 변경

   CentOS 6.4 설치 후 iptable의 정책이 돌아가고 있으면 Apache 를 실행 하여도 접속하지 못함. 주의~


# rm /etc/sysconfig/iptables

# rm /etc/sysconfig/ip6tables 


3. Apache http.conf 수정


# vi /etc/httpd/conf/httpd.conf

276 줄에 있는 ServerName 변경


예) #ServerName www.example.com:80 을   # 없얘고  ServerName www.test.com(자기 도메인):80



4. php.ini 파일수정


# vi /etc/php.ini


229 줄에 있는 short_open_tab = Off 를  On 으로 변경

만약 위의 작업을 하지 않는다면 아무리 phpinfo() 파일을 해 봐도 화면에 나타나지 않음.. ㅡㅡ;



5. phpinfo 에서 mysql 적용이 되지않다면 php-mysql을 설치해야함 


# yum install php-mysql 


위의 문구만 치고 apache를 재시작 하면 적용 끝


# yum install php-mysql



이상 더 생각이 나면 추가 할 예정임..






 

Solaris8 (SPARC) APM 과 보안서버(SSL)설치

 


현재 제가 직접 설치한것을 토대로 글을 작성합니다. (2009.09.30)


환경 : Solaris 8 SPARC


1.
필요한  APM 및 라이브러리  다운

 

http://sunfreeware.com  에서 접속하여 오른쪽에 있는 해당 하드웨어 사항들을 체크한 다음  클릭하여  아래에 적힌 목록들을 다운

apache-2.2.9-sol8-sparc-local.gz
mysql-5.0.67-sol8-sparc-local.gz
ncurses-5.6-sol8-sparc-local.gz
php-5.2.6-sol8-sparc-local.gz
expat-2.0.1-sol8-sparc-local.gz
openldap-2.4.11-sol8-sparc-local.gz
sasl-2.1.21-sol8-sparc-local.gz
gcc-3.4.6-sol26-sparc-local.gz
libgcc-3.4.6-sol26-sparc-local.gz
libiconv-1.11-sol26-sparc-local.gz
libintl-3.4.0-sol26-sparc-local.gz
libxml2-2.6.31-sol26-sparc-local.gz
openssl-0.9.8i-sol26-sparc-local.gz
zlib-1.2.3-sol26-sparc-local.gz
libidn-1.10-sol8-sparc-local.gz
libpng-1.2.33-sol8-sparc-local.gz
curl-7.19.1-sol8-sparc-local.gz
fontconfig-2.4.2-sol8-sparc-local.gz
freetype-2.3.1-sol8-sparc-local.gz
gd-2.0.35-sol8-sparc-local.gz
jpeg-6b-sol8-sparc-local.gz
xpm-3.4k-sol8-sparc-local.gz


새로 Server를 설치하였다면 위의 목록들을 모두 받아놓는게 정신건강상 좋습니다.


~ 필요한거에요.


~ 혹시 위에 버젼보다 높은 버젼이 나왔다면 그걸 받아서 설치하셔도 됩니다.


위의 파일들은 모두 패키지 형식이기 때문에 gzip으로 압축만 풀고 간단한 명령어가 치면 자동으로

설치 됩니다.


) #  gzip -d gcc-3.4.6-sol26-sparc-local.gz


이렇게 모두 압축을 풀어주세요

압축을 풀게 되면 gcc-3.4.6-sol26-sparc-local 이렇게만 남습니다.


그다음 패키지를 풀면됩니다.


) # pkgadd -d gcc-3.4.6-sol26-sparc-local

Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]:  all

이렇게 모두 파일이름만 바꾸고 설치 하시면 됩니다.

 


2. PATH
설정


밑의 내용을 /etc/profile 에서 넣어주시면 됩니다.


# vi /etc/profile
# for Apache located at /usr/local/apache2
if [ -d /usr/local/apache2 ]
then
  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apache2/lib; export LD_LIBRARY_PATH
  PATH=$PATH:/usr/local/apache2/bin; export PATH;
fi
# for MySQL located at /usr/local/mysql
if [ -d /usr/local/mysql/lib/mysql ]
then
  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mysql/lib/mysql; export LD_LIBRARY_PATH
  PATH=$PATH:/usr/local/mysql/bin; export PATH;
fi



밑의 내용을 PATH  에 대해 적용 방법등을 적어놓았습니다.


현재 자신의 PATH 값을 보려면 아래와 같이 하면 됩니다.

# echo $PATH

 
그리고 PATH에 새로운 값을 추가하려면 아래와 같이 하면 됩니다.

 
# PATH=$PATH:/usr/local/bin:/usr/ccs/bin
# export PATH


위에서 /usr/local/bin /usr/ccs/bin 디렉토리를 추가했습니다. 이제 /usr/local/bin에 있는 명령어를 아무곳에서나 경로명 없이 실행할 수 있습니다.


하지만 위의 방법은 로그아웃하기 전까지만 유효합니다. 다시 로그인하면 또 위와 같이 PATH를 설정해줘야합니다.

그래서 이걸 자동적으로 적용되는 방법이 있는데 그건 사용자의 profile에 위의 내용들을 추가하는 겁니다.


# vi $HOME/.profile
PATH=$PATH:/usr/local/bin:/usr/ccs/bin
export PATH

만약 csh을 사용한다면 아래와 같이 하세요.

# vi $HOME/.login
setenv PATH $PATH:/usr/local/bin:/usr/ccs/bin



3. APM  설정


1) Apache


밑의 내용처럼  httpd.conf 파일을 수정해 주세요~!


# vi /usr/local/apache2/conf/httpd.conf
User nobody
Group nobody
daemon
으로 되어 있는걸 nobody로 수정


DefaultType text/plain
<IfModule mime_module> 
이부분에

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
위 두 내용을 추가.


LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule php5_module        modules/libphp5.so   
이부분 추가.

ServerName  192.168.1.69:80
IP
대신 도메인을 사용할 수 있음. test를 위해서는 일단 ip로 해도 괜찮아요.


Include conf/extra/httpd-mpm.conf
Include conf/extra/httpd-multilang-errordoc.conf
Include conf/extra/httpd-autoindex.conf
Include conf/extra/httpd-languages.conf
Include conf/extra/httpd-userdir.conf
Include conf/extra/httpd-info.conf
Include conf/extra/httpd-vhosts.conf
Include conf/extra/httpd-manual.conf
Include conf/extra/httpd-dav.conf
Include conf/extra/httpd-default.conf
Include conf/extra/httpd-ssl.conf
위의 사항들을 사용하고 싶다면 # 주석을 없애면 됩니다.


# /usr/local/apache2/bin/apachectl start


혹시 에러가 생기다면 필요한 라이브러리를 설치하지 않아 생겼을 테니 꼭 라이브러리를 설치하시길 바랍니다.

 

부팅시 자동으로 Apache를 구동할 수 있도록 스크립을 작성하겠습니다.
위의 사항들을 제대로 구성하셨으면 /etc/init.d/apache  라는 파일이 만들어져 있을껍니다.
이건 그냥 무시하시고 저는 간단하게 하기 위해 짧게 할 예정이라 한줄 밖에 안됩니다.
          
#vi /etc/init.d/apache2

#!/sbin/sh
#
# apache starting script
#

/usr/local/apache2/bin/apachectl start

더 이상 없습니다.


# chown root:sys /etc/init.d/apache2
소유자와 그룹을 root : sys로 변경

# chmod 744 /etc/init.d/apache2
파일 권한은 744

# ln /etc/init.d/apache2 /etc/rc2.d/S99apache  
# ln /etc/init.d/apache2 /etc/rc1.d/K16apache
# ln /etc/init.d/apache2 /etc/rcS.d/K16apache
여기에 링크를 걸어주시면 부팅시 자동으로 Apache 데몬이 작동이 됩니다.

 


2) PHP

cp /usr/local/php/doc/php/php.ini-recommended /usr/local/php/lib/php.ini
/usr/local/php/doc/php/php.ini-recommended
/usr/local/php/lib/php.ini 복사합니다.


테스트를 위해 아래 내용을 새로 작성

# vi /usr/local/apache2/htdocs/index.php
<?
  phpinfo()
?>

확인방법은 http://192.168.1.69/index.php  (이건 저의 셋팅에 따라 만든거에요)
제대로 되었다면 밑의 그림이 나올껍니다. ~ 그리고 이 테스트는 APM 모두 설치 셋팅한다음 테스트를 하시길 바랍니다.





3) MySQL


# useradd -d /export/home/mysql -g staff -m -u 102 -s /bin/false mysql
MySQL
을 사용할 계정을 추가


# cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf
# vi /etc/my.cnf
/usr/local/mysql/share/mysql
my-huge.cnf, my-large.cnf, my-medium.cnf, my-small.cnf 의 예제 설정 파일이 있다. 이를 /etc/my.cnf 으로 이름을 바꿔 복사하면 된다.


skip-networking
#log-bin
리플리케이션을 사용하지 않는다면 [log-bin]을 찾아 주석처리하고 외부에서 접속이 없다면 [skip-networking]의 주석을 푼다.


# /usr/local/mysql/bin/mysql_install_db
기본 MySQL DB를 생성


# chown -R mysql:staff /usr/local/mysql/var
기본 MySQL DB가 생성되는  /usr/local/mysql/var 의 디렉토리 및 파일들의 소유자를 mysql  그룹은 staff로 변경


# /usr/local/mysql/share/mysql/mysql.server start
MySQL
서버를 시작
종료는 /usr/local/mysql/share/mysql/mysql.server stop


# /usr/local/mysql/bin/mysqladmin -u root password 'PASSWORD'
MySQL
root 패스워드를 변경
기본값은 없기 때문에 보안을 위해서 반드시 수정


# /usr/local/mysql/bin/mysqladmin -u root -h test -p password 'NEW-PASSWORD'
Enter password: PASSWORD
위처럼 하시면 새로운 패스워드로 변경이 됩니다. 위에서  test host 이름입니다.

 

 

부팅시 자동으로 Mysql를 구동할 수 있도록 스크립을 작성하겠습니다.

# vi /etc/init.d/mysql

#!/sbin/sh
#
# mysql starting script
#
 
/usr/local/mysql/bin/mysqld_safe &


# chown root:sys /etc/init.d/mysql
소유자와 그룹을 root : sys로 변경

# chmod 744 /etc/init.d/mysql
파일 권한은 744

# ln /etc/init.d/mysql /etc/rc2.d/S99mysql  

이렇게 하면 mysql도 부팅시 자동으로 데몬이 올라오게 됩니다.

 

 

 


 

4. 보안서버(SSL) 설치 및 설정

 


1) openssl 을 이용하여 key 파일 생성 및 csr 코드 생성

 

일단 ssle 인증서 키와 파일들을 저장할 디렉토리를 만들어놓습니다.

# mkdir /usr/local/apache2/conf/ssl

# cd /usr/local/apache2/conf/ssl

 

Ps. 꼭 개인키와 csr 코드 등은 복사등을 해서 백업을 해주시길 바랍니다.

 

- 개인Key 파일 생성

# openssl genrsa -des3 1024 > m-sys_co_kr.key

 

Generating RSA private key, 1024 bit long modulus

.................................++++++

...............++++++

e is 65537 (0x10001)

Enter pass phrase:  <- 암호 필히 기억 (apache 실행시 사용함)

Verifying - Enter pass phrase:

 

만약 apache 실행시 암호를 사용하지 않고 사용하실려면 아래의 명령어를 통해 개인키를 생성하시길 바랍니다.

 

# openssl genrsa 1024 > m-sys_co_kr.key

 

 

 

- csr 코드 생성

# openssl req -new -key m-sys_co_kr.key -out m-sys_co_kr.csr

 

Enter pass phrase for m-sys_co_kr.key:

You are about to be asked to enter information that will be incorporated

into your certificate request.

What you are about to enter is what is called a Distinguished Name or a DN.

There are quite a few fields but you can leave some blank

For some fields there will be a default value,

If you enter '.', the field will be left blank.

-----

Country Name (2 letter code) [AU]:KR

State or Province Name (full name) [Some-State]:Busan

Locality Name (eg, city) []:BusanJin

Organization Name (eg, company) [Internet Widgits Pty Ltd]:Minerva Systems   <-회사명

Organizational Unit Name (eg, section) []:Technical Support Team   <-소속 부서

Common Name (eg, YOUR name) []:www.m-sys.co.kr    <-홈페이지 도메인

Email Address []:***@m-sys.co.kr

 

Please enter the following 'extra' attributes

to be sent with your certificate request

A challenge password []:    <- 암호 필히 기억

An optional company name []:


 

 

- csr 코드 확인(보안상 *** 처리하였습니다)

# cat m-sys_co_kr.csr

 

-----BEGIN CERTIFICATE REQUEST-----

MIIB/jCCAWcCAQAwgagxCzAJBgNVBAYTAktSMQ4wDAYDVQQIEwVCdXNhbjERMA8G

A1UEBxMIQnVzYW5KaW4xGDAWBgNVBAoTD01pbmVydmEgU3lzdGVtczEfMB0GA1UE

***********************

934AJEaN5VPO3RJR6w4O2GwW/AM3iNuNr2IaBJmfKip9gA==

-----END CERTIFICATE REQUEST-----

 

공공기관이나 교육기관 등등에서 사용하기 위해서는 위에 생성된 csr 코드를 SSL 인증키 업체에게 메일이나 웹으로 이 파일을 보내서 인증키 발급을 신청해야합니다.

 

메일이나 웹으로 csr 내용을 SSL 인증키 업체에게 보내서 인증서 발급을 받으면 key csr 파일이 있는 경로(저의 경우는  /usr/local/apache2/conf/ssl) ftp를 이용하시던 다른 어떤수를 사용해서라도 넣어놓으세요.  ㅎㅎ

 

자체 인증서를 만들어서 테스트하는 방법은 뒤에서 설명하도록 하겠습니다.

 

 

2) SSL을 사용하기 위한 httpd.conf & httpd-ssl.conf 수정

 

어떤 파일 형식으로 인증서를 받으실지 모르겠지만 대충 m-sys_co_kr.pem 으로 받았다고 가정하고 시작하도록 하겠습니다.

 

저는 그냥 m-sys_co_kr.pem 파일을 복사해서 이름을 바꾸어서 사용하였습니다.

 

# cp m-sys_co_kr.pem  m-sys_co_kr.crt

 

 

먼저 위에서 Apache의 옵션 httpd.conf 파일안에 있는

Include conf/extra/httpd-vhosts.conf

Include conf/extra/httpd-ssl.conf  이 두 부분에서 주석처리를 없애버렸기 때문에 바로 httpd-ssl.conf 를 수정하겠습니다.

 

 

# vi /usr/local/apache2/conf/extra/httpd-ssl.conf

 

 

##

## SSL Virtual Host Context

##

 

<VirtualHost 210.*.223.*:443> <-이부분 수정 해당 IP (보안상 * 표시하였습니다만.. -_-;)

 

#   General setup for the virtual host

DocumentRoot "/home1/homepage/www"   <- 수정

ServerName www.m-sys.co.kr:443  <- 수정

ServerAdmin kwonbk@m-sys.co.kr  <- 수정

ErrorLog "/usr/local/apache2/logs/m-sys.co.kr_ssl_error_log"  <- 알아서 수정하세요 ^^

TransferLog "/usr/local/apache2/logs/m-sys.co.kr_ssl_access_log" <- 이것도 ..

 

#   SSL Engine Switch:

#   Enable/Disable SSL for this virtual host.

SSLEngine on

 

#   SSL Cipher Suite:

#   List the ciphers that the client is permitted to negotiate.

#   See the mod_ssl documentation for a complete list.

SSLCipherSuite ALL:!ADH:!EXPORT56:RC4+RSA:+HIGH:+MEDIUM:+LOW:+SSLv2:+EXP:+eNULL

 

#   Server Certificate:

#   Point SSLCertificateFile at a PEM encoded certificate.  If

#   the certificate is encrypted, then you will be prompted for a

#   pass phrase.  Note that a kill -HUP will prompt again.  Keep

#   in mind that if you have both an RSA and a DSA certificate you

#   can configure both in parallel (to also allow the use of DSA

#   ciphers, etc.)

SSLCertificateFile "/usr/local/apache2/conf/ssl/m-sys_co_kr.crt"  <- 발급받은 인증서 경로

#SSLCertificateFile "/usr/local/apache2/conf/server-dsa.crt"

 

#   Server Private Key:

#   If the key is not combined with the certificate, use this

#   directive to point at the key file.  Keep in mind that if

#   you've both a RSA and a DSA private key you can configure

#   both in parallel (to also allow the use of DSA ciphers, etc.)

SSLCertificateKeyFile "/usr/local/apache2/conf/ssl/m-sys_co_kr.key"  <- 개인키 경로

#SSLCertificateKeyFile "/usr/local/apache2/conf/server-dsa.key"

 

#   Server Certificate Chain:

#   Point SSLCertificateChainFile at a file containing the

#   concatenation of PEM encoded CA certificates which form the

#   certificate chain for the server certificate. Alternatively

 

#SSLCACertificateFile "/usr/local/apache2/conf/ssl.crt/ca-bundle.crt"  <- CA 있으면 추가~!

 

<FilesMatch "\.(cgi|shtml|phtml|php)$">

    SSLOptions +StdEnvVars

</FilesMatch>

<Directory "/usr/local/apache2/cgi-bin">

    SSLOptions +StdEnvVars

</Directory>

 

BrowserMatch ".*MSIE.*" \

         nokeepalive ssl-unclean-shutdown \

         downgrade-1.0 force-response-1.0

 

CustomLog "/usr/local/apache2/logs/ssl_request_log" \

          "%t %h %{SSL_PROTOCOL}x %{SSL_CIPHER}x \"%r\" %b"

 

</VirtualHost>

 


 

3) SSL 적용한 Apache 실행하기

 

이제 httpd-ssl.conf 파일을 저장하고 apache를 실행하시면 됩니다.

일단 테스트를 해서 옵션등에 에러가 없는지 확인하겠습니다.

 

# /usr/local/apache2/bin/apachectl –t

Syntax OK

 

이렇게 정상적인 OK 가 나오면 실행하시면 됩니다. 간혹 인증서 때문에 테스트에서는 정상 작동이 된다고 하지만 실행해보면 실패가 되는 경우가 있는데 운영중인 서버라면 httpd.conf 에서 Include conf/extra/httpd-ssl.conf 부분을 주석처리하고 일단 상황을 보시고 실행하시길 바랍니다.

 

그리고 Solaris에서는 모르겠지만 Linux 에서는 apache 2.x.x 버전은 openssl, 이 자체 내장되어서 나옵니다. sunfreeware 사이트에서 설치시 받아야할 항목을 모두 받아서 설치한거니 헷갈리지 마세요 ^^;  아참 apache 1.3.x 버전의 경우 apache 실행시 apachectl startssl 을 해야 하지만 apache 2.x.x 의 경우 밑의 명령어 처럼 start 명령어만 해주면 됩니다.

 

 

# ./apachectl start

Apache/2.2.12 mod_ssl/2.2.12 (Pass Phrase Dialog)

Some of your private key files are encrypted for security reasons.

In order to read them you have to provide the pass phrases.

 

Server www.m-sys.co.kr:443 (RSA)

Enter pass phrase:

 

OK: Pass Phrase Dialog successful.

 

 

이렇게 하고 443 Port가 사용하고 있는지 확인하세요.

 

# netstat –an | grep 443

 

*.443                *.*                0      0 24576      0 LISTEN

      *.443                             *.*                             0      0 24576      0 LISTEN

 

 

443 Port 가 열려있다면 이제 익스플로러나 파폭등을 이용해서 https://m-sys.co.kr 주소로 들어가시면 SSL 보안이 실행되고 있는지 확인하실 수가 있습니다.

 


 

 

4) 자체 인증서 만들기

 

# openssl genrsa 1024 > m-sys_co_kr.key

 

# openssl req -new -key m-sys_co_kr.key -out m-sys_co_kr.csr

 

# openssl x509 -in m-sys.co.kr.csr -out m-sys.co.kr.crt -req -signkey m-sys.co.kr.key -days 3650

Signature ok

subject=/C=KR/ST=Busan/L=Busan/O=Minerva Systems/OU=Technical Support Team/CN=www.m-sys.co.kr/emailAddress=****@m-sys.co.kr

Getting Private key

 

이건 자체 테스트용으로 한것이기 때문에 기간은 10년으로ㅎㅎ

 

이렇게 하신다음 apache를 재시작 하시면 됩니다.

 

 

 

5) 각 운영체제 별 현재 설치된 apache, openssl 등을 확인 방법

 

- Linux

 

# rpm –qa | grep apache

# rpm –qa | grep ssl

 

# find / -name apache

# find / -name ssl

 

 

- Solaris

 

# pkginfo | grep apache

# pkginfo | grep ssl

 

# find / -name apache

# find / -name ssl

 

 


현재 제가 직접 설치한것을 토대로 글을 작성합니다. (2008.11.13)


환경 : Solaris 8 SPARC


1. 필요한  APM 및 라이브러리  다운

 

http://sunfreeware.com  에서 접속하여 오른쪽에 있는 해당 사항들을 클릭하여  아래에 적힌 목록
들을 다운

apache-2.2.9-sol8-sparc-local.gz
mysql-5.0.67-sol8-sparc-local.gz
ncurses-5.6-sol8-sparc-local.gz
php-5.2.6-sol8-sparc-local.gz
expat-2.0.1-sol8-sparc-local.gz
openldap-2.4.11-sol8-sparc-local.gz
sasl-2.1.21-sol8-sparc-local.gz
gcc-3.4.6-sol26-sparc-local.gz
libgcc-3.4.6-sol26-sparc-local.gz
libiconv-1.11-sol26-sparc-local.gz
libintl-3.4.0-sol26-sparc-local.gz
libxml2-2.6.31-sol26-sparc-local.gz
openssl-0.9.8i-sol26-sparc-local.gz
zlib-1.2.3-sol26-sparc-local.gz
libidn-1.10-sol8-sparc-local.gz
libpng-1.2.33-sol8-sparc-local.gz
curl-7.19.1-sol8-sparc-local.gz
fontconfig-2.4.2-sol8-sparc-local.gz
freetype-2.3.1-sol8-sparc-local.gz
gd-2.0.35-sol8-sparc-local.gz
jpeg-6b-sol8-sparc-local.gz
xpm-3.4k-sol8-sparc-local.gz


새로 Server를 설치하였다면 위의 목록들을 모두 받아놓는게 정신건강상 좋습니다.


꼭~ 필요한거에요.


아~ 혹시 위에 버젼보다 높은 버젼이 나왔다면 그걸 받아서 설치하셔도 됩니다.


위의 파일들은 모두 패키지 형식이기 때문에 gzip으로 압축만 풀고 간단한 명령어가 치면 자동으로

설치 됩니다.


예) #  gzip -d gcc-3.4.6-sol26-sparc-local.gz


이렇게 모두 압축을 풀어주세요

압축을 풀게 되면 gcc-3.4.6-sol26-sparc-local 이렇게만 남습니다.


그다음 패키지를 풀면됩니다.


예) # pkgadd -d gcc-3.4.6-sol26-sparc-local

Select package(s) you wish to process (or 'all' to process
all packages). (default: all) [?,??,q]:  all

이렇게 모두 파일이름만 바꾸고 설치 하시면 됩니다.

 


2. PATH 설정


밑의 내용을 /etc/profile 에서 넣어주시면 됩니다.


# vi /etc/profile
# for Apache located at /usr/local/apache2
if [ -d /usr/local/apache2 ]
then
  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/apache2/lib; export LD_LIBRARY_PATH
  PATH=$PATH:/usr/local/apache2/bin; export PATH;
fi
# for MySQL located at /usr/local/mysql
if [ -d /usr/local/mysql/lib/mysql ]
then
  LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/usr/local/mysql/lib/mysql; export LD_LIBRARY_PATH
  PATH=$PATH:/usr/local/mysql/bin; export PATH;
fi



밑의 내용을 PATH  에 대해 적용 방법등을 적어놓았습니다.


현재 자신의 PATH 값을 보려면 아래와 같이 하면 됩니다.

# echo $PATH

 
그리고 PATH에 새로운 값을 추가하려면 아래와 같이 하면 됩니다.

 
# PATH=$PATH:/usr/local/bin:/usr/ccs/bin
# export PATH

 
위에서 /usr/local/bin 과 /usr/ccs/bin 디렉토리를 추가했습니다. 이제 /usr/local/bin에 있는 명령어를 아무곳에서나 경로명 없이 실행할 수 있습니다.

 
하지만 위의 방법은 로그아웃하기 전까지만 유효합니다. 다시 로그인하면 또 위와 같이 PATH를 설
정해줘야합니다.

그래서 이걸 자동적으로 적용되는 방법이 있는데 그건 사용자의 profile에 위의 내용들을 추가하는 겁니다.

 
# vi $HOME/.profile
PATH=$PATH:/usr/local/bin:/usr/ccs/bin
export PATH

만약 csh을 사용한다면 아래와 같이 하세요.
 
# vi $HOME/.login
setenv PATH $PATH:/usr/local/bin:/usr/ccs/bin


 

3. APM  설정


1) Apache


밑의 내용처럼  httpd.conf 파일을 수정해 주세요~!


# vi /usr/local/apache2/conf/httpd.conf
User nobody
Group nobody
daemon 으로 되어 있는걸 nobody로 수정


DefaultType text/plain
<IfModule mime_module>  이부분에

AddType application/x-httpd-php .php
AddType application/x-httpd-php-source .phps
위 두 내용을 추가.

LoadModule alias_module modules/mod_alias.so
LoadModule rewrite_module modules/mod_rewrite.so
LoadModule php5_module        modules/libphp5.so   
이부분 추가.


ServerName  192.168.1.69:80
IP 대신 도메인을 사용할 수 있음. test를 위해서는 일단 ip로 해도 괜찮아요.


Include conf/extra/httpd-mpm.conf
Include conf/extra/httpd-multilang-errordoc.conf
Include conf/extra/httpd-autoindex.conf
Include conf/extra/httpd-languages.conf
Include conf/extra/httpd-userdir.conf
Include conf/extra/httpd-info.conf
Include conf/extra/httpd-vhosts.conf
Include conf/extra/httpd-manual.conf
Include conf/extra/httpd-dav.conf
Include conf/extra/httpd-default.conf
Include conf/extra/httpd-ssl.conf
위의 사항들을 사용하고 싶다면 # 주석을 없애면 됩니다.


# /usr/local/apache2/bin/apachectl start


혹시 에러가 생기다면 필요한 라이브러리를 설치하지 않아 생겼을 테니 꼭 라이브러리를 설치하시길 바랍니다.


부팅시 자동으로 Apache를 구동할 수 있도록 스크립을 작성하겠습니다.
위의 사항들을 제대로 구성하셨으면 /etc/init.d/apache  라는 파일이 만들어져 있을껍니다.
이건 그냥 무시하시고 저는 간단하게 하기 위해 짧게 할 예정이라 한줄 밖에 안됩니다.
          
#vi /etc/init.d/apache2

#!/sbin/sh
#
# apache starting script
#

/usr/local/apache2/bin/apachectl start

더 이상 없습니다.


# chown root:sys /etc/init.d/apache2
소유자와 그룹을 root : sys로 변경

# chmod 744 /etc/init.d/apache2
파일 권한은 744로

# ln /etc/init.d/apache2 /etc/rc2.d/S99apache  
# ln /etc/init.d/apache2 /etc/rc1.d/K16apache
# ln /etc/init.d/apache2 /etc/rcS.d/K16apache
여기에 링크를 걸어주시면 부팅시 자동으로 Apache 데몬이 작동이 됩니다.



2) PHP

cp /usr/local/php/doc/php/php.ini-recommended /usr/local/php/lib/php.ini
/usr/local/php/doc/php/php.ini-recommended를 /usr/local/php/lib/php.ini 복사합니다.


테스트를 위해 아래 내용을 새로 작성

# vi /usr/local/apache2/htdocs/index.php
<?
  phpinfo()
?>

확인방법은 http://192.168.1.69/index.php  (이건 저의 셋팅에 따라 만든거에요)
제대로 되었다면 밑의 그림이 나올껍니다. 아~ 그리고 이 테스트는 APM 모두 설치 셋팅한다음 테스트를 하시길 바랍니다.





3) MySQL


# useradd -d /export/home/mysql -g staff -m -u 102 -s /bin/false mysql
MySQL을 사용할 계정을 추가


# cp /usr/local/mysql/share/mysql/my-medium.cnf /etc/my.cnf
# vi /etc/my.cnf
/usr/local/mysql/share/mysql 에 my-huge.cnf, my-large.cnf, my-medium.cnf, my-small.cnf 의 예제 설정 파일이 있다. 이를 /etc/my.cnf 으로 이름을 바꿔 복사하면 된다.


skip-networking
#log-bin
리플리케이션을 사용하지 않는다면 [log-bin]을 찾아 주석처리하고 외부에서 접속이 없다면 [skip-networking]의 주석을 푼다.


# /usr/local/mysql/bin/mysql_install_db
기본 MySQL DB를 생성


# chown -R mysql:staff /usr/local/mysql/var
기본 MySQL DB가 생성되는  /usr/local/mysql/var 의 디렉토리 및 파일들의 소유자를 mysql  그룹은 staff로 변경


# /usr/local/mysql/share/mysql/mysql.server start
MySQL 서버를 시작
종료는 /usr/local/mysql/share/mysql/mysql.server stop


# /usr/local/mysql/bin/mysqladmin -u root password 'PASSWORD'
MySQL의 root 패스워드를 변경
기본값은 없기 때문에 보안을 위해서 반드시 수정


# /usr/local/mysql/bin/mysqladmin -u root -h test -p password 'NEW-PASSWORD'
Enter password: PASSWORD
위처럼 하시면 새로운 패스워드로 변경이 됩니다. 위에서  test는 host 이름입니다.



부팅시 자동으로 Mysql를 구동할 수 있도록 스크립을 작성하겠습니다.

# vi /etc/init.d/mysql

#!/sbin/sh
#
# mysql starting script
#
 
/usr/local/mysql/bin/mysqld_safe &


# chown root:sys /etc/init.d/mysql
소유자와 그룹을 root : sys로 변경

# chmod 744 /etc/init.d/mysql
파일 권한은 744로

# ln /etc/init.d/mysql /etc/rc2.d/S99mysql  

이렇게 하면 mysql도 부팅시 자동으로 데몬이 올라오게 됩니다.



APM 모음팁

Posted 2008. 10. 24. 04:37


출처 : http://kldp.org/KoreanDoc/html/APM_tip-KLDP/

 

 

APM 팁 모음

김용일

nalabi@formail.org

$Date: 2002/11/22 05:31:05 $

 

홈페이지를 만들면서 그동안 조그마한 팁을 모아 놓은 것입니다.

 

고친 과정
고침 0.1 2002-11-16 고친이 김 용일
최초 작성

차례
1. 소개
1.1. 이글은
1.2. 덧글
1.3. 도와 주신분
1.4. 저작권
2. 설치
3. Apache
4. Html
5. Perl
5.1. 펄 사용하기 위한 apache, mysql 설정
5.2. 디렉토리, 화일 만들기
5.3. 시간 출력및 테이블 내용 출력
5.4. 이름을 입력받아 mysql에 저장하고 출력하기
5.5. 입력 받는 부분을 체크 하기
6. Php
6.1. 노프레임 만드는법
6.2. 이름을 입력받아 mysql에 저장하고 출력하기
6.3. 이름을 입력받아 체크하고 mysql에 저장하고 출력하기
6.4. 테이블 출력 프로그램
6.5. mysql_fetch_array 예제
6.6. 이미지 화일 출력
6.7. 달력 예제
6.8. 원하는 문자열 검색(ereg)
6.9. 인증 예제
6.10. 커널 버전 나타내주는 함수
6.11. 도메인 표시 함수
6.12. 문자열 체크 함수 예제(ereg)
6.13. ID체크 해주는 프로그램
6.14. 게시물 페이지 변경 예제
6.15. 정규표현식
6.16. 영어 단어 검색
6.17. IP 소속기관,회사 알아보기
6.18. 현재의 년/월/일 구하기
7. 자바스크립트
7.1. idcheck를 위한 예제
7.2. 메뉴 만들기 예제
8. Oracle
9. Mysql
9.1. mysql 주기적으로 백업하기
9.2. mysql 루트 패스워드를 잃어 버렸을 때
9.3. 데이타 타입 (테이블 생성시 컬럼의 데이타 타입입니다.)
9.4. 쉘에서 DB 내용 보기
9.5. Mysql에 들어가기
9.6. 데이타 백업 받기 (화일로 받음)
9.7. 데이타 입력하기 (화일--> Mysql)
9.8. 사용자 만들기
9.9. 테이블 만들기
9.10. 테이블 보기
9.11. 테이블 데이타 입력하기
9.12. 특정 필드만 입력
9.13. 테이블내용 보기
9.14. 필드 추가
9.15. 필드 삭제
9.16. 기타 alter 용법
9.17. 데이타 삭제
9.18. 데이타 수정
9.19. 내림 차순으로 정렬
9.20. 무작위 정렬
9.21. 년도순으로 정렬
9.22. 년도, 번호순으로 정렬
9.23. 20살 이상이 몇명인가를 찾는다.
9.24. null 값 검색하기
9.25. null 값 검색하기
9.26. 검색 하기
9.27. 범위 검색
9.28. in 검색
9.29. not in 검색
9.30. 날짜 검색하기
9.31. 테이블 내용을 화일로 만들기
9.32. 테이블 내용을 화일로 만들때 |로 구분하기
9.33. 화일을 불러오기
9.34. 사칙연산
9.35. 나이 계산하기
9.36. 유닉스 시간
9.37. 원격 DB 사용하기