Hostinger+git 연결
How to Add SSH Keys to Your GitHub Account
- 이때 directory is not empty 에러가 발생한다면, hostinger 파일 관리에서 public_html 내부의 모든 파일을 삭제하여 비워주도록 한다.
Issue
정상적으로 깃허브에 연결이 되었지만 public_html에 모든 파일이 올라가버려 정상적으로 웹페이지가 배포되지 않았다.
이 문제는 내가 현재 사용하는 서비스가 shared hosting 이기 때문에 기본적으로 root directory를 수정하는 것을 허용하지 않는다. 이 기능을 이용하기 위해서는 vps 를 이용해야 한다는데, 지금 내가 부담하기에는 금액대가 비싸다…
Solution
그러나 방법은 있다. .htaccess 파일을 이용하여 웹페이지에서 사용할 디렉토리를 바꿔주는 것이다.
How to change the document root directory
# .htaccess main domain to subfolder redirect
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteCond %{REQUEST_URI} !^/subfolder/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /subfolder/$1
RewriteCond %{HTTP_HOST} ^(www.)?example.com$
RewriteRule ^(/)?$ subfolder/index.html [L]
이 코드의 subfolder에 빌드된 웹페이지가 들어있는 폴더 명을 입력하고 examples.com에 웹사이트명을 작성한다.
Issue-2
무슨 이유에서인지 deploy가 될때마다 파일이 정상적으로 불러와지지 않는다.
여러가지 시도를 해보았지만 깃허브에 push가 되면 동작하지 않는다…
수동으로 deploy를 할 때 이런 문제가 일어나는 건지 확인해볼 필요가 있다.
Solution
deploy 문제가 아니라 .htaccess 파일의 문제였다. 위의 코드만으로는 js 파일을 가져올 때 발생하는 404 에러를 막지 못한다.
<IfModule mod_rewrite.c>
RewriteEngine on
RewriteCond %{HTTP_HOST} ^(www.)?website$
RewriteCond %{REQUEST_URI} !^/subfile/
RewriteCond %{REQUEST_FILENAME} !-f
RewriteCond %{REQUEST_FILENAME} !-d
RewriteRule ^(.*)$ /subfile/$1
RewriteCond %{HTTP_HOST} ^(www.)?website$
RewriteRule ^(/)?$ subfile/index.html [L]
</IfModule>
위의 subfile에 파일명을 적고 website에 자신의 웹사이트를 작성하면 정상적으로 모든 파일들이 동작한다.
이제 깃허브에 push를 하면 웹사이트가 자동적으로 깃허브의 리파지토리를 통해 코드를 읽어내어 웹사이트를 업데이트한다.