이번 포스트는 낚시와 관련된게 아니라 제가 현재 회사에서 작업을 하고 있거나 했던 내용을 참고 하기 위해 올리는거라 설명이 별루 없으며 순간 순간 수정이 되오니 ㅎㅎ 양해 바랍니다.
ㅠ.ㅠ 출조 가고파요~~ 족저근막염 때문에 출조를 못 나가니.. 이거워 야 원....
아무튼 낚시와 관련된게 아니니 서버쪽과 관련이 없으신분들은 패스~~~하세요!!!
고객사에서 이번에 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 버전을 그대로 해달라는 요청에 저만 죽어나네요.
이렇게 Repository를 추가하시고 인스톨이나 업데이트를 하실 분은 아래의 명령어를 알맞게 사용하시면 됩니다.
- 최초 설치 시 -
# yum --enablerepo=webtatic install php
- 업데이트 시 -
# yum --enablerepo=webtatic update php
PHP 5.3에서 추가된 부분은 아래를 참고하시길 바랍니다. 네이스페이스가 추가된 부분은 정말 필요했던 부분인거 같습니다. Change Log를 보시면 자세한 설명도 나와있습니다.
The PHP development team is proud to announce the immediate release of PHP 5.3.0. This release is a major improvement in the 5.X series, which includes a large number of new features and bug fixes.
위의 파일들은 모두 패키지 형식이기 때문에 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
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로 변경
# 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 실행시 암호를 사용하지 않고 사용하실려면 아래의 명령어를 통해 개인키를 생성하시길 바랍니다.
이렇게 정상적인 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*.*00 245760 LISTEN
*.443*.*00 245760 LISTEN
443 Port 가 열려있다면 이제 익스플로러나 파폭등을 이용해서 https://m-sys.co.kr주소로 들어가시면 SSL 보안이 실행되고 있는지 확인하실 수가 있습니다.
아래의 내용을 찾아 추가
DirectoryIndex index.html index.php index.phtml index.jsp
이제 PHP에 ZendOptimizer 설치하기로 합니다...
ZendOptimizer 해당 디렉토리에서 install.sh을 수행시키고 계속 OK 눌러 주시면 설치가 완료된답니다.
마지막에 나오는 메세지는 "php.ini는 새로 심볼릭 링크 했다. 수정하고 싶으면 /usr/local/Zend/etc 에있는 php.ini를 해라."는 것이니 신경쓰지 말고 ㅋ.
그럼 이제 톰켓을 설치 해보도록 하자...
톰캣 4.x 버전을 구해서 /usr/local/tomcat에 먼저 둔답니다.
그리고 vi /root/.bash_profile, 파일을 열어서 환경 설정을 다음과 같이 합니다,
# 내용중 다음을 찾아서
<Server port="8005" shutdown="SHUTDOWN" debug="0">
# 밑줄에 다음을 입력한다.
<Listener className="org.apache.ajp.tomcat4.config.ApacheConfig" />
# 내용중 다음을 찾아서
<Host name="localhost" debug="0" appbase="webapps">
# 밑줄에 다음을 입력한다.
<Listener className="org.apache.ajp.tomcat4.config.ApacheConfig" append="true" />
이제 톰캣과 아파치의 연동되는 부분을 만들기로 하죠..
mod_jk.so 생성하기로 합니다..
# cd /usr/local/src
# tar xzvf jakarta-tomcat-connectors-4.1.12-src.tar.gz
# cd /tmp/jakarta-tomcat-connectors-4.1.12-src/jk/native
# ./buildconf.sh
# ./configure --with-apxs=/usr/local/apache/bin/apxs
# make
# make install
# ll /usr/local/apache/modules
톰캣을 기동 시키면 $catalina.sh start
/usr/local/tomcat/conf 밑에 jk와 auto 디렉토리가 자동으로 생기죠..
그 디렉토리 안에 프로퍼티 화일을 만들고 다음과 같이 설정한답니다.
$cd /usr/local/tomcat/conf/jk
$ vi workers.properties