본문으로 바로가기
반응형

복잡하고 긴 url을 짧은 주소로 줄여 주는 서비스 중에 비틀리(https://bitly.com/)가 대표적입니다.

무료이면서 회원가입을 하면 단축 url 각각에 대한 통계가 제공되며 5000개까지 제공한다고 합니다.

5000개를 카운터 할때는 만들고 삭제한 것 까지 포함된다고 하네요.

많이 사용하는 경우라면 무료 사이트를 이용하는 것도 좋겠으나 호스팅에 소스를 설치하여 운용할 수도 있습니다.


이와 같은 이유로 자신만의 단축 url을 구축하여 개수에 제한 없이 사용하고 싶은 분들도 있을 것입니다.

그래서 오늘은 웹호스팅을 이용하고 있다면 자신만의 단축 url(짧은 주소) 서비스를 구축해 보겠습니다.


[1] 웹호스팅 계정이 있어야 합니다.

무료든 유료든 웹호스팅 계정을 보유하고 있어야 합니다.


[2] 도메인이 있다면 더 좋습니다.

특히 짧은 도메인이라면 단축 url을 적용했을때 간결하게 사용할 수 있을 것입니다.

만약 무료도메인이 필요하시다면 아래의 글을 참고하세요.

최상위 무료도메인 등록하기 Dot tk, Freenom.com


[3] YOURLS 소스를 준비합니다.

웹호스팅 서버의 종류는 다양합니다만 이번에 소개할 단축  URL 소스는 PHP 오픈 소스를 사용합니다.


대표적인 단축 URL 소스는 YOURLS가 있으며 아래의 링크에서 다운로드 할 수 있습니다.

YOURLS 다운로드 받기



[4] 압축파일을 해제후 웹호스팅 서버로 파일을 업로드합니다.

1) 아래 설명에서는 filezilla ftp 프로그램으로 업로드 하겠습니다.  filezilla ftp 다운로드


2) 대부분은 루트디렉토리에 설치하는 것으로 설명되어 있습니다. 

그러나 이번에는 웹호스팅 루트디렉토리(/) 아래에 short_url이라는 폴더를 생성하는 것으로 예를 들겠습니다. 

단축 url 기능만 웹호스팅에 사용할 것이라면 루트에 업로드해서 사용해도 상관 없습니다.

대부분은 다른 소스들(예를들면 게시판, 쇼핑몰 등)도 사용해야 한다면 루트 아래에 디렉토리가 복잡해지기 때문입니다. 

그러므로 따로 폴더를 생성해서 그곳에 업로드하겠습니다.

이때 폴더 이름은 자신의 상황에 맞게 적당한 이름을 지정하세요. 꼭 short_url일 필요는 없습니다.


3) 웹호스팅 서버로 파일을 업로드한 모습입니다. 


[5]YOURLS 소스에서 config.php 파일을 생성하고 설정.

1) edit plus 또는 메모장을 이용하여 YOURLS 소스내에 user/config-sample.php를 불러 옵니다.


2) 환경설정을 합니다.

아래의 항목들 중에서 필요한 부분만을 수정합니다.

/** MySQL database username */

define( 'YOURLS_DB_USER', ' ' ); <--mysql 데이터 베이스 사용자 아이디


/** MySQL database password */

define( 'YOURLS_DB_PASS', ' ' ); <--mysql 데이터 베이스 사용자 비밀번호


/** The name of the database for YOURLS */

define( 'YOURLS_DB_NAME', ' ' ); <--mysql 데이터 베이스 이름


/** MySQL hostname.

 ** If using a non standard port, specify it like 'hostname:port', eg. 'localhost:9999' or '127.0.0.1:666' */

define( 'YOURLS_DB_HOST', 'localhost' ); <--mysql 데이터 베이스 호스트 네임(대부분은 그대로 둠)


/** MySQL tables prefix */

define( 'YOURLS_DB_PREFIX', 'yourls_' ); <--mysql 데이터 베이스에 생성될 테이블의 접두어.


/** YOURLS installation URL -- all lowercase and with no trailing slash.

 ** If you define it to "http://sho.rt", don't use "http://www.sho.rt" in your browser (and vice-versa) */

define( 'YOURLS_SITE', 'http://yourdomain/short_url' );  <--도메인이 있다면 도메인, YOURLS가 설치된 디렉토리 주소. 예) http://yourdomain/short_url

단축 url은 여기에 적힌 주소로 생성됩니다.

만약 http://aaa.kk라는 도메인을 쓰고 있고 short_url폴더가 루트로 설정되었다면 단축 url은 http://aaa.kk/1 or a 의 형식으로 생성됩니다.


/** Server timezone GMT offset */

define( 'YOURLS_HOURS_OFFSET', 9 ); <--한국 시간은 9를 입력합니다.


/** Private means the Admin area will be protected with login/pass as defined below.

 ** Set to false for public usage (eg on a restricted intranet or for test setups)

 ** Read http://yourls.org/privatepublic for more details if you're unsure */

define( 'YOURLS_PRIVATE', true ); <--다른 사람과 함께 쓸 경우 false, 혼자만 쓸 경우 true 사용자아이디와 비밀번호를 아래의 설정에서 추가할 수 있습니다.


/** A random secret hash used to encrypt cookies. You don't have to remember it, make it long and complicated. Hint: copy from http://yourls.org/cookie **/

define( 'YOURLS_COOKIEKEY', ' ' );  <---http://yourls.org/cookie 를 클릭하면 임의의 쿠키값이 나타납니다. 그 값을 붙여 넣기 합니다.


/** Username(s) and password(s) allowed to access the site. Passwords either in plain text or as encrypted hashes

 ** YOURLS will auto encrypt plain text passwords in this file

 ** Read http://yourls.org/userpassword for more information */

$yourls_user_passwords = array(

'root' => '123456' /* Password encrypted by YOURLS */ ,<---define( 'YOURLS_PRIVATE', true ); 항목에서 true를 설정한 경우, 여기에서 사용자 아이디와 비밀번호를 지정할 수 있습니다. 여기서는 아이디root 인 사람만 사용하게 한 경우를 예로 들었습니다.

// '사용자 이름' => '비밀번호2',

// You can have one or more 'login'=>'password' lines

);   


3) config-sample.php파일을 수정하고 새이름으로 저장할때 config.php로 저장합니다. 

또는 config-sample.php파일을 수정하고 저장한 후에 파일이름을 config.php로 변경합니다.


4) config.php 파일을 웹호스팅 서버로 YOURLS 소스를 업로드한 폴더 안에 user 폴더로 업로드 합니다.


[6] 인터넷 브라우저로 접속하여 설치합니다.

http://yourdomain/short_ulr/admin/ 


[7] 접속화면

1) 정상적으로 접속된 화면입니다.(다른 사람은 사용하지 못하도록 설정한 경우)


2) 다른 사람도 사용하도록 설정한 경우


[8] 403 Forbidden 에러가 발생한 경우

1) index.php 또는 index.html파일을 생성.

단축 url을 쓰기 위해서 짧은 주소 도메인을 가지고 있고, YOURLS 소스를 루트가 아닌 루트 아래에 특정 디렉토리(short_url)에 설치한 경우 403 에러가 발생합니다.

해당 폴더에 index.php 또는 index.html파일을 만들고 meta 태그로 처리했습니다.

<meta http-equiv="refresh" content="0;url=./admin">


2) .htaccess파일 내용을 변경

① 기존에 .htaccess 파일내용.

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /short_url/

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

RewriteRule ^.*$ /short_url/yourls-loader.php [L]

</IfModule>


② 변경한 .htaccess 파일내용.

# BEGIN YOURLS

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d


RewriteRule ^([0-9A-Za-z]+)/?$ yourls-go.php?id=$1 [L]

RewriteRule ^([0-9A-Za-z]+)\+/?$ yourls-infos.php?id=$1 [L]

RewriteRule ^([0-9A-Za-z]+)\+all/?$ yourls-infos.php?id=$1&all=1 [L]

</IfModule>

# END YOURLS


의외로 YOURLS를 설치한 후에 접속하면 403에러가 난다는 글이 많았습니다. 퍼미션을 755에서 707로 바꾼 사람, 777, 644로 바꾸어 봤다는 사람들의 글이 있었는데요.. .htaccess 파일의 설정을 수정하여 해결할 수 있습니다. 


이상으로 YOURS 단축 url 소스 설치와 403 에러에 대해서 살펴보았습니다.

728x90
반응형