메뉴 건너뛰기

imitator

구글링이나 포털사이트 커뮤니티등에 가면 어디든지 하나쯤 소개글과 함께 URL 링크가 올라와있는것을 볼 수 있습니다. 

이런 URL 링크는 짧거나 하이퍼링크 설정이 되어있다면 편리했지만 길거나 하이퍼링크 설정이 안되있다면 

주소를 복사하는데 시간이 꽤나 소요됐죠.


요즘은 goo.gl, Bit.ly를 통한 단축 주소 서비스가 있어 긴 URL을 짧게 바꿔서 다른 사람이 보기 좋게 하기도 합니다.

이러한 서비스를 리눅스 서버등에 설치해서 사용할수 있는지 알아본 결과 몇개정도 이용할수 있는것을 확인해보았는데요.

오늘은 긴 주소를 단축 주소로 변경해주는 YOURLS를 소개하도록 하겠습니다.


주의 : YOURLS의 config.php를 생성한채로 별도의 설정을 하지 않고 자신의 서버의 웹으로 접근하지 않는것이 좋습니다.

         순간적인 쇼크가 올수 있기 때문입니다. (더워서 서늘함을 원하시면 뭐.. 상관없습니다만?)

         이 글을 통해 발생되는 문제에 관해 작성자가 책임을 지지 않습니다.


서버 사항

OS : Ubuntu 16.04 LTS 64bit (최소 설치)

CPU : 1CORE

메모리 : 1GB


미리 설치 된 사항

# 우분투의 업그레이드 및 업데이트

apt-get upgrade

apt-get update


# APM 세트 설치

apt-get -y install apache2

apt-get -y install mysql-server mysql-client

apt-get -y install php libapache2-mod-php php-xml php-gd php-mysql


YOURLS 다운로드


1.png


설치할 버전은 YOURLS의 1.7.2 버전입니다. PHP 버전이 최소 5.2 이상은 되어야합니다.

깃허브에 등록되어있는 파일을 다운로드 받습니다.


# src로 이동

cd /usr/local/src


# 1.7.2.tar.gz 다운로드

wget https://github.com/YOURLS/YOURLS/archive/1.7.2.tar.gz


2.png


파일의 압축을 해제하고 /var/www/html로 YOURLS를 이동시킵니다. 다만 디렉토리가 꼭 /var/www/html일 필요는 없습니다.

아파치의 가상호스트를 통해 별도의 설정을 거친후 설정된 디렉토리로 이동해주셔도 됩니다.


# tar.gz 압축 해제

tar zxvf 1.7.2.tar.gz


# YOURLS-1.7.2를 이동시킨후 이름변경

mv YOURLS-1.7.2 /var/www/html/YOURLS


config.php 생성


3.png

스크린샷, 2017-08-11 10-17-50.png

이름을 변경한 후에는 YOURLS의 user 디렉토리로 이동한 후 config-sample.php를 config.php로 복사해줘야합니다.

복사하지 않고 자신의 http://도메인/YOURLS/admin로 이동시 위와같은 메세지를 확인할 수 있습니다.

복사한 상태에서 config.php를 수정하지않고 다시 접속하면..... 정신건강에 해롭습니다. RTFM

어떤건지 보고싶으시다면 맨 밑을 한번 참고해보시거나 '실제로 실험'해보세요.


원본

Cannot find config.php.

Please read the readme.html to learn how to install YOURLS


번역

config.php를 찾을 수 없습니다.

YOURLS 설치 방법은 readme.html을 참조하십시오.


# /YOURLS/user 디렉토리로 이동

cd /var/www/html/YOURLS/user


# 샘플 파일 복사

cp config-sample.php config.php


YOURLS DB 유저 생성


4.png


config.php를 수정하기전에 몇가지 밑작업이 필요합니다. 여기서는 예시로 yourls 유저와 데이터베이스를 설정합니다.

꼭 DB 유저가 yourls가 아니어도 됩니다. 설정을 완료하면 quit를 적고 빠져나옵니다.


# mysql 접속

mysql -uroot -p


# 데이터 베이스 생성

create database yourls;


# yourls 유저 생성

grant all privileges on yourls.* to 'yourls'@localhost identified by 'yourls 비밀번호';


# 설정완료

FLUSH PRIVILEGES;


한국어 파일 다운로드


5.png


그 다음은 언어 설정을 위한 파일을 다운로드합니다. 다른 오픈소스와 다르게 YOURLS는 한국어 사용이 가능합니다.

languages 디렉토리로 이동하여 git clone를 통해 폴더를 다운로드 받고 ko_KR.po, mo를 languages로 이동시킵니다.


# languages 디렉토리로 이동

cd /var/www/html/YOURLS/user/languages


# 한국어 설정 파일 다운로드

git clone https://github.com/at4am/YOURLS-ko_KR.git


# Ko_KR 파일을 languages 디렉토리로 이동

mv YOURLS-ko_KR/ko_KR.po ./

mv YOURLS-ko_KR/ko_KR.mo ./


6.png


languages 디렉토리에서 user 디렉토리로 돌아와 config.php를 설정하고 퍼미션을 666으로 교체해줍니다.

config.php 설정은 아래를 참고하여 진행 해주시면 됩니다.


config.php 설정 


설정 전

7.png

설정 후

8.png


먼저 MySQL 설정 부분입니다. 여기에서는 아까전에 생성한 MySQL 유저를 통해 설정을 진행하겠습니다.

오늘도 여러분이 보기 어렵지 않게 구글 번역님을 활용해보았으니 내용을 참고해보세요. 


YOURLS_DB_USER : yourls

YOURLS_DB_PASS : yourls 비밀번호


# MySQL settings 번역

/** MySQL 데이터베이스 사용자 이름 */

define( 'YOURLS_DB_USER', 'yourls' );


/** MySQL 데이터베이스 비밀번호 */

define( 'YOURLS_DB_PASS', 'yourls 비밀번호' );


/** YOURLS의 데이터베이스 이름 */

define( 'YOURLS_DB_NAME', 'yourls' );


/** MySQL 호스트 이름.

 ** 포트가 다를경우 이와 같이 지정해주십시오'hostname:port', eg. 'localhost:9999' or '127.0.0.1:666' */

define( 'YOURLS_DB_HOST', 'localhost' );


/** MySQL 테이블 접두사 */

define( 'YOURLS_DB_PREFIX', 'yourls_' ); 


설정 전

9.png

설정 후

10.png


그 다음은 사이트 옵션(Site options)부분입니다. 


YOURLS_SITE : 자신의 사이트 주소

YOURLS_HOURS_OFFSET : 시간대 한국의 경우 9

YOURLS_LANG : ko_KR

YOURLS_COOKIEKEY : http://yourls.org/cookie에 접속시 나오는 쿠키값

$yourls_user_passwords = array(

        'yourls' => 'yourls 비밀번호',


# Site options 번역

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

 ** 도메인을 "http://sho.rt"로 설정시 브라우저에서 "http://www.sho.rt"를 사용하면 안됩니다. (반대의 경우도 마찬가지)*/

define( 'YOURLS_SITE', 'http://ldap.imitator.kr' );


/** 서버 시간대 GMT 오프셋(한국의 경우 9) */

define( 'YOURLS_HOURS_OFFSET', 9 );


/ ** YOURLS 언어

 ** 기본 영어 대신 해당 언어의 번역 파일을 사용하려면 이 설정을 변경하십시오.

 ** 해당 번역 파일 (.mo 파일)은 user/language 디렉토리에 설치해야합니다.

 ** 자세한 정보는 http://yourls.org/translations를 참조하십시오. * /

define( 'YOURLS_LANG', 'ko_KR' );


/ ** 동일한 긴 URL에 대해 여러 개의 짧은 URL 허용

 ** 한 개의 shortURL/longURL만 (기본 YOURLS behavior) 사용하려면 true로 설정합니다.

 ** 동일한 긴 URL을 가리키는 여러 개의 짧은 URL을 허용하려면 false로 설정합니다. * /

define( 'YOURLS_UNIQUE_URLS', true );


/** 비공개할 경우 정의 된 로그인 / 패스워드로 관리자 영역을 보호합니다. 

 ** 공용 사용을 하려면 false로 설정합니다.

 ** 잘 모르겠다면 자세한 내용을 http://yourls.org/privatepublic에서 참고하십시오.*/

define( 'YOURLS_PRIVATE', true );


/** 쿠키를 암호화하는 데 사용되는 임의의 비밀 해시입니다. 당신은 그것을 기억하고 길고 복잡하게 만들 필요가 없습니다. 힌트 : http://yourls.org/cookie **/

define( 'YOURLS_COOKIEKEY', 'Q}7pCL5pa1LCdm)YL#gJ4PvS{NKY(G6-ICOP$SUw' );


/ ** 사이트에 액세스 할 수있는 사용자 이름과 비밀번호. 암호는 일반 텍스트 또는 암호화 된 해시로

 ** YOURLS는 이 파일의 일반 텍스트 비밀번호를 자동으로 암호화합니다.

 ** 자세한 정보는 http://yourls.org/userpassword를 참조하십시오. * /

$yourls_user_passwords = array(

        'yourls' => 'yourls 비밀번호',

        // 'username2' => 'password2',

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

        );


/** Debug mode to output some internal information

 ** Default is false for live site. Enable when coding or before submitting a new issue */

define( 'YOURLS_DEBUG', false );




11.png


여기는 별도의 설정을 하지 않고 넘어갑니다. 번역은 단축 방법까지만 확인했고 그 밑에껀 금칙어 부분입니다.

확인하시고 수정하시려면 수정한 후 저장해주시면 됩니다.


# URL Shortening settings 번역

/* 

** URL Shortening settings

 */


/** URL 단축 방법 : 36 또는 62 */

define( 'YOURLS_URL_CONVERT', 36 );

/*

 * 36: 모든 소문자 키워드 생성 (ie: 13jkm)

 * 62: 대소 문자가 혼용 된 키워드 생성 (ie: 13jKm or 13JKm)

 * 하나의 설정에 충실하십시오. 링크를 만들면 변경하지 않는 것이 가장 좋습니다.

 */


.htaccess 파일 생성 및 설정


12.png


/var/www/html/YOURLS/에 .htaccess 파일을 생성하여 내용을 넣어줍니다.


# .htaccess 내용 저장

vi /var/www/html/YOURLS/.htaccess

# BEGIN YOURLS

<IfModule mod_rewrite.c>

RewriteEngine On

RewriteBase /

RewriteCond %{REQUEST_FILENAME} !-f

RewriteCond %{REQUEST_FILENAME} !-d

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

</IfModule>

# END YOURLS


apache2 설정파일 수정

14.png

apache2를 설정합니다. 000-default.conf에서 DocumentRoot를 수정해줍니다.
YOURLS의 경우 /YOURLS/admin/index.php로 동작하기때문에 조금더 접근하기 쉽도록하기 위함입니다.

# /000-default.conf에서 DocumentRoot 수정
vi /etc/apache2/sites-available/000-default.conf
DocumentRoot /var/www/html/ >DocumentRoot /var/www/html/YOURLS

16.png

그 다음은 apache2.conf를 열어 Directory /var/www의 AllowOverride None를 ALL로 수정합니다.

# apache2.conf에서 AllowOverride 수정
vi /etc/apache2/apache2.conf
<Directory /var/www/>
        Options Indexes FollowSymLinks
        AllowOverride None > AllowOverride ALL 수정
        Require all granted
</Directory>

모듈 활성화 및 apache2 재시작

17.png

3개의 파일의 수정이 완료되면 모듈 a2enmod를 사용할수있게 변경한 후 apache2를 재시작합니다.

# a2enmod 모듈을 사용할수 있게 변경한후 apache2 재시작
sudo a2enmod rewrite
/etc/init.d/apache2 restart

YOURLS 설치

18.png

설정이 완료되었다면 http://자신의 도메인/admin을 웹 브라우저에 입력후 이동한뒤 YOURLS 설치하기를 클릭합니다.

19.png

설치가 정상적으로 된것을 확인할수 있습니다. 다만 .htaccess 관련 문구는 크게 신경쓰지않아도 됩니다. 
이미 작성해놓은 상태이기 때문입니다. 여기서 YOURLS 관리 페이지를 클릭하면 관리 페이지로 이동합니다.

YOURLS 관리자 화면

20.png

이 페이지까지 정상적으로 왔고 에러메세지가 나오지않는다면 성공적으로 설치가 완료된겁니다.
로그아웃을 눌러서 아까 등록한 유저와 패스워드로 로그인이 되나 실험해봅시다.

YOURLS 로그인 화면

21.png

YOURLS 사용하여 단축 URL 생성하기 

22.png

정상적으로 로그인된것을 확인할수 있습니다. 그러면 맨 처음에서 알려드린 긴 URL 주소를 단축시킬건데요. 
방법은 간단합니다. 단축할 주소를 적고 URL 단축하기를 클릭하면 단축 URL이 생성됩니다.
또한 사용자 정의 단축 URL 기능을 통해 원하는 단축 URL를 만들수있습니다.

23.png

단축 URL로 접속

24.png

단축 URL을 웹 브라우저에 입력해서 이동하면 정상적으로 등록한 페이지로 이동할수 있습니다.
여기까지 되면 admin에 있는 index.php에 심볼릭 링크를 걸어주세요. 그렇게하면 도메인만으로도
편리하게 접속이 가능합니다.

# admin/index.php YOURLS로 심볼릭 링크
ln -s /var/www/html/YOURLS/admin/index.php /var/www/html/YOURLS/index.php

설치하면서 느낀 소감으로는 XE와 워드프레스와 설치 방법이 조금 닮아있다고 생각했습니다. 
다만 차이점이 있다면 XE나 워드프레스는 웹에서 DB등의 필요한 내용을 받지만 YOURLS는 
필요한 내용을 미리 config.php에 설정을 해야하는 점이 있었네요.
자세히 사용해보지는 못했지만 혼자 또는 가족, 지인과 같이 사용해봐도 좋을 것같습니다.



위에서 말씀드린대로 config.php를 설정하지 않은 채로 자신의 서버에 접속하게 되면 위와 같은 메세지와 함께
아래의 그림이 나옵니다. RTFM 좋게 말하면 메뉴얼좀 읽으세요라는 뜻이라더군요.

원본
You did not properly edit your 'config.php' file.
Please read the readme, or check yourls.org!

번역
'config.php'파일을 올바르게 편집하지 않았습니다.
readme를 읽거나 yours.org를 확인하십시오!

번호 제목 글쓴이 날짜 조회 수
88 Ubuntu 16.04 apt-get 패키지 설치 오류 발생시 해결방법 file 관리자 2017.10.10 101
» Ubuntu 16.04 단축 URL을 생성하는 YOURLS 설치 방법 file 관리자 2017.08.11 69
86 Ubuntu 16.04 jar 디컴파일 툴 JD-GUI 설치 file 관리자 2017.08.01 97
85 linux apk를 jar로 디컴파일하는 dex2jar 설치 및 사용 방법 file 관리자 2017.08.01 103
84 우분투 16.04 /var/lib/dpkg/lock 잠금 파일을 얻을 수 없습니다 해결법 [1] file 관리자 2017.07.20 534
83 우분투 16.04 LTS 서버 보안 강화를 위한 knockd 설치 방법 file 관리자 2017.07.06 75
82 CentOS 6 comodo Antivirus for Linux 백신 설치 방법 file 관리자 2017.06.15 90
81 CentOS 6 ssh google-authenticator로 OTP 접속하는 방법 file 관리자 2017.06.09 98
80 vsftpd 호스트로갈 루트가 없음(No route to host) 에러 처리 방법 file 관리자 2017.05.08 641
79 오픈스택 qcow2 이미지 가져오기 secret 관리자 2017.04.17 0
78 let’s Encrypt SSL 무료 인증서 certbot을 통해 설치 및 설정하는 방법 file 관리자 2017.04.13 1151
77 VPN를 악용하는 xe 광고글 작성자를 iptables로 차단하는 방법 [2] file 관리자 2017.03.31 100
76 리눅스 CentOS 마인크래프트 서버 spigot 1.11.2 설치(셋팅)방법 file 관리자 2017.02.27 519
75 CentOS 6.8 네트워크 간혈적으로 끊김 현상 해결 방법 file 관리자 2017.02.20 912
74 오픈스택 미타카 NoValidHost: No valid host was found. There are not enough hosts available. file 관리자 2017.02.15 423
73 umount target is busy 강제 해제하는 방법 관리자 2017.02.10 265
72 리눅스 centos6에서 java 버전 변경하기 관리자 2016.12.26 764
71 ssh-keygen secret 관리자 2016.12.23 0
70 centos 6 tomcat 설치 file 관리자 2016.12.09 751
69 CentOS 6 sendmail 설치 하는 방법 file 관리자 2016.11.16 1029