OS : Amazon-Linux


파일질라 설치

https://filezilla-project.org/


1. AWS EC2 Instance에 vsftpd 설치

yum install vsftpd


2. AWS Security Groups 설정

20-21 범위 포트 추가

1024-1048 범위 포트 추가


3. vsftpd.conf 설정

vi /etc/vsftpd/vsftpd.conf


- 익명으로 FTP 접속 금지

anonymous_enable=YES -> anonymous_enable=NO //YES를 NO로 변경


- 사용자의 홈 디렉토리를 제한

chroot_Local_user=YES //(#제거)주석해제


- vsftpd.conf 파일의 마지막부분에

pasv_enable=YES

pasv_min_port=1024

pasv_max_port=1048

pasv_address=IPv4 Public IP


4. FTP 사용자 만들기

cat /etc/vsftpd/user_list 에 없는 사용자를 만들어야 한다.


- 계정생성

useradd test

passwd test


- www 그룹생성

groupadd www

chown -R root:www /var/www/html


- /var/www/html 디렉토리에 대한 권한 부여

usermod -d /var/www/html test //홈 디렉토리 변경

usermod -a -G www test //www 그룹 추가

cd /var/www/html

chmod 775 . //html 디렉토리 775로 권한 부여


5. vsftpd 재시작

service vsftpd restart


6. 파일질라-FTP접속

만들었던 test 계정으로 들어가면 FTP 접속이 된다.


 파일질라-SFTP접속

편집(E) - 설정(S) - SFTP - 키 파일 추가(A) - .ppk파일 추가 - 확인

호스트IPv4 Public IP 사용자명: 계정명 포트: 22 




'개발 > AWS' 카테고리의 다른 글

AWS - 계정 변경 및 Key pair 없이 로그인하기  (0) 2017.04.07

OS : Amazon-Linux


EC2 Instance 생성 후, root 비밀번호는 설정 되어 있지 않음

root계정 로그인 후


1. 계정 생성

adduser test

passwd test


2. ssh key 복사

mkdir /home/test/.ssh

cp /home/ec2-user/.ssh/authorized_keys /home/test/.ssh


3. 소유자, 그룹 소유자 변경

chown -R test:test /home/test/.ssh


4. sshd_config 설정

vi /etc/ssh/sshd_config

.

.

# To disable tunneled clear text passwords, change to no here!

#PasswordAuthentication yes

#PermitEmptyPasswords no

# EC2 uses keys for remote access

PasswordAuthentication no -> PasswordAuthentication yes //no를 yes로 변경

.
.

5. sudo 권한 추가(선택)
vi /etc/

.

.

## Allow root to run any commands anywhere

root    ALL=(ALL)       ALL

test    ALL=(ALL)       ALL //root 계정 밑에 추가하기

.

.


6. sshd 재시작

service sshd restart

'개발 > AWS' 카테고리의 다른 글

AWS - 파일질라 FTP/SFTP 연결하기  (0) 2017.04.09

참고 : 생활코딩


# include 와 require 는 파일을 로드 할 때 사용하는 명령어이다.

차이점은 

include가 warning을 일으킨다.

require은 fatal error를 일으킨다.

_once 붙은 것은 파일을 로드 할 때 단 한번만 로드하면 된다는 의미이다.

include

include_once

require

require_once


# namespace 라는 키워드는 동일한 함수의 이름을 하나의 php 애플리케이션 안에 사용할 수 있게 만든다.


# 파일복사 

리눅스일 경우 파일을 가지고 있는 디렉토리의 권한을 chmod 753 . 명령어를 실행시켜야만 파일이 복사된다.

원래 /var/www/html디렉토리의 권한은 chmod 755로 되어있다. 하지만 copy()함수를 사용하기 위해서는

디렉토리의 파일허가권(소유자,그룹,그외 사용자)부분에서 그외 사용자에 대해 쓰기(w)와 실행(x) 권한이 필요하다.

다른 방법으로는 chown 명령어로 소유자를 바꿔주면 된다.


1. 소스코드 

<?php

$file1 = 'test.txt';

$file2 = 'example.txt';


if(!copy($file1, $file2)){

  echo "failed to copy {$file1}...";

}

?>


2. 디렉토리 권한을 주지 않거나 소유자 변경을 안한경우

Warning: copy(example.txt): failed to open stream: Permission denied in /var/www/html/test.php on line 5 failed to copy test.txt...


3. 디렉토리 권한을 주거나 소유자 변경을 한경우 위 경고가 나오지 않으면서 test.txt 라는 파일내용을 복사해 example.txt 라는 파일을 생성시킨다.


# 파일삭제 

파일삭제 또한 마찬가지로 

디렉토리의 권한 그외 사용자에 대해 쓰기(w)와 실행(x) 권한이 있어야 한다.

다른 방법으로는 chown 명령어로 소유자를 바꿔준다.


1. 소스코드

<?php

unlink('example.txt');

?>


2. 디렉토리 권한을 주지 않거나 소유자 변경을 안한경우

Warning: unlink(example.txt): Permission denied in /var/www/html/test.php on line 2


3. 디렉토리 권한을 주거나 소유자 변경을 한경우 example.txt 라는 파일은 삭제된다.


#파일 읽기 / 파일 쓰기

file_get_contents() 텍스트로 이루어진 파일을 읽어서 문자열을 리턴한다 (내부,외부)

file_put_contents() 쓰기, 화면에는 글자수 리턴한다.

fopen()

fread()

fwrite()


#파일 제어 트러블 슈팅

복사,삭제,읽기,쓰기에 대해 permission denied가 나온다면

chown 명령어를 통해 디렉토리 소유자를 root에서 바꿀 소유자 명으로 지정해주면 된다.

ex) chown apache .

다른 방법으로는 chmod 명령어를 사용해서 그 외 사용자 대해 wx권한을 주면 된다.

ex) chmod 753 .


#디렉토리 제어

getcwd()   :현재 디렉토리 출력

chdir('../') :상위 디렉토리 이동

scandir()   :파일과 디렉토리를 배열로 리턴, 두번째 인자는 순서

mkdir()     :디렉토리 생성 ex)mkdir("1/2/3",0700,true) 디렉토리명,권한설정, recursive인자(true)


#파일 업로드, move_upload_file

참고 : 

http://home78.cafe24.com/tc/tag/163

https://opentutorials.org/course/62/5136


#문자열 다루기

strpos()


#정규표현식

특정한 규칙을 가진 문자열의 집합을 표현하는데 사용하는 형식 언어

programming language나 text editor 등에서 문자열의 검색과 치환을 위한 용도로 쓰임

정규표현식에서 사용하는 기호를 Meta문자라고 한다.

참고 :

https://opentutorials.org/course/909/5143

https://opentutorials.org/course/62/5141

http://www.nextree.co.kr/p4327/

연습 :

http://regexr.com

'개발 > php' 카테고리의 다른 글

php - 1  (0) 2017.04.05

+ Recent posts