- 2014.12.31
[문제]
기존에 사용하던 Server 삭제 후 압축 2개 풀기
- DNS : 192.168.1.10
1) HDD : 1G(SCSI) : 200, 300, 500
2) automount
3) nfs로 200, 300, 500 빌려주기
4) host : ns, www, cafe, bank
5) domain : it.com
- WEB, DB : 192.168.1.20
1) nomal nfs(자동) : 200, 300
2) autofs : 500
3) web : www = 500 (/export/home/main/public_html) main 사용자
: cafe = 300 (/hosting/home/cafe/public_html) cafe 사용자
: bank = 200 (/hosting/bank)
4) db : dbwww, dbcafe
5) dbuser : userwww, usercafe
6) xe : www, cafe
7) index : bank.html
8) userdir : ~samadal 입력시 내용이 뜨도록
9) alias : /newyear 입력시 내용이 뜨도록
모든 설정 완료 후 DNS쪽 불여시에서 www.it.com, cafe.it.com, bank.it.com 입력 시 www, cafe 는 xe페이지가, bank는 bank.html 문서가 뜨도록 설정하세요
- 공통 설정
root 권한 획득 및 /etc/inittab 설정
network 설정
- DNS 측 설정
HDD 추가 및 automount
exports 설정 (nfs)
방화벽 설정
bind 설치
DNS 설정
.10 <-> ns.it.com.
.20 <-> 나머지
- WEB, DB 측 설정
automount 설정
skel 설정 후 main, cafe 사용자 생성
사용자들이 $HOME 이 다른 서버에 위치해있기 때문에 $HOME의 소유주는 NOBODY 이다.
mysql, php 설치
http 및 mysql 설정
[해답]
- 2014.12.31
[공통 설정]
root 권한 획득 및 /etc/inittab 설정
# vi /etc/inittab
26 id:5:initdefault:
network 설정
# vi /etc/sysconfig/network-scripts/ifcfg-eth0
1 DEVICE=eth0
2 TYPE=Ethernet
3 ONBOOT=yes
4 BOOTPROTO=none
5 IPADDR=192.168.1.10
6 PRIFIX=24
7 GATEWAY=192.168.1.2
8 DNS1=192.168.1.10
9 DNS2=192.168.1.2
10 DNS3=168.126.63.1
[ DNS 측 설정]
HDD 추가 및 automount
# vi /etc/fstab
19 /dev/sdb1 /sdb1 ext4 defaults 1 2
20 /dev/sdb2 /sdb2 ext4 defaults 1 2
21 /dev/sdb3 /sdb3 ext4 defaults 1 2
22 /dev/cdrom /cd iso9660 defaults 1 2
exports 설정 (nfs)
# vi /etc/exports
1 /sdb1 192.168.1.0/24(rw,no_root_squash)
2 /sdb2 192.168.1.0/24(rw,no_root_squash)
3 /sdb3 192.168.1.0/24(rw,no_root_squash)
bind 설치
DNS 설정
# vi /etc/named.conf
11 listen-on port 53 { any; };
12 listen-on-v6 port 53 { any; };
17 allow-query { any; };
18 recursion no;
# vi /etc/named.rfc1912.zones
43 zone "it.com" IN {
44 type master;
45 file "it.z";
46 allow-update { none; };
47 };
48
49 zone "1.168.192.in-addr.arpa" IN {
50 type master;
51 file "it.r";
52 allow-update { none; };
53 };
# vi /var/named/it.z
1 $TTL 1D
2 @ IN SOA ns.it.com. root.it.com.(
3 2014123101
4 3H
5 15M
6 1W
7 1D)
8 IN NS ns.it.com.
9
10 IN A 192.168.1.20
11 ns IN A 192.168.1.10
12 www IN A 192.168.1.20
13 cafe IN A 192.168.1.20
14 bank IN A 192.168.1.20
# vi /var/named/it.r
1 $TTL 1D
2 @ IN SOA ns.it.com. root.it.com.(
3 2014123101
4 3H
5 15M
6 1W
7 1D)
8 IN NS ns.it.com.
9
10 10 IN PTR ns.it.com.
11 20 IN PTR it.com.
12 20 IN PTR www.it.com.
13 20 IN PTR cafe.it.com.
14 20 IN PTR bank.it.com.
# /etc/rc.d/init.d/named restart
# /etc/rc.d/init.d/nfs restart
# chkconfig named on
# chkconfig nfs on
# system-config-firewall
NFS4 활성화
[ WEB, DB 측 설정]
automount 설정
# vi /etc/fstab
20 192.168.1.10:/sdb2 /hosting/home nfs defaults 1 2
21 192.168.1.10:/sdb1 /hosting/bank nfs defaults 1 2
# vi /etc/auto.master
7 /export /etc/auto.misc
# vi /etc/autofs.conf
38 browse_mode = yes
# vi /etc/auto.misc
16 home -rw,hard,intr 192.168.1.10:/sdb3
skel 설정 후 main, cafe 사용자 생성
사용자들이 $HOME 이 다른 서버에 위치해있기 때문에 $HOME의 소유주는 NOBODY 이다.
mysql, php 설치
http 및 mysql 설정
# vi /etc/httpd/conf/httpd.conf
44 ServerTokens PROD
262 ServerAdmin root@it.com
277 ServerName www.it.com:80
366 UserDir disabled
367 UserDir enable samadal
374 UserDir public_html
403 DirectoryIndex index.html index.php index.html.var bank.html
552 Alias /newyear "/newyear"
1012 <VirtualHost 192.168.1.20:80>
1013 DocumentRoot /export/home/main/public_html
1014 ServerName it.com
1015 </VirtualHost>
1016 <VirtualHost 192.168.1.20:80>
1017 DocumentRoot /export/home/main/public_html
1018 ServerName www.it.com
1019 </VirtualHost>
1020 <VirtualHost 192.168.1.20:80>
1021 DocumentRoot /hosting/home/cafe/public_html
1022 ServerName cafe.it.com
1023 </VirtualHost>
1024 <VirtualHost 192.168.1.20:80>
1025 DocumentRoot /hosting/bank
1026 ServerName bank.it.com
1027 </VirtualHost>
# /etc/rc.d/init.d/autofs restart
# /etc/rc.d/init.d/httpd restart
# /etc/rc.d/init.d/mysqld restart
# chkconfig autofs on
# chkconfig httpd on
# chkconfig mysqld on
'Study > CentOS' 카테고리의 다른 글
[40] 종합문제(2) (0) | 2015.04.06 |
---|---|
[38] myphpadmin(2), xe (0) | 2015.04.06 |
[37] mysql(2), mysql password 분실 시 대처 방법, myphpadmin(1) (0) | 2015.04.06 |
[36] Apache_VirtualHosts, user directory, mysql(1) (0) | 2015.04.06 |
[35] 종합 중간점검, Apache_Alias (0) | 2015.04.06 |
- 2014.12.30
1. myphpadmin
(어제에 이어서)
웹 브라우저에 linux_ip/myadm 을 치면 page 에 php 언어 내용이 그대로 노출된다.
그 말인 즉슨 서버에 php가 설치되어있지 않다는 것.
선생님이 준비한 php.iso를 리눅스에 업로드하여 마운트.
mount -o loop (블럭 디바이스로 마운트 할 것이라는 뜻)
-t iso9660 (cdrom 포맷 타입)
-r /iso이미지 위치 /m.p
# mkdir /php.iso
# mount -o loop -t iso9660 -r /export/home/samadal/php.iso /php.iso
마운트 포인트로 이동하여 어차피 모든 것을 설치해야 되니 아래 명령어로 진행
# rpm -ivh ./*
오류: Failed dependencies:
autoconf is needed by php-devel-5.3.3-38.el6.i686
automake is needed by php-devel-5.3.3-38.el6.i686
libXpm.so.4 is needed by php-gd-5.3.3-38.el6.i686
libc-client.so.2007 is needed by php-imap-5.3.3-38.el6.i686
libpq.so.5 is needed by php-pgsql-5.3.3-38.el6.i686
libaspell.so.15 is needed by php-pspell-5.3.3-38.el6.i686
libpspell.so.15 is needed by php-pspell-5.3.3-38.el6.i686
librecode.so.0 is needed by php-recode-5.3.3-38.el6.i686
libtidy-0.99.so.0 is needed by php-tidy-5.3.3-38.el6.i686
호환성 오류 뜨는 것들 중 autoconf, automake, libXpm.so.4 libtidy 는 cd에 있으니 설치.
나머지는 lib ~~ .so. 파일이니 --nodeps로 진행하면 된다.
# rpm -ivh ./* --nodeps
그래도 호환성 관련 파일 설치하고 싶으면 구글 통해 PKG 다운로드하여 설치.
아래 4개를 더 하면 된다.(아래의 것은 32bit centos6.6 32bit 용)
# wget ftp://rpmfind.net/linux/centos/6.6/os/i386/Packages/recode-3.6-28.1.el6.i686.rpm
# wget ftp://rpmfind.net/linux/centos/6.6/os/i386/Packages/aspell-0.60.6-12.el6.i686.rpm
# wget ftp://rpmfind.net/linux/centos/6.6/os/i386/Packages/postgresql-libs-8.4.20-1.el6_5.i686.rpm
# wget ftp://195.220.108.108/linux/centos/6.6/os/i386/Packages/libc-client-2007e-11.el6.i686.rpm
웹 서버 재시작 해줘야 정상 작동한다.
# /etc/rc.d/init.d/httpd restart
이제 웹브라우저에서 linux_ip/myadmin 들어가면 그래픽 환경으로 mysql 관리 가능하다.
(제대로 표시가 되지 않으면 주소를 다시 입력하거나 브라우저를 껐다 킨다.)
usertiger 로 로그인하려 했더니 어제 usertiger의 pw를 없애서 로그인이 안된다.
패스워드 추가 진행
# mysql -u root -p mysql
mysql> select host, user, password from user;
mysql> update user set password=password('samadal') where user='usertiger';
mysql> flush privileges;
이제서야 제대로 그래픽 환경에서 사용 가능. 작업 시 명령어 보여지니 명령어 보며 공부하는 것이 좋다.
헌데 database table의 보기 메뉴를 보다보면 아래 에러 메세지가 화면 중간에 뜬다.
"이 테이블에는 유일 속성을 가진 컬럼이 없습니다. 격자창 편집, 체크박스, 편집, 복사, 삭제 기능을 사용할 수 없습니다."
즉 여러가지 기능에 제한이 있다는 것이다. 에러 메세지를 해결해보자.
구조 - 유일 속성 설정할 항목 체크 - 기본 을 누른다.
명령어 = ALTER TABLE `tbtiger` ADD PRIMARY KEY ( `id` ) ;
이제는 보기에서 수정, 복사, 삭제가 쉽게 가능. 또한 내보내기, 가져오기를 통해 쉽게 백업 및 복구 가능하다.
그래픽 환경 뿐 아니라 명령어로도 내보내기, 가져오기를 할 수 있다.
# mysqldump -h localhost -u usertiger -p dbtiger > ./ti.sql
# mysql -u usertier -p dbtiger
mysql> drop table tbtiger;
mysql> Bye
# mysql -h localhost -u usertiger -p dbtiger < ./ti.sql
[정리]
- mysql 백업
# mysqldump -h localhost -u usertiger -p dbtiger > ./tiger.sql
- mysql 복구
# mysql -h localhost -u usretiger -p dbtiger < ./tiger.sql
2. XE
[실습]
www.xpressengine.com 에서 다운로드 눌러서 xe.zip 다운로드 후
linux로 업로드하여 익스플로러에서 linux_ip/xe 입력시 페이지가 뜨도록 설정
xe.zip을 리눅스에 업로드하여 ~main/public_html/ 로 파일을 이동한 뒤
# unzip xe.zip
[xe 설치]
설치언어 : 한국어
사용권동의
설치 조건 확인 : XE의 설치 경로 또는 ./files 디렉토리의 퍼미션이 707이어야 합니다.
# chmod 707 ./xe/
설치 조건 확인 : GD 라이브러리
cd에서 libXpm 설치
mysql 선택
먼저 기존 table 삭제부터 진행.
# mysql -u usertiger -p dbtiger
mysql> show tables;
mysql> drop table tbtiger;
DB 아이디 : usertiger
DB 비밀번호 : samadal
DB 이름 : dbtiger
시간 선택
이메일 주소, 비밀번호 등은 원하는 것으로 설정
끝
[Tip]
xe 압축 해제는 사용할 사용자 계정으로 풀어야 ftp 등을 정상 사용 가능하다.
[실습]
압축을 새로 푼 상태에서 아래와 같이 작업
host : ns, www
domain : silti.kr
ip : 192.168.1.123
db : dbti
user : userti
user : tiger
skel : /skel
auto creating directory : public_html
웹 기본경로 : /export/home/tiger/pubilc_html
모든 설정 완료 후 firefox에서 www.silti.kr 입력하면 바로 xe 페이지가 뜨도록 설정
- 자세한 실습 방법은 기존 게시물 검색하여 진행
1) single 모드로 부팅하여 root password 및 init5 로 부팅 설정
2) network scripts 설정 - ip, DNS, domain
3) putty login 하여 grub.conf 보안 설정
4) skel 작업 후 user 생성
5) http, bind, mysql, php 설치
6) httpd, dns, db 작업
7) xe 설치
'Study > CentOS' 카테고리의 다른 글
[40] 종합문제(2) (0) | 2015.04.06 |
---|---|
[39] 종합문제(1)_nfs, automount, dns, Apache, mysql (0) | 2015.04.06 |
[37] mysql(2), mysql password 분실 시 대처 방법, myphpadmin(1) (0) | 2015.04.06 |
[36] Apache_VirtualHosts, user directory, mysql(1) (0) | 2015.04.06 |
[35] 종합 중간점검, Apache_Alias (0) | 2015.04.06 |
- 2014.12.29
1. mysql
[문제]
mysql에 있는 samadal 관련 모든 정보 삭제 후 아래와 같이 설정
DB : dbtest
user : usertest
table : tbtest
fields : num int(10), name char(10), addr char(20), phone int(20)
values : 3개 아무거나
# service mysqld start
mysqld (을)를 시작 중: [ OK ]
# chkconfig mysqld on
# mysql -u root -p mysql
db 삭제
mysql> drop database dbsamadal;
mysql의 db 테이블 확인하여 해당 정보 삭제
mysql> desc db;
mysql> select host, db, user from db;
mysql> delete from db where user='usersamadal';
mysql의 user 테이블 확인하여 해당 정보 삭제
mysql> desc user;
mysql> select host, user, password from user;
mysql> delete from user where user='usersamadal';
db 생성 및 비어있는 테이블 확인
mysql> create database dbtest;
mysql> use dbtest;
mysql> show tables;
Empty set (0.00 sec)
mysql db 의 user 테이블에 usertest 라는 사용자 생성
mysql> use mysql;
mysql> desc user;
mysql> select host, user, password from user;
mysql> insert into user(host, user, password) values('localhost', 'usertest', password('samadal'));
생성한 사용자를 아까 만든 db와 연동
mysql> desc db;
mysql> select host, db, user from db;
mysql> insert into db values('localhost', 'dbtest', 'usertest',
-> 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y', 'y');
mysql> Bye
# /etc/rc.d/init.d/mysqld restart
usertest 사용자를 이용하여 dbtest db 편집
# mysql -u usertest -p dbtest
조건에 맞는 테이블 생성
mysql> show tables;
mysql> create table tbtest(num int(10), name char(10), addr char(20), phone int(20));
mysql> show tables;
테이블 상세 정보 확인
mysql> desc tbtest;
mysql> select num, name, addr, phone from tbtest;
values 입력
mysql> insert into tbtest(num, name, addr, phone) values(1, 'user1', 'seoul', '010-1111-1111');
mysql> insert into tbtest(num, name, addr, phone) values(2, 'user2', 'busan', '010-2222-2222');
mysql> insert into tbtest(num, name, addr, phone) values(3, 'user3', 'incheon', '010-3333-3333');
mysql> insert into tbtest(num, name, addr, phone) values(4, 'user4', 'daegu', '010-4444-4444');
mysql> select * from tbtest;
+------+---------+----------+---------+
| num | name | addr | phone |
+------+---------+----------+---------+
| 1 | user1 | seoul | 10 |
| 2 | user2 | busan | 10 |
| 3 | user3 | incheon | 10 |
| 4 | user4 | daegu | 10 |
+------+--------+-----------+---------+
=> phone 값의 values가 이상하다..?! phone의 type을 잘못 지정했기 때문에 이런 문제 발생.
[수정]
num => id char(10)
phone => char (20)
변경 후 전화번호가 정상적으로 뜨도록 설정
이름 및 타입 변경
mysql> alter table tbtest change num id char(10);
mysql> alter table tbtest modify phone char(20);
새로 phone 값 update
mysql> update tbtest set phone='010-1111-1111' where id='1';
mysql> update tbtest set phone='010-2222-2222' where id='2';
mysql> update tbtest set phone='010-3333-3333' where id='3';
mysql> update tbtest set phone='010-4444-4444' where id='4';
mysql> desc tbtest;
+---------+-----------+--------+------+----------+--------+
| Field | Type | Null | Key | Default | Extra |
+---------+-----------+--------+-----+-----------+--------+
| id | char(10) | YES | | NULL | |
| name | char(10) | YES | | NULL | |
| add r | char(20) | YES | | NULL | |
| phone | char(20) | YES | | NULL | |
+---------+-----------+--------+-----+-----------+--------+
mysql> select * from tbtest;
+----+---------+-----------+---------------------+
| id | name | addr | phone |
+----+---------+-----------+---------------------+
| 1 | user1 | seoul | 010-1111-1111 |
| 2 | user2 | busan | 010-2222-2222 |
| 3 | user3 | incheon | 010-3333-3333 |
| 4 | user4 | daegu | 010-4444-4444 |
+----+---------+-----------+---------------------+
=> int형은 오른쪽 정렬이지만 char 형은 왼쪽 정렬인 것도 확인할 수 있다.
[문제]
mysql에 있는 test 관련 정보 삭제 후 아래와 같이 설정
DB : dbtiger
user : usertiger
table : tbtiger
fields : id char(10), name char(10), addr char(50), tel char(20)
values : 3개 아무거나
삭제
# mysql -u root -p mysql
mysql> show databases;
mysql> drop database dbtest;
mysql> show tables;
mysql> desc user;
mysql> delete from user where user='usertest';
mysql> desc db;
mysql> delete from db where db='dbtest';
생성
mysql> create database dbtiger;
mysql> desc user;
mysql> insert into user(host, user, password) values('localhost', 'usertiger', password('samadal'));
mysql> select host, user, password from user;
mysql> desc db;
mysql> insert into db values('localhost', 'dbtiger', 'usertiger',
-> 'y','y','y','y','y','y','y','y','y','y',
-> 'y','y','y','y','y','y','y','y','y');
mysql> Bye
# service mysqld restart
# mysql -u usertiger -p dbtiger
mysql> create table tbtiger(id char(10), name char(10), addr char(50), tel char(20));
mysql> desc tbtiger;
mysql> insert into tbtiger values('1', 'aaa', 'seoul', '010-1111-1111');
mysql> insert into tbtiger values('1', 'aaa', 'seoul', '010-2222-2222');
mysql> insert into tbtiger values('1', 'aaa', 'seoul', '010-3333-3333');
mysql> insert into tbtiger values('1', 'aaa', 'seoul', '010-4444-4444');
mysql> select * from tbtiger;
[Tip]
db까지 만든 후 계정생성 및 연동까지 한번에 하는 명령어. (데몬 재시작 필요 없음)
db table user host pw
grant all privileges on dbtiger.* to 'usertiger'@'localhost' identified by 'samadal' with grant option;
(db 부분도 * 해버리면 관리자 만드는 것과 똑같은 효과.)
[Tip]
Table 이름 변경
ex)
mysql> rename table tbtiger to tbsilti
[Tip]
데몬 재실행 없이 재실행 효과 주는 명령어. (관리자 계정 이용)
mysql> flush privileges;
[Tip]
mysql 접속시 오류 중 111이 뜰 경우 /var/lib/mysql/mysql.sock 파일 삭제 후 데몬 재실행
만약 오류가 뜨는데 mysql.sock 파일이 없는 경우는 시스템 재부팅 후 연결
2. mysql password 분실 시 대처방법
# netstat -lntup | grep mysqld
# /etc/rc.d/init.d/mysqld stop
안전모드 들어가기 위해 종료되었는지 확인
# netstat -lntup | grep mysqld
# mysqld_safe --skip-grant-tables &
이제 패스워드 없이 접속 된다.
# mysql
mysql> use mysql;
mysql> select host, user, password from user;
mysql> update user set password='' where user='usertiger';
mysql> Bye
# /etc/rc.d/init.d/mysqld restart
-정리
1) mysql 데몬 정지
2) mysqld_safe --skip-grant-tables &
3) mysql
4) 수정
5) mysql 데몬 활성
/usr/bin/mysqld_safe 에 있는 듯한데 관리자만 실행 가능하도록 권한 설정 해야 보안이 더 완벽할듯
3. myphpadmin
mysql 을 그래픽 환경에서 관리할 수 있는 툴.
현재 우리가 사용하고 있는 mysql 버전에 맞게 phpmyadmin 다운로드.
[실습]
phpMyAdmin-4.0.10.7-all-languages 중에 linux에서 압축 풀수 있는 것 1개 다운 받아 업로드 후
internet expoler에서 linux_ip/myadmin 접속 시 페이지 뜰 수 있도록 설정
다운로드 하여 리눅스로 업로드
압축 해제
# tar xvfz phpMyAdmin-4.0.10.7-all-languages.tar.gz
# mv ./phpMyAdmin-4.0.10.7-all-languages/ /myadmin
# vi /etc/httpd/conf/httpd.conf
556 Alias /myadmin "/myadmin"
# /etc/rc.d/init.d/httpd restart
※ Alias 방식으로 해도 되지만 기존 설정되어있는 메인페이지 디렉터리 안 /myadmin 디렉터리에 압축을 풀어도 된다.
'Study > CentOS' 카테고리의 다른 글
[39] 종합문제(1)_nfs, automount, dns, Apache, mysql (0) | 2015.04.06 |
---|---|
[38] myphpadmin(2), xe (0) | 2015.04.06 |
[36] Apache_VirtualHosts, user directory, mysql(1) (0) | 2015.04.06 |
[35] 종합 중간점검, Apache_Alias (0) | 2015.04.06 |
[34] Apache (0) | 2015.04.06 |