[[:tux|{{ :linux.png?40|}}]]
===== URL Shortener »Yourls« auf Linux Debian installieren =====
Manche URLs können furchtbar lang und der Umgang damit recht umständlich werden. Gerade in Blogs oder Foren gehört es mitunter zum guten Ton vernünftig lesbare URLs zu veröffentlichen aber auch zB in E-Mails sind sie ggf nützlich um den Gesamteindruck nicht negativ zu beeinflussen. Es gibt etliche Anbieter die solch einen Service anbieten, Sie können sich aber bei geeigneter, vorhandener Infrastruktur auch solch einen Service selbst installieren. Das hat diverse Vorteile: Zum einen treten Sie auch mit einer kurzen URL immer noch mit Ihrer Domain auf, zum anderen haben Sie die volle Kontrolle über den Short Link, bis hin zum Löschen.
>>Yourls<<((http://yourls.org/)) ist eine Sammlung aus PHP-Skripten und stellt eine (Web-)Plattform bereit, welche mit Admin Menü, benutzerdefinierten URL Schlüsselwörtern, Statistiken, einer Entwickler API und vieles mehr ausgestattet ist. Die Installation ist recht simpel und läuft folgendermaßen ab:
* Anlegen des Document Root Verzeichnis:\\ # mkdir /home/yourls.prontosystems.org
* Anlegen der MySQL Datenbank:\\ # mysqladmin -u root -p create yourls
* Anlegen eines Datenbankbenutzers und Rechte auf soeben erstellte Datenbank einstellen:\\ # mysql yourls -u root -p -e"GRANT ALL ON yourls.* TO yourls_admin@localhost IDENTIFIED BY 'yourlspasswd'"
* Herunterladen und entpacken der Yourls Quellen: \\ /home/yourls.prontosystems.org# wget https://github.com/YOURLS/YOURLS/archive/1.7.tar.gz\\ /home/yourls.prontosystems.org# tar -zxvf 1.7.tar.gz
* >>config.php<< konfigurieren:\\ /home/yourls.prontosystems.org/YOURLS-1.7/user# mv config-sample.php config.php\\ 'admin'
);
/** 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 method: 36 or 62 */
define( 'YOURLS_URL_CONVERT', 36 );
/*
* 36: generates all lowercase keywords (ie: 13jkm)
* 62: generates mixed case keywords (ie: 13jKm or 13JKm)
* Stick to one setting. It's best not to change after you've started creating links.
*/
/**
* Reserved keywords (so that generated URLs won't match them)
* Define here negative, unwanted or potentially misleading keywords.
*/
$yourls_reserved_URL = array(
'porn', 'faggot', 'sex', 'nigger', 'fuck', 'cunt', 'dick', 'gay',
);
/*
** Personal settings would go after here.
*/
* Erstellen Sie den VHost und konfigurieren Sie Ihren Webserver. Eine Beispiel Installation von Apache2 finden Sie im Artikel [[:tux:apache_vhost|Virtuelle Hosts auf Apache2 Webserver einrichten]]. Zu dieser Konfiguration müssen Sie ggf noch (zusätzlich) das Apache2 Modul >>rewrite<< aktivieren:\\ # a2enmod rewrite
* Legen Sie im Document Root eine >>.htaccess<< Datei an:\\ # touch /home/yourls.prontosystems.org/YOURLS-1.7/.htaccess
* Und machen Sie diese für Ihren Webserver beschreibbar:\\ # chown www-data:www-data /home/yourls.prontosystems.org/YOURLS-1.7/.htaccess
* Zur weiteren Installation können Sie bereits ins Webinterface wechseln, rufen Sie Ihre Yourls URL mit dem Verzeichnis >>admin<< auf und klicken Sie auf >>Install YOURLS<<. Sie erhalten im Anschluß möglicherweise eine Fehlermeldung, dass die Datenbank Tabellen nicht angelegt werden, was aber so nicht stimmt. Die Tabellen wurden angelegt und die Datenbank und >>Yourls<< funktioniert im Anschluss auch. Keine Ahnung wo die Meldung herkommt:
^{{ :tux:yourls_01.png?300 |}}^{{ :tux:yourls_02.png?300 |}}^
* Zum Schluss müssen Sie noch die >>index.php<< im Document Root Verzeichnis erstellen, damit Sie auch ein Frontend zur Verfügung haben:\\ /home/yourls.prontosystems.org/YOURLS-1.7# cp sample-public-front-page.txt index.php
{{ :tux:yourls_03.png?700 |}}
* Im Admin Interface stehen Ihnen dann weitere Möglichkeiten zur Verfügung:
{{ :tux:yourls_04.png?700 |}}
--- //pronto 2014/08/06 15:56//
==== Spam Schutz ====
Bei einem öffentlich erreichbaren URL Shortener wird es unweigerlich dazu kommen, dass Spammer diesen missbrauchen. Bei uns ist das relativ schnell gegangen und wir mussten umgehend reagieren. Es gibt verschiedene Ansätze sich dem Problem zu nähern, wir haben uns dafür entschieden, das Webinterface nur für unser Haus, also interne IP-Adressen, freizugeben. Dazu haben wir folgendes PHP-Snippet am Anfang unserer >>index.php<< eingefügt:
$remoteIP = $_SERVER['REMOTE_ADDR'];
$pos = strpos($remoteIP, '192.168.');
if($pos === false)
{
echo "ACCESS DENIED";
exit;
}
Das og Snippet liest die IP-Adresse, welche die Seite aufruft, in eine Variable ein und vergleicht diese mit dem STring '192.168' welches die ersten beiden Oktetts des bei uns verwendeten privaten IP-Adressbereichs darstellt und stoppt das Skript, wenn es nicht von einer internen, privaten Adresse aufgerufen wird.
It's just that simple ;-)
''//prontosystems - we are connecting more than computers//''
--- //pronto 2014/11/25 13:49//
{{keywords>yourls url shortener spam}}