사용자 도구

사이트 도구


aws:ec2_아파치_설정

차이

문서의 선택한 두 판 사이의 차이를 보여줍니다.

차이 보기로 링크

다음 판
이전 판
aws:ec2_아파치_설정 [2021/09/25 17:06] – 만듦 kieunsaws:ec2_아파치_설정 [2024/04/23 22:43] (현재) – 바깥 편집 127.0.0.1
줄 1: 줄 1:
-ㅇㅇ+====== EC2 아파치 설정 ====== 
 + 
 +===== EC2 인스턴스 접속 ===== 
 + 
 +**예시** 
 + 
 +linux (for wiki)   
 +  * ''ec2-aws.domain.compute.amazonaws.com'' 
 +  * ''1.1.1.1'' 
 + 
 + 
 +SSH 클라이언트를 엽니다. 
 + 
 +프라이빗 키 파일을 찾습니다.  
 + 
 +필요한 경우 이 명령을 실행하여 키를 공개적으로 볼 수 없도록 합니다. 
 + 
 +<code> 
 +> chmod 400 aws-keyfair.pem 
 +</code> 
 + 
 +퍼블릭 DNS을(를) 사용하여 인스턴스에 연결: (내 맥에서) 
 + 
 +<code> 
 +ssh -i  "~/aws-keyfair.pem"  ec2-aws.domain.compute.amazonaws.com  
 +</code> 
 + 
 +설정 파일 
 + 
 +''/etc/httpd/conf/httpd.conf'' 
 + 
 + 
 + 
 +==== EC2 웹 설치 ==== 
 + 
 +  * [[https://docs.aws.amazon.com/ko_kr/AWSEC2/latest/UserGuide/install-LAMP.html]] 
 +  * [[https://docs.aws.amazon.com/ko_kr/AmazonRDS/latest/UserGuide/CHAP_Tutorials.WebServerDB.CreateWebServer.html]] 
 + 
 +==== EC2 웹 실행 ==== 
 + 
 +<code> 
 +sudo systemctl start httpd 
 +</code> 
 + 
 +  * 웹 서버가 시스템 부팅 때마다 시작 : ''sudo systemctl enable httpd'' 
 +  * 문서의 루트 디렉터리 ''/var/www/html'' 
 + 
 +====== EC2 웹 설치 ====== 
 + 
 +> ec2 인스턴스에 ssh 접속한 뒤에 콘솔로 커맨드 실행 
 + 
 +패키지 업데이트 <sup>안해도 될 같은데</sup> 
 + 
 +<code> 
 +> sudo yum update -y 
 +</code> 
 + 
 +yum install 명령을 사용하여 설치할 수 있는 패키지들 
 +<code> 
 +> sudo yum install -y (뒷부분은 아래줄에) 
 + 
 +>> httpd24 php72 mysql57-server php72-mysqlnd 
 +</code> 
 + 
 +php72 등을 설치하려면 다른 커맨드를 써야 되는데, 아래쪽에. 
 + 
 + 
 + 
 +===== 아파치 설치 ===== 
 + 
 +할일 순서 
 + 
 +  * 아파치 설치 
 +  * ''ec2-user'' 계정이 아파치 폴더를 쓸 수 있게 그룹 설정 
 +  * 폴더 권한 변경 
 + 
 +**아파치 설치** 
 + 
 +<code> 
 +> sudo yum install -y httpd 
 +</code> 
 + 
 +아파치 서버의 기동은 아래쪽에. 
 + 
 +**''ec2-user'' 계정이 아파치 폴더를 쓸 수 있게 그룹 설정** 
 + 
 +Apache httpd는 Apache document root라는 디렉터리에 보관된 파일을 처리합니다.  
 + 
 +Amazon Linux Apache 문서 루트는 /var/www/html이며, 기본적으로 루트에서 소유합니다. 
 + 
 +ec2-user 계정에서 이 디렉터리의 파일을 조작할 수 있게 하려면 디렉터리의 소유권과 권한을 변경해야 합니다.  
 + 
 +이 작업을 수행하는 방법에는 여러 가지가 있습니다.  
 + 
 +본 자습서에서는 ec2-user를 apache 그룹에 추가하여  apache 그룹에 /var/www 디렉터리의 소유권을 부여하고 쓰기 권한을 할당합니다. 
 + 
 + 
 +**사용자(이 경우는 ec2-user)를 apache 그룹에 추가합니다.** 
 + 
 +<code> 
 +> sudo usermod -a -G apache ec2-user 
 +</code> 
 + 
 +로그아웃하고 다시 로그인한 다음, 새 그룹을 선택하고 멤버십을 확인합니다. 
 + 
 +  * 로그아웃합니다(exit 명령을 사용하거나 터미널 창 닫기). <code> 
 +> exit </code> 
 + 
 +apache 그룹의 멤버십을 확인하려면 인스턴스에 다시 연결한 후 다음 명령을 실행합니다. 
 + 
 +<code> 
 +> groups 
 +ec2-user wheel apache 
 +</code> 
 + 
 + 
 + 
 +**폴더 권한 변경** 
 + 
 + 
 +/var/www 및 그 콘텐츠의 그룹 소유권을 apache 그룹으로 변경합니다. 
 + 
 +<code> 
 +[ec2-user ~]$ sudo chown -R ec2-user:apache /var/www 
 +</code> 
 + 
 +그룹 쓰기 권한을 추가하여 나중에 하위 디렉터리에 대한 그룹 ID를 설정하려면 /var/www와 그 하위 디렉터리의 디렉터리 권한을 변경합니다. 
 + 
 +<code> 
 +[ec2-user ~]$ sudo chmod 2775 /var/www 
 +[ec2-user ~]$ find /var/www -type d -exec sudo chmod 2775 {} \; 
 +</code> 
 + 
 +그룹 쓰기 권한을 추가하려면 /var/www 및 그 하위 디렉터리의 파일 권한을 반복하여 변경합니다. 
 + 
 +<code> 
 +[ec2-user ~]$ find /var/www -type f -exec sudo chmod 0664 {} \; 
 +</code> 
 + 
 +실행할 커맨드를 모아둠. 
 + 
 +<code> 
 +[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]$  
 +</code> 
 + 
 +이제 ec2-user와 apache 그룹의 향후 멤버는 Apache document root에서 파일 추가, 삭제, 편집을 할 수 있고,  
 +이를 통해 사용자는 정적 웹 사이트 또는 PHP 애플리케이션과 같은 콘텐츠를 추가할 수 있습니다. 
 + 
 +==== 웹서버(아파치) 기동 ==== 
 + 
 +Apache 웹 서버를 시작합니다. 
 +<code> 
 +> sudo service httpd start 
 +</code> 
 + 
 +chkconfig 명령을 사용하여 Apache 웹 서버가 매번 시스템이 부팅할 때마다 시작되도록 합니다. 
 + 
 +<code> 
 +sudo chkconfig httpd on 
 +</code> 
 + 
 + 
 +===== PHP 설치 ===== 
 + 
 +php7 이상을 설치하기 
 + 
 +  * [[aws:ec2에_php_설치]] 
 + 
 +[[https://www.lesstif.com/lpt/amazon-linux-ami-php-7-3-77955353.html]] 
 + 
 + 
 +====== 유저별 디렉토리 설정 : 유저 개별 웹주소 갖게 ====== 
 + 
 +  * 2021-06-15 기준 
 +  * 아파치 ''UserDir'' 모듈을 사용하는 것 
 + 
 + 
 +===== 유저 이름 웹 접속 (~UserID) ===== 
 + 
 +일반 유저 폴더에 접속 할 수 있게 UserDir 설정. 
 +  * 접속 주소 : %%http://주소/~ec2-user/%%  
 + 
 +아파차 메인 설정에서는 건드릴 부분이 없다. 
 +  * ''/etc/httpd/conf/httpd.conf'' : 다시 보는 기본 아파치 설정 파일 
 + 
 +위의 파일 아래 부분에 보면 
 + 
 +<code> 
 +IncludeOptional conf.d/*.conf 
 +</code> 
 + 
 +핵심 설정 이외에 수정하고 싶은 개별 기능들은 ''conf.d'' 폴더에 저장해 두었다. 
 + 
 +이 폴더에 가보면 ''userdir.conf'' 파일이 있다. 
 +이 파일의 내용을 변경하면 유저 개별 폴더에 웹 접속이 가능하다. 
 + 
 +  * ''/etc/httpd/conf.d/userdir.conf'' 수정 
 + 
 +아래 설정대로  
 +  * ''UserDir disabled''를 주석 처리 
 +  * ''UserDir public_html'' 가 주석 상태라면, 풀어준다. 
 + 
 +유저의 웹페이지 저장용 폴더 이름은 ''public_html'' 다.  
 + 
 + 
 +<code> 
 +<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> 
 +</code> 
 + 
 +이 아래 부분에 ''<Directory "/home/*/public_html">..'' 로 시작되는건 잘 모르면 그냥 놔두자. 
 +다른거 설정해보려다가 다시 되돌리니까 동작 했었다. 
 + 
 +===== 서비스 재시작 ===== 
 + 
 +<code> 
 +# 내리고 
 +sudo systemctl stop httpd 
 +# 다시 올리자. 
 +sudo systemctl start httpd 
 +</code> 
 + 
 + 
 + 
 +=====폴더 권한 변경===== 
 + 
 +  * ''~userid'' 폴더는 권한이 711 
 +  * ''~userid/public_html'' 폴더는 755 여야 한다. 
 + 
 +===== 다른 유저로 ssh 접속 ===== 
 + 
 +새 유저로 ssh 접속용 키를 만들어야겠지만 대신 지금의 ''ec2-user''가 사용하는 키를 같이 사용하자. 
 + 
 +''~/.ssh/authorized_keys'' 파일의 내용을 복사해두자. 
 + 
 +새 유저로 현재 콘솔에서 로그인 하자. ''su new_user'' 이렇게. 
 + 
 +같은 폴더를 만들고, 같은 파일을 만들어서 복사해둔 키를 저장한다. 
 + 
 +  * **.ssh** 폴더는 권한을 **700**으로 변경한다. 
 +  * **authorized_keys** 파일은 **600** 으로 파일 권한을 변경한다. 
 +  * ''touch .ssh/authorized_keys'' 파일 상태 갱신 
 + 
 + 
 + 
 +===== 유저 추가 ===== 
 + 
 +**정식** 
 + 
 +유저를 추가하고 ssh 키로 로그인할 수 있는 설정이 설명된 도움말 
 + 
 +[[https://aws.amazon.com/ko/premiumsupport/knowledge-center/new-user-accounts-linux-instance/]] 
 + 
 + 
 +<code bash> 
 +# 유저 추가 
 +sudo adduser new_user 
 +# ec2인스턴스가 우분투인 경우 
 +# sudo adduser new_user --disabled-password 로 실행 
 + 
 +# 해당 유저로 로그인 
 +sudo su - new_user 
 + 
 +#사용할 ssh키를 저장할 파일 만들기 
 +#  mkdir ~/.ssh 
 +#  ~/.ssh/authorized_keys 파일 만들어서 ssh 키 저장 
 +</code> 
 + 
 +**어디선가 가져옴** 
 + 
 +[[https://humanwhocodes.com/blog/2011/11/18/setting-up-multi-user-apache-on-ec2/|여기에서 스크립트 가져옴]] 
 + 
 +아래는 유저를 추가하기 위한 스크립트,지만. 위 부분의 링크에 나온 정식 가이드를 따라하자. 아래껀 급할때 쓸 참고. 
 + 
 +{{ :자료실:ec2-add-user_-_210925.sh.txt |}}
aws/ec2_아파치_설정.1632557166.txt.gz · 마지막으로 수정됨: 2024/04/23 22:42 (바깥 편집)