실습 환경은 CentOS 7 버전입니다.
VMware에 Linux를 부팅시키고 putty를 이용하여 접속하였습니다.
'#> [명령어]' // [주석]
[]안의 부분만 보시면 됩니다.
'#'은 관리자, '$'는 유저입니다.
---------------------------------------------------------------------------
그동안 포스팅한
CentOS 7 설치 후 설정
FTP 구축
APM 구축(설치형 블로그 제외)
과정을 쉘 스크립트로 자동화 해보았습니다.
각 라인에 대한 설명은 아래와 같습니다.
[CentOS 7] 설치 후 설정(SELinux 비활성, iptables 설치, net-tools설치)
[Cent OS 7] ftp 서버 구축 및 보안설정(vsftpd 설치)
APM 구축 카테고리
아래로 내리면 뭔가 많아보이지만
정작 필요한 것만 쓰면 얼마 되지 않습니다.
1~20 라인
1 : bash shell을 의미합니다. 스크립트의 첫 번째로 작성해야합니다.
2 : ====를 출력합니다.
3 : start APM setup을 출력합니다.
이하 터미널상 단순 출력은 생략합니다.
5 : 2초 동안 잠시 멈춥니다. 과정을 천천히 보기위해 잠시 멈추었습니다.
이하 sleep 관련도 생략합니다.
6 : 터미널 상에 보이는 화면을 초기화 합니다.
이하 clear 명령어도 생략합니다.
12 : 시스템을 업데이트 합니다.
20 : ifconfig를 사용하기 위해 net-tools를 설치합니다.
21~39 라인
21 : rpm 명령어로 설치된 패키지를 확인합니다.
29 : iptables와 iptables-services를 설치합니다.
30 : 설치된 패키지를 확인합니다.
38 : firewalld를 중지합니다.
40~59 라인
43 : firewalld를 부팅 시 실행하는 것을 중지합니다.
54 : iptables를 시작합니다.
60~79 라인
62 : iptables를 부팅 시 시작하게 합니다.
66~71 : SELinux를 permissive로 운영할 때 주석을 제거합니다.
77 : FTP 데몬을 설치합니다.
78 : rpm 명령어로 설치된 패키지를 확인합니다.
80~99 라인
85 : SELinux를 활성화 모드로 사용했을때 ftp 설정입니다.
92 : /etc/vsftpd/chroot_list 파일을 생성합니다. 빈 파일입니다.
99 : /etc/vsftpd/vsftpd.conf 파일 안의 anonymous_enable=YES를 NO으로 변경합니다.
100~119 라인
106 : /etc/vsftpd/vsftpd.conf 파일 안의 #chroot_local_user=YES 부분의 #을 제거합니다.
113 : /etc/vsftpd/vsftpd.conf 파일 안의 #chroot_list_enable=YES 부분의 #을 제거합니다.
120~139 라인
120 : /etc/vsftpd/vsftpd.conf 파일 안의 #chroot_list_file= 부분의 #을 제거합니다.
125 : -n 옵션으로 echo 명령어가 끝나도 개행이 되지 않습니다.
126 : 터미널에 입력하는 문자열이 보이지 않습니다.
127 : c 언어의 scanf와 같은 문자열을 입력받는 기능입니다. 변수 p에 저장합니다.
128 : 이전에 개행을 하지 않아 여기서 개행을 합니다.
129 : 다시 터미널에 입력하는 문자열이 보입니다.
130 : 입력한 문자열을 확인하기 위해 하였습니다. $p는 변수 p를 참조합니다.
137 : 유저 test를 생성합니다.
138 : 명령어 passwd를 사용하면 두 번의 입력 값을 받는데 (echo $p; echo $p)가 순서대로 첫 번째, 두 번째 입니다.
대화형 명령어는 이렇게 사용하면 됩니다.
140~159 라인
146 : FTP 데몬을 실행합니다.
160~179 라인
160 : apache를 설치합니다.
168 : apache 서비스를 시작합니다.
176 : mariadb와 mariadb-server를 설치합니다.
177 : rpm 명령어로 설치한 패키지를 확인합니다.
180~199 라인
185 : mariadb를 시작합니다.
190~197 : 125~132번 라인과 동일합니다. 단지 변수가 pw으로 변경되었습니다.
200~219 라인
202 : 입력 받은 문자열로 DB의 관리자 비밀번호를 변경합니다.
209 : DB에 testuser를 생성합니다. 비밀번호는 1234
216 : testuser에 권한을 줍니다.
220~239 라인
223 : 설정을 적용합니다.
231 : php를 설치합니다.
232 : rpm 명령어로 설치한 패키지를 확인합니다.
239 : /var/www/html/phpinfo.php에
<?php
phpinfo();
?>
를 입력합니다. php 정보를 나타내줍니다.
240~259 라인
246 : -n 옵션은 개행을 하지 않습니다.
247 : ifconfig로 나타난 ip를 입력해서 변수 ip에 저장합니다.
248 : 아까 개행을 안했으므로 여기서 개행을 합니다.
254 : /etc/httpd/conf/httpd.conf 파일안의 #ServerName www.example.com을 ServerName [ip주소]로 변경합니다.
최종 결과는 ServerName [IP주소]:80으로 변경됩니다.
260~279 라인
262 : httpd 설정 파일을 수정하여서 apache를 재 시작합니다.
269 : php와 DB 연동 확인 코드입니다. 한 줄로 입력이 되어 있습니다.
$는 주로 변수와 같이 사용이 되므로 echo "$mysql_hostname"으로 입력하면 변수 mysql_hostname으로 인식이 되므로 db.php 파일에 문자열 그대로 입력이 될 수가 없습니다. 따라서 $를 일반 문자로 변경하기 위해 작은 따옴표( ' )로 감쌌습니다. 하지만 쌍 따옴표( " ) 안에는 ' 가 그대로 문자열로 인식이 되어 나타납니다. 273 라인으로 $를 감싸고 있던 '을 제거합니다.
273 : 파일 안의 '$'를 $로 변경합니다. 이때 sed 명령어를 "으로 감싼 것은 특수 문자를 그대로 나타내기 위함입니다.
280~299 라인
281 : 269 라인과 비슷합니다. perl 명령어가 스크립트에 그대로 입력하면 인식이 안되서 따로 파일을 만들어 터미널에 입력하는 명령어 처럼 표현하였습니다. 281 라인 또한 한 줄입니다. perl 명령어를 이용하여 파일 중간 원하는 라인에 문장을 넣을 수 있습니다.
300~303 라인
보다 간략히 할 수 있지만 이전 포스팅을 참고해서 과정을 그대로 스크립트로만 옮겼습니다.
긴 글 읽어주셔서 감사합니다.
오류나 틀린부분이 있으시면 댓글로 남겨주시면 감사하겠습니다.
여러분들과 같이 공부하는 공간이 되었으면 좋겠습니다.
'Linux > APM 구축' 카테고리의 다른 글
[CentOS 7] 설치형 블로그 구축하기(텍스트 큐브) (0) | 2021.01.30 |
---|---|
[CentOS 7] APM(apache, php, mariaDB)구축하기 번외(php-DB 연동 테스트) (0) | 2021.01.30 |
[CentOS 7] APM(apache, php, mariaDB)구축하기 3탄(php 설치) (2) | 2021.01.30 |
[CentOS 7] APM(apache, php, mariaDB)구축하기 2탄(mariaDB 설치) (0) | 2021.01.23 |
[CentOS 7] APM(apache, php, mariaDB)구축하기 1탄(기초 및 apache 설치) (0) | 2021.01.23 |
댓글