오픈소스 YOURLS 을 이용한 단축 URL(짧은주소) 만들기

이미 구글의 Url Shortener, 네이버의 Me2.do 그리고, 우리에게 친숙할지도 모르는 bit.ly 들이 있지만,

굳이 나만의 짧은주소 서비스를 만들거나 부족했던 기능을 추가하고 싶다면, 오픈소스 Yourls 를 이용하여 단축 Url 서비스를 만들 수 있습니다. 그런 고로, 본 포스트에서는 Yourls 소개와 설치부터 간단한 사용방법을 다루고 있습니다.

Yourls 설치 및 사용을 위해서는 약간의 웹 지식이 필요하며 웹 호스팅 또는 자체서버를 필요로 합니다.

yourls-logo.jpg

테스트 환경

  • OS WIN 8.1 / Web Server IIS 8.5 / PHP 5.4
  • DBMS MariaDB 5.3
  • URL Rewrite 모듈 인스톨

 

S/W 홈페이지 및 다운로드

  • Yourls 공식 홈페이지 ㅡ http://yourls.org/
  • Yourls 다운로드 #1 ㅡ https://github.com/YOURLS/YOURLS/releases

Yourls 인스톨

우선 Yourls 깃헠브 접속 후 최근 릴리즈된 파일(2014 / 04 / 07 기준 Ver. 1.7)을 다운로드 후 압축을 풀면 YOURLS 폴더와 하위 파일들이 생성됩니다.

서버공간에 업로드하기전에 ./user/config-sample.php 파일명을 config.php 로 변경하여 에디터로 오픈 후 아래 코드들을 적절히 수정해줍니다.

아래 코드는 config.php 파일의 일부분인데, 주석을 참고해서 수정하면됩니다.

/** MySQL 데이터베이스 사용자 이름 */
define( 'YOURLS_DB_USER', 'wlab_yourls' );
/** MySQL 데이터베이스 패스워드 */
define( 'YOURLS_DB_PASS', 'MALrbRbvQVtMa3bu' );
/** MySQL 데이터베이스 DB 이름 */
define( 'YOURLS_DB_NAME', 'yourls' );
/** 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 tables prefix */
define( 'YOURLS_DB_PREFIX', 'yourls_' );
/*
 ** Site options
 */
/** YOURLS installation URL -- all lowercase and with no trailing slash.
 ** If you define it to "http://site.com", don't use "http://www.site.com" in your browser (and vice-versa) */
define( 'YOURLS_SITE', 'http://localhost/YOURLS' ); // 단축 URL 을 적용할 도메인
/** Timezone GMT offset ㅡ 대한민국 기준 GMT+9 */
define( 'YOURLS_HOURS_OFFSET', 9 ); 
/** YOURLS language or "locale".
 ** Change this setting to "localize" YOURLS (use a translation instead of the default English). A corresponding .mo file
 ** must be installed in the user/language directory.
 ** See http://yourls.org/translations for more information */
define( 'YOURLS_LANG', '' ); 
/** Allow multiple short URLs for a same long URL
 ** Set to true to have only one pair of shortURL/longURL (default YOURLS behavior)
 ** Set to false to allow multiple short URLs pointing to the same long URL (bit.ly behavior) */
define( 'YOURLS_UNIQUE_URLS', true );
/** 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 );
/** 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', 'qQ4KhL_pu|s@Zm7n#%:b^{A[vhm' );
/** 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(
'admin' => 'password', // 관리자 아이디 및 비밀번호
// 'username2' => 'password2' // You can have one or more 'login'=>'password' lines
);

MySQL 세팅 부분은 호스팅 업체의 MySQL 접속정보 및 DB 이름 등을 받아서 적절히 기입하시면 되고, 대한민국의 시간대는 GMT+9 이므로, 9 를 넣고 관리자 아이디 및 비밀번호 부분은 본인이 사용것을 적절히 기입하시면 됩니다.

Cooke key 부분은 https://api.yourls.org/services/cookiekey/1.0/ 에서 출력되는 키를 적절히 대입하면 됩니다. Yourls 를 공개적으로 누구나 짧은 URL 생성이 가능하게하려면, YOURLS_PRIVATE 부분을 false 로 수정합니다.

/** 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', false );

이렇게 파일을 수정 후 http://localhost/YOURLS/admin 접속하면 아래 사진과 같이 자동적으로 인스톨화면으로 넘어갑니다.

1332.PNG

사진에서 Install YOURLS 글짜를 찰지게 눌러주면..

1333.PNG

잠깐 후 위 사진과 같이 인스톨이 성공됬다고 출력됩니다.

IIS 서버에서는 자동적으로 Web.config 파일이 짧은주소 사용을 위한 코드가 쓰여지니 따로 수정하실 필요가 없습니다. 참고로 IIS 서버에서 짧은주소를 사용하려면 URL 재작성 모듈을 필요로 합니다.

1335.PNG

설치가 완료되었다면 다시 http://localhost/YOURLS/admin 링크로 접속하여 로그인합니다. config.php 파일에 기입한 관리자 정보로 로그인 하면 됩니다.

1336.PNG

관리자 페이지 첫 화면,

1338.PNG

Enter the URL 부분에 링크를 넣고 Shorten The URL 을 클릭하면 단축 URL 이 즉시 생성됩니다. 생성된 단축 URL 뒤에 “+” 플러스를 붙이면

1340.PNG

이렇게 통계를 볼 수 있으니 참고하세요.

Published
Categorized as Web

17 comments

    1. 우어.. 커피믹스님.. 이게 대체 얼마만인가요 ㅋㅋㅋㅋ 정말 오랜만이시네요 !
      Yourls 기능을 저도 아직 다 못 파본지라 🙂 함 파보세요 ㅋㅋㅋ 재미난 기능들이 많이 숨겨져 있는것 같더군요

  1. 안녕하세요, 좋은정보감사합니다. 인스톨할때? 다 오류떳는데 잘되네요? 원래이런건가여? 그리고 예를들어 localhost/yourls 여기폴더에 설치를했어요. url생성하면 localhost/yourls/주소 이런식으로되는데여
    localhost/주소 이렇게 생성하게 할려면 어떻게 해야하나요?? 로컬에 설치안하고, 저렇게 생성할수있는방법이 있을텐데 잘모르겠네요 ㅠ

    1. 루트 폴더에서 yourls 폴더 하위에 있는 모든 내용을 루트 폴더로 이동는것이 가장 무난한데,

      URL 재작성 기능을 사용하셔야 할것 같습니다.
      아파치 서버를 사용하신다면 htaccess 파일에 다음 코드를 삽입 또는 적절히 수정하여 사용하시면 될것으로 보입니다.

      RewriteEngine On

      RewriteBase /
      RewriteCond %{ENV:REDIRECT_SURI} ^$ [OR]
      RewriteCond %{ENV:REDIRECT_SURI} ^/$
      RewriteCond %{REQUEST_FILENAME} !-f
      RewriteCond %{REQUEST_FILENAME} !-d
      RewriteRule ^(.*)$ /yourls/$1 [R]
      RewriteRule ^/$ /yourls/ [L]
      RewriteRule ^$ /yourls/ [L]

  2. 안녕하세요.
    주소는 잘생성되는데요.
    링크 수정을 하면, 수정한 링크로안되고, 수정전링크로만 이동하네요 ㅠ
    무슨문제일까요?ㅠ

    그리고

    여러도메인 연결해서 쓸려면 어떻게하면 되나요?ㅠ

    죄송해요…. 답변좀 부탁드려요 ㅠ

    1. 아파치의 .htaccess에 관련된 설정을 해지해야 합니다.

      httpd.conf의

      <Directory /> <–해당 세션에
      AllowOverride None ==> AllowOverride All 로 변경
      </Directory>

      즐건 생활…

  3. Yourls 를 공개적으로 누구나 짧은 URL 생성이 가능하게하려면, YOURLS_PRIVATE 부분을 false 로 수정합니다

    ——————————————–위글 내용중 일부 입니다. —————————-
    위 글을 보고 false로 변경 후 접속을하니…공개적으로 사용할수 있는데…
    권한이 관리자 권한인지 등록되어 있는 주소들을 수정 및 삭제가 가능한데 막을수 있는 방법 없는지요??

  4. 링크 설정 잘해놨었는데

    원본 링크를 삭제해버렸는데

    다시 수정하려하니 에러, URL을 찾을 수 없습니다. 라고 뜨는데

    원본 링크 다시 어떻게 적용해야할가요… 삭제를 해야하나요?

  5. 혹시 짧은주소 생성 완료하고 짧은 주소로 접속하면 500 에러 뜨는건 어케 해결해야하나요??????

    다른건 문제가없는데 짧은 주소로 접속하면 에러가떠서 접속이 되질않는데…

  6. 이 소스코드는 일반적인 웹호스팅 에서는 되지않나요?
    몇번 시도해 봤는데 에러가 나면서 설치 자체도되지 않습니다.

    You don’t have permission to access this resource.

    Additionally, a 500 Internal Server Error error was encountered while trying to use an ErrorDocument to handle the request.

    혹시 카페24 같은 웹호스팅 으로도 가능한 방법이있을까요?
    바쁘신데 읽어주셔서 감사합니다.

    1. 권한 문제가 있는것 같습니다. 일반적인 웹 호스팅에서도 정상적으로 잘 설치됩니다.

      500에러는 보통 서버 설정이나 스크립트(소스코드)에 문제가 있을때 발생됩니다.

Leave a comment

Your email address will not be published. Required fields are marked *

This site uses Akismet to reduce spam. Learn how your comment data is processed.