1. yum 초기화

※ yum repository를 초기화 진행합니다. ( yum이 정상적으로 진행된다면 스킵해도 됩니다. )

> 참고 포스팅 : https://momentoo.tistory.com/12

 

[Yum Repository 초기화]

Q. Yum Repository 초기화 필요성 - Centos 초기 설정 시에 Repository를 잘못 설정하여 초기화가 필요할 때가 있다. 물론 반드시 초기화가 정답은 아니다. 1. Repository 지우기 # cd /etc/yum.repos.d/ > reposi..

momentoo.tistory.com

 

2. apache 설치

#yum -y install httpd httpd-devel

> devel은 tomcat-connectors를 진행하기 위해 install

※ 설치 버전 확인

1
2
3
[root@ ~]# httpd -v
Server version: Apache/2.4.6 (CentOS)
Server built: Apr 24 2019 13:45:48
cs

> 정상 설치 시 위와 같이 노출

 

3. Apache 서버 재시작 자동 등록

> 리눅스 재시작 시 자동으로 재시작 하도록 등록하는 부분입니다.

1
2
[root@ ~]# systemctl enable httpd.service
Created symlink from /etc/systemd/system/multi-user.target.wants/httpd.service to /usr/lib/systemd/system/httpd.service.
cs

 

4. Apache 서버 정상 동작 확인

1
2
3
4
5
6
7
8
[root@ ~]# ps -ef | grep httpd
root     23686     1  0 10:15 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache   23687 23686  0 10:15 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache   23688 23686  0 10:15 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache   23689 23686  0 10:15 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache   23690 23686  0 10:15 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
apache   23691 23686  0 10:15 ?        00:00:00 /usr/sbin/httpd -DFOREGROUND
root     25527 23477  0 10:49 pts/0    00:00:00 grep --color=auto httpd
cs

 

5. 방화벽 default-zone 체크

> 방화벽 설정 정보 파일을 확인할 수 있다.

1
2
[root@ ~]# firewall-cmd --get-default-zone
public
cs

 

6. Apache 포트 개방 (기본포트 80)

1
2
3
4
5
[root@ ~]# firewall-cmd --zone=public --add-port=80/tcp --permanent
Warning: ALREADY_ENABLED: 80:tcp
success
[root@ ~]# firewall-cmd --reload
success
cs

※ 기존에 80포트가 open되어 있지 않았다면 ('Warning: ALREADY_ENABLED: 80:tcp') 해당 부분이 나타나지 않습니다.

> firewalld(방화벽) 설정 파일 위치

1
2
3
4
5
6
7
8
9
10
11
12
13
14
[root@ ~]# vi /etc/firewalld/zones/public.xml
 
<?xml version="1.0" encoding="utf-8"?>
<zone>
  <short>Public</short>
  <description>For use in public areas. You do not trust the other computers on networks to not harm your computer. Only selected incoming connections are accepted.</description>
  <service name="dhcpv6-client"/>
  <service name="ssh"/>
  <service name="ntp"/>
#  <service name="http"/>
#  <port protocol="tcp" port="8080"/>
#  <port protocol="tcp" port="80"/>
#  <port protocol="tcp" port="3306"/>
</zone>
cs

 

7. 서버 ip주소 확인

> eth0의 inet 부분을 확인

※ 만약 ifconfig 명령어가 동작을 하지않는다면 'yum -y install net-tools'을 설치하시길 바랍니다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
[root@ ~]# ifconfig
 
eth0: flags=4163<UP,BROADCAST,RUNNING,MULTICAST>  mtu 1500
        inet 000.000.000.000  netmask 255.255.255.0  broadcast 000.000.000.000
        inet6 0000::000:0000:0000:0000  prefixlen 64  scopeid 0x20<link>
        ether 00:00:00:00:00:eb  txqueuelen 1000  (Ethernet)
        RX packets 109068058  bytes 18167317568 (16.9 GiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 19533605  bytes 2404711975 (2.2 GiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
 
lo: flags=73<UP,LOOPBACK,RUNNING>  mtu 65536
        inet 127.0.0.1  netmask 255.0.0.0
        inet6 ::1  prefixlen 128  scopeid 0x10<host>
        loop  txqueuelen 1000  (Local Loopback)
        RX packets 1506769  bytes 212891507 (203.0 MiB)
        RX errors 0  dropped 0  overruns 0  frame 0
        TX packets 1506769  bytes 212891507 (203.0 MiB)
        TX errors 0  dropped 0 overruns 0  carrier 0  collisions 0
cs

 

8. 브라우저 확인

> 서버 ip주소로 접속. 아래와 같은 화면을 확인하면 정상적으로 Apache 설치 완료.

Apache 기본 화면

 

'Development > CentOS' 카테고리의 다른 글

[Yum Repository 초기화]  (0) 2019.07.17

Q. Yum Repository 초기화 필요성

 

- Centos 초기 설정 시에 Repository를 잘못 설정하여 초기화가 필요할 때가 있다. 물론 반드시 초기화가 정답은 아니다.

 

1. Repository 지우기

# cd /etc/yum.repos.d/

> repository 저장 디렉터리로 이동 

repository 확인

 

# rm -f 삭제할 repository

※ 참고 : 아래 Repository는 삭제하지 마세요.

CentOS-Base.repo
CentOS-CR.repo
CentOS-Debuginfo.repo
CentOS-fasttrack.repo
CentOS-Media.repo
CentOS-Sources.repo
CentOS-Vault.repo
epel.repo
epel-testing.repo

 

2. 캐쉬디렉토리 삭제

# cd /var/cache/yum/

> 캐쉬 디렉터리로 이동

# rm -rf x86_64

> 캐쉬 삭제

 

3. headers, packages, metadata 삭제

# yum clean headers

# yum clean packages

# yum clean metadata

'Development > CentOS' 카테고리의 다른 글

[Apache 설치]  (0) 2019.07.18

[ Java I/O에 대한 정리 ]


Q. Java I/O란?

 - 데이터 교환을 위한 입출력(Input/Output) 클래스를 일컬음니다. 여기서 말하는 스트림은 데이터의 흐름으로 데이터를 운반하는 연결 통로라 할 수 있습니다. 모든 I/O클래스들은 java.io 패키지를 import하여 사용되어 집니다.


Q. I/O클래스의 종류?


 - Stream

 - 바이트 단위의 데이터를 읽고 쓰기를 가능하게 해주는 클래스입니다.

 1. [Input/Output]Stream: 바이트 단위의 데이터를 읽거나 쓰게 해주는 추상클래스로써 Stream이 붙는 클래스들은 해당 클래스를 상속하게 됩니다.

 2. File[Input/Output]Stream: 파일을 바이트 스트림으로 바꿔주는 클래스로써 하드디스크에 저장된 내용을 읽고 쓰게 해주는 클래스 입니다.

 3. Buffered[Input/Output]Stream: File Stream과 같이 파일을 읽거나 출력을 할 때 사용되는 클래스로써 파일이 대용량일 때 이점이 있는 클래스 입니다.


- Reader/Writer

 - 바이트 단위가 아닌 Char단위로 읽거나 쓰기를 가능하게 해주는 클래스입니다.

 1. Reader/Writer: Char 단위의 문자를 읽거나 쓰게 해주는 추상클래스로써 Reader가 붙는 클래스들은 해당 클래스를 상속하게 됩니다.

 2. File[Reader/Writer]: 파일을 문자 스트림으로 바꿔주는 클래스로써 하드디스크에 저장된 내용을 읽고 쓰게 해주는 클래스 입니다.

 3. Buffered[Reader/Writer]: BufferedReader에는 문자를 읽을 때 readLine()로 한줄씩 해석할 수 있는 기능이 있으며 BufferedWriter에는 문자를 출력할 때 줄을 바꿀 수 있게 해주는 기능들이 있는 클래스입니다.


- 그 외의 클래스

 1. console: 명령 창에서 쉽게 읽고 쓸 수 있게 도와주는 클래스입니다.

 2. File: 단순히 파일 객체를 생성할 때 사용되어 지는 클래스입니다.


 - 이 외에 I/O클래스에 대한 자세한 내용은 아래 참고 사이트에서 참고하시길 바랍니다.

 - 참고 사이트 : http://hyeonstorage.tistory.com/250


[ Java I/O 예제 ]


 = > 파일 읽고 복사하기


  - Stream을 사용하여 이미지 파일을 읽어보고 복사하여 출력하는 것에 대한 예제입니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
import java.io.FileInputStream;
import java.io.FileOutputStream;
import java.io.IOException;
 
public class FileIOCopy {
    
    public static void main(String[] args) {
        
        String filePath = "...\\"// 파일 경로를 지정
        FileInputStream fis = null// 파일 읽기 스트림 클래스
        FileOutputStream fos = null// 파일 출력 스트림 클래스
        
        try {
            
            // 읽을 경로 지정
            fis = new FileInputStream(filePath + "a.jpg"); 
            // 읽은 내용을 복사하여 출력할 경로 지정
            fos = new FileOutputStream(filePath + "a_copy.jpg"); 
            
            byte[] byteRead = new byte[1024]; // 바이트 크기를 지정
            
            // 읽어들인 파일의 바이트 길이를 저장 출력 시 .write()의 메소드에 길이를 지정할 때 사용
            int len = 0;
            
            while((len  = fis.read(byteRead)) >= 0) {
                fos.write(byteRead, 0, len); // 바이트 크기, Offset위치, 길이 지정
            }
            
        }catch(IOException ioe) {
            ioe.printStackTrace();
        }finally { // 파일 입출력 닫기
            try {
                fos.close();
                fis.close();
            }catch(Exception e) {
                e.printStackTrace();
            }
        }
    }
}
cs



 = > 문자를 읽어 콘솔 창에 보여주기


  - char단위로 읽어들이기 위해 reader 클래스로 파일을 읽고 콘솔 창에 읽어 들인 결과를 출력하는 내용입니다.


1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
import java.io.FileReader;
import java.io.IOException;
 
public class FileIOReader {
 
    public static void main(String[] args) {
        
        String filePath = "...\\"// 파일 경로를 지정
        FileReader fr = null// 파일을 문자로 읽을 클래스
        
        try {
            
            fr = new FileReader(filePath + "test.txt"); // 읽을 경로 지정
            int read; // char값을 int값으로 저장
            String str = ""// 읽은 char값을 담아둘 String 생성
            
            while(((read = fr.read()) != -1)) {
                str += (char)read; // 읽은 char값을 String에 저장
            }
            
            System.out.println(str);
            
        } catch(IOException ioe) {
            ioe.printStackTrace();
        } finally { // reader클래스 닫기
            try {
                fr.close();
            } catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
}
cs


  - Text파일을 정상적으로 읽어오고 출력이 되는 것을 확인 할 수 있습니다.


Text Read...
Read Complete!!
cs



  - 그 외에 I/O예제 소스 참고 사이트 : http://programmingsummaries.tistory.com/64

+ Recent posts