같은 조에 시스템 엔지니어분이 계셔서 서버쪽으로 완전 빠삭하게 알고계셧다. . .
내가 졸작으로 했떤 그 AWS는 정말 찍먹수준이었던것이지
여튼 감사하게도 개인서버를 열어주셔서 PuTTY로 접근해서 리눅스 공부도하고 웹서버 공부도 해볼까 한당
사용 웹서버 : Apache
리눅스 :CentOS

먼저 웹서버에 접근하려면 특정 디렉토리에 들어가야한다.
- Apache(httpd) -> /var/www/html
- Nginx -> /user/share/nignx/html (or /var/www/html)
- Lighttpd -> /var/www
웹서버에 왔으니 기본 CRUD 실습을 해야겠지??
팀원분께서 웹서버를 얹고 해당 디렉토리랑 깃 레포지토리랑 연결을 해놓으셨다고 해서 파일 업로드(쓰기) 연습을 했다.
pscp -P 포트이름 올릴파일경로 리눅스username@DNSip:목표경로
pscp -P 22 d:\temp\1542459404425.jpg root@192.168.0.0.1:/var/www/html/resources
이런식이다.(dns 주소랑 포트는 임의로 작성된 것임)
띄워쓰기 꼭해주고 이 명령어를 cmd에다가 해줘야한다.
cmd의 경로는 PuTTY가 있는 곳으로 cd해줘야하고,
기본적인 PuTTY경로는 C:\Program Files\PuTTY이다.

파일을 올려주고, 깃 명령어도 사용가능하다고 해서 푸시를 한번 해보려고했는데
주의 문구(에러x)가 나와서 요것도 한번 보려고 한다.
나왔던 경고문구는 이렇다.
[root@localhost resources]# git commit -m "linux file upload test"
[main bdeddab] linux file upload test
Committer: root root@localhost.localdomain
Your name and email address were configured automatically based
on your username and hostname. Please check that they are accurate.
You can suppress this message by setting them explicitly:
git config --global user.name "Your Name"
git config --global user.email you@example.com
After doing this, you may fix the identity used for this commit with:
git commit --amend --reset-author
1 file changed, 0 insertions(+), 0 deletions(-)
해석하면 "너 커밋하는데 누가 올렸다고 지칭안해줄거야??" 다.
깃에서는 --gloabal을 써서 이름과 이메일을 지정하라고 추천을 해줬는데,
이렇게 되면 다른 사람이 같은 서버에 root 계정으로 접속해서 git commit을 하면, 내가 설정한 user.name과 user.email이 사용된다.
여기서 --global과 --local 속성을 선택할 수 있는데 이 둘의 차이점은 이름그대로 전역성이다.
--global 설정을 하면, root로 커밋하는 모든 사용자가 동일한 user.name과 user.email을 사용하게 된다.
--local로 설정하면 저장소(Repository) 단위로 설정됨. 현재 작업 중인 Git 레포지토리(.git 폴더가 있는 디렉터리)에만 영향을 미치기 때문에 각 Git 레포지토리는 독립적인 설정을 가진다.


결국 같은 깃 레포지토리를 쓰면 --global이던 --local이던 똑같다는 소리다.
나중에 알게된 거지만 굳이 이름이랑 이메일 안해줘도된다고함다.... 근데 그렇게하면 커밋에 작성자가 안뜸
를 하기위해서는 조건이 필요하다!!
- 이미지가 웹서버의 공개 디렉터리에 있어야 함
- 웹서버가 이미지 요청을 허용해야 함
이후 HTML에서 이미지 URL을 사용
웹 서버에 올라간 소스를 보는 URL
http://ServerIP/경로/파일.png
일반적으로 Apache, Nginx 같은 웹서버를 사용하면 /var/www/html/이 기본 루트 디렉터리인건 위에서 말했다.
이미지를 html/image , html/resources같은 디렉토리에 올려두면 접근이 가능하다. (html 도 가능)
기본적으로 Apache의 기본 설정이 정적 파일(이미지, CSS, JS 등)은 별도의 설정없이 제공하도록 되어있기 때문에 아마 대부분은 이거 굳이 볼필요 없이 접근 가능할 것이다.
만약 웹서버의 공개 디렉터리에 사진을 올렸는데도 안뜬다면 PuTTY에서 아래 순서대로 입력해보자!
참고로 지금쓰는 리눅스가 CentOS라서 CentOS/RHEL만 된다.
1. Apache 가 설치되어 있는지 확인
httpd -v
설치가 되어있지 않다면 설치해쥼
sudo yum install httpd
2. Apache 설정 파일 위치 확인
/etc/httpd/conf/httpd.conf
/etc/httpd/conf.d/
파일을 못찾겠다면?
sudo find / -name "httpd.conf" 2>/dev/null

3. Apache 서비스가 실행 중인지 확인
sudo systemctl status httpd
실행중이 아니라면? 실행
sudo systemctl start httpd
4. 파일 열기
sudo nano /etc/httpd/conf/httpd.conf
5. <Directory /var/www/html/> 부분을 찾기

<Directory /var/www/html/>
AllowOverride All
</Directory>
으로 고쳐주면됨 (사실 난 안고쳤는데도 잘 됐음)
고치고 나서 꼭 재시작 해줘야 한다!!
sudo systemctl restart httpd
AllowOverride 는 Apache에서 .htaccess 파일을 사용할 수 있도록 허용할지를 결정하는 설정이다.
AllowOverride None → .htaccess 파일을 사용할 수 없음 (무시됨)
AllowOverride All → .htaccess 파일을 사용할 수 있음
그럼 .htaccess는 뭔데??
.htaccess는 Apache 설정을 특정 디렉터리에서 덮어쓸 수 있는 설정 파일
예를 들어 /var/www/html/에 .htaccess를 만들면, 그 폴더 안의 설정만 변경 가능하다.
.htaccess으로 특정파일 접근 차단, 리디렉션 설정, 디렉토리 리스트 출력 방지 등 Apache에서 기본으로 설정되어있는 것들을 덮어쓸 수 있음.
정리하자면
- 아파치는 기본적으로 정적인 리소스를 접근가능하게 열어놨다.
- 특정 파일이 안열릴 때는 .htacess 설정 파일을 만들어서 그 파일만 열리도록 특정 티렉터리에서 사용할 수 있다.
- 그 .htacess를 사용하려면 conf 에 있는 AllowOverride를 All로 해줘야 작동한다.
뭔가 서버에 사진 숨겨놓고 웹사이트에서만 보이게하려고했는데
서버디렉토리 자체가 깃허브에 올라간거라 힘들어보인다!!!
다른방법을 고안해봐야겠따
굿.
.
gitignore은 사실 다른 사이드 프로젝트에서 사용하는 것을 본적이 이썽ㅆ다.
개념만 알았지 테크장님이 알아서 추가하는거 구경만해보고 직접 써보는건 이번이 처음일 것이다!!!
gitignore 파일이란 원격 저장소에 올리기 싫은 파일들을 명시하는 파일 이다.
깃허브에 파일이 올라가지 않게 막아두는 것임!!
그럼 gitignore 를 어떻게 쓰는지 알아봐야겠쮜?
명령어 표현에 따라서 파일을 어떻게 지정할지 정할 수 있다!
이 특수문자들을 활용해서 gitignore파일을 채우면 된다.
.
임의의 문자열(0개 이상 문자)과 매칭됨.
단, / (슬래시)는 포함하지 않음.
파일이나 확장자 패턴을 지정할 때 유용함.
📌 예시
*.log # 모든 .log 파일 무시 (error.log, debug.log 등)
tmp* # 'tmp'로 시작하는 모든 파일 무시 (tmp123, tmp_file 등)
.
하위 폴더까지 포함하여 무시할 때 사용.
/ 포함 가능.
📌 예시
logs/** # logs 폴더와 모든 하위 폴더 내 파일 무시
**/temp # temp라는 이름을 가진 모든 폴더 무시 (어디에 있어도!)
.
디렉토리 경로를 정확하게 지정할 때 사용
/로 시작하면 루트 디렉토리에서만 적용됨
디렉토리 경로를 정확히 구분하기 위해 사용
📌 예시
/config/ # 루트 디렉토리 내 config 폴더만 무시 (하위 폴더는 포함)
config/ # 모든 위치의 config 폴더 무시
.
무시에서 제외(반대로 허용)할 때 사용
즉, .gitignore에서 무시한 파일 중 특정 파일을 다시 포함하고 싶을 때 사용
📌 예시
*.log # 모든 .log 파일 무시
!server.log # server.log는 다시 포함
.
여러 패턴을 한 번에 지정할 때 사용 (쉼표 ,로 구분)
특정 확장자 파일을 묶어서 무시할 때 유용함
📌 예시
*.{jpg,png,gif} # jpg, png, gif 확장자 파일 무시
log.{txt,log} # log.txt와 log.log 파일 무시
.
특정 문자 한 개를 매칭할 때 사용
[a-z], [0-9] 같은 형태로 사용 가능
📌 예시
file[0-9].txt # file1.txt, file2.txt 등 숫자가 포함된 파일 무시
test[abc].txt # testa.txt, testb.txt, testc.txt 무시 (다른 글자는 포함)
간단하게 하기위해서
나는 리소스 폴더와 그 안에있는 모든 요소를 없애겠다!!

라는 의미로 이렇게 작성해줬다
그럼이제 소스코드도 저기에 맞게 바꿔주면되겠지!?


아주잘뜬다!!!👊👊👊👊👊👊👊👊👊👊👊👊👊👊👊

깃허브에도 내가 올린 사진들이 gitignore로 제외돼서 첨부되지않았다!!
오늘은 정말 실용적인 ㅋㅋㅋㅋ하지만 엄청 기초적인!!! 것들을 복습..겸 학습... 한거같다!!
이제 남은시간동안 지능을 높이기 위한 코테를 풀러가야겠다..
굿