목차

EC2 아파치 설정

EC2 인스턴스 접속

예시

linux (for wiki)

SSH 클라이언트를 엽니다.

프라이빗 키 파일을 찾습니다.

필요한 경우 이 명령을 실행하여 키를 공개적으로 볼 수 없도록 합니다.

> chmod 400 aws-keyfair.pem

퍼블릭 DNS을(를) 사용하여 인스턴스에 연결: (내 맥에서)

ssh -i  "~/aws-keyfair.pem"  ec2-aws.domain.compute.amazonaws.com 

설정 파일

/etc/httpd/conf/httpd.conf

EC2 웹 설치

EC2 웹 실행

sudo systemctl start httpd

EC2 웹 설치

ec2 인스턴스에 ssh 접속한 뒤에 콘솔로 커맨드 실행

패키지 업데이트 안해도 될 같은데

> sudo yum update -y

yum install 명령을 사용하여 설치할 수 있는 패키지들

> sudo yum install -y (뒷부분은 아래줄에)

>> httpd24 php72 mysql57-server php72-mysqlnd

php72 등을 설치하려면 다른 커맨드를 써야 되는데, 아래쪽에.

아파치 설치

할일 순서

아파치 설치

> sudo yum install -y httpd

아파치 서버의 기동은 아래쪽에.

ec2-user 계정이 아파치 폴더를 쓸 수 있게 그룹 설정

Apache httpd는 Apache document root라는 디렉터리에 보관된 파일을 처리합니다.

Amazon Linux Apache 문서 루트는 /var/www/html이며, 기본적으로 루트에서 소유합니다.

ec2-user 계정에서 이 디렉터리의 파일을 조작할 수 있게 하려면 디렉터리의 소유권과 권한을 변경해야 합니다.

이 작업을 수행하는 방법에는 여러 가지가 있습니다.

본 자습서에서는 ec2-user를 apache 그룹에 추가하여 apache 그룹에 /var/www 디렉터리의 소유권을 부여하고 쓰기 권한을 할당합니다.

사용자(이 경우는 ec2-user)를 apache 그룹에 추가합니다.

> sudo usermod -a -G apache ec2-user

로그아웃하고 다시 로그인한 다음, 새 그룹을 선택하고 멤버십을 확인합니다.

apache 그룹의 멤버십을 확인하려면 인스턴스에 다시 연결한 후 다음 명령을 실행합니다.

> groups
ec2-user wheel apache

폴더 권한 변경

/var/www 및 그 콘텐츠의 그룹 소유권을 apache 그룹으로 변경합니다.

[ec2-user ~]$ sudo chown -R ec2-user:apache /var/www

그룹 쓰기 권한을 추가하여 나중에 하위 디렉터리에 대한 그룹 ID를 설정하려면 /var/www와 그 하위 디렉터리의 디렉터리 권한을 변경합니다.

[ec2-user ~]$ sudo chmod 2775 /var/www
[ec2-user ~]$ find /var/www -type d -exec sudo chmod 2775 {} \;

그룹 쓰기 권한을 추가하려면 /var/www 및 그 하위 디렉터리의 파일 권한을 반복하여 변경합니다.

[ec2-user ~]$ find /var/www -type f -exec sudo chmod 0664 {} \;

실행할 커맨드를 모아둠.

[ec2-user]$ sudo chown -R ec2-user:apache /var/www
[ec2-user]$ sudo chmod 2775 /var/www
[ec2-user]$ find /var/www -type d -exec sudo chmod 2775 {} \;
[ec2-user]$ find /var/www -type f -exec sudo chmod 0664 {} \;
[ec2-user]$ 

이제 ec2-user와 apache 그룹의 향후 멤버는 Apache document root에서 파일 추가, 삭제, 편집을 할 수 있고, 이를 통해 사용자는 정적 웹 사이트 또는 PHP 애플리케이션과 같은 콘텐츠를 추가할 수 있습니다.

웹서버(아파치) 기동

Apache 웹 서버를 시작합니다.

> sudo service httpd start

chkconfig 명령을 사용하여 Apache 웹 서버가 매번 시스템이 부팅할 때마다 시작되도록 합니다.

sudo chkconfig httpd on

PHP 설치

php7 이상을 설치하기

https://www.lesstif.com/lpt/amazon-linux-ami-php-7-3-77955353.html

유저별 디렉토리 설정 : 유저 개별 웹주소 갖게

유저 이름 웹 접속 (~UserID)

일반 유저 폴더에 접속 할 수 있게 UserDir 설정.

아파차 메인 설정에서는 건드릴 부분이 없다.

위의 파일 아래 부분에 보면

IncludeOptional conf.d/*.conf

핵심 설정 이외에 수정하고 싶은 개별 기능들은 conf.d 폴더에 저장해 두었다.

이 폴더에 가보면 userdir.conf 파일이 있다. 이 파일의 내용을 변경하면 유저 개별 폴더에 웹 접속이 가능하다.

아래 설정대로

유저의 웹페이지 저장용 폴더 이름은 public_html 다.

<IfModule mod_userdir.c>
    #
    # UserDir is disabled by default since it can confirm the presence
    # of a username on the system (depending on home directory
    # permissions).
    #
    #UserDir disabled 

    #
    # To enable requests to /~user/ to serve the user's public_html
    # directory, remove the "UserDir disabled" line above, and uncomment
    # the following line instead:
    # 
    UserDir public_html
</IfModule>

이 아래 부분에 <Directory “/home/*/public_html”>.. 로 시작되는건 잘 모르면 그냥 놔두자. 다른거 설정해보려다가 다시 되돌리니까 동작 했었다.

서비스 재시작

# 내리고
sudo systemctl stop httpd
# 다시 올리자.
sudo systemctl start httpd

폴더 권한 변경

다른 유저로 ssh 접속

새 유저로 ssh 접속용 키를 만들어야겠지만 대신 지금의 ec2-user가 사용하는 키를 같이 사용하자.

~/.ssh/authorized_keys 파일의 내용을 복사해두자.

새 유저로 현재 콘솔에서 로그인 하자. su new_user 이렇게.

같은 폴더를 만들고, 같은 파일을 만들어서 복사해둔 키를 저장한다.

유저 추가

정식

유저를 추가하고 ssh 키로 로그인할 수 있는 설정이 설명된 도움말

https://aws.amazon.com/ko/premiumsupport/knowledge-center/new-user-accounts-linux-instance/

# 유저 추가
sudo adduser new_user
# ec2인스턴스가 우분투인 경우
# sudo adduser new_user --disabled-password 로 실행
 
# 해당 유저로 로그인
sudo su - new_user
 
#사용할 ssh키를 저장할 파일 만들기
#  mkdir ~/.ssh
#  ~/.ssh/authorized_keys 파일 만들어서 ssh 키 저장

어디선가 가져옴

여기에서 스크립트 가져옴

아래는 유저를 추가하기 위한 스크립트,지만. 위 부분의 링크에 나온 정식 가이드를 따라하자. 아래껀 급할때 쓸 참고.

ec2-add-user_-_210925.sh.txt