Ubuntu 16.04 단축 URL을 생성하는 YOURLS 설치 방법
2017.08.11 13:05
구글링이나 포털사이트 커뮤니티등에 가면 어디든지 하나쯤 소개글과 함께 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 다운로드
설치할 버전은 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
파일의 압축을 해제하고 /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 생성
이름을 변경한 후에는 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 유저 생성
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;
한국어 파일 다운로드
그 다음은 언어 설정을 위한 파일을 다운로드합니다. 다른 오픈소스와 다르게 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 ./
languages 디렉토리에서 user 디렉토리로 돌아와 config.php를 설정하고 퍼미션을 666으로 교체해줍니다.
config.php 설정은 아래를 참고하여 진행 해주시면 됩니다.
config.php 설정
설정 전
설정 후
먼저 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_' ); |
설정 전
설정 후
그 다음은 사이트 옵션(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 ); |
여기는 별도의 설정을 하지 않고 넘어갑니다. 번역은 단축 방법까지만 확인했고 그 밑에껀 금칙어 부분입니다.
확인하시고 수정하시려면 수정한 후 저장해주시면 됩니다.
# URL Shortening settings 번역
/* ** URL Shortening settings */ /** URL 단축 방법 : 36 또는 62 */ define( 'YOURLS_URL_CONVERT', 36 ); /* * 36: 모든 소문자 키워드 생성 (ie: 13jkm) * 62: 대소 문자가 혼용 된 키워드 생성 (ie: 13jKm or 13JKm) * 하나의 설정에 충실하십시오. 링크를 만들면 변경하지 않는 것이 가장 좋습니다. */ |
.htaccess 파일 생성 및 설정
/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










404 에러땜에 고생했었는데 다른 글애서는 없던 정보들이 간간히 있어서 덕분에 해결했습니다.
감사합니다