Bygg din egen URL-kortvarmer med DIN

Hva du skal skape

I denne veiledningen vil jeg vise deg hvordan du installerer din egen åpen kildekode, PHP-basert URL-korteren, kalt YOURLS.

Fordelen med URL Shorteners

URL shorteners nådde sin topp i nytte rett før Twitter begynte å kode alle koblinger med t.co URL-korteren. Opptil det tidspunktet hjalp URL shorteners folk til å tweet flere koblinger uten å bruke opp sine 140 tegn. I dag tar hver kobling i tweet opp et fast antall tegn uavhengig av lengden; Å bruke din egen lenkeforkortelse er nå mindre viktig. Tidligere var Bit.ly et populært valg.

Imidlertid er det fortsatt en fordel å bruke tredjeparts linkforkortelser. For eksempel viser Google statistikk og trafikk, og til og med genererer en QR-kode for at du skal drive trafikk til koblingen din:

Hvis du vil ha forbedret statistisk sporing, kan det være veldig nyttig å kjøre din egen URL-kortverdi. For eksempel, jeg ønsket å bedre spore hvilke av mine blogginnlegg som kjørte henvisningstrafikk til bestemte tilknyttede selskaper. For å gjøre dette trengte jeg min egen løsning.

Ulempene ved Hosting din egen URL Shortener

Det er noen advarsler å hoste din egen URL-kortverdi:

  1. Du vil være evig ansvarlig for å holde tjenesten oppe og kjøre den, slik at tidligere lenker fortsetter å omdirigere riktig.
  2. Hvis serveren din går ned eller tider ut, vil dine koblinger bryte.
  3. Hvis sosiale medier eller webtrafik for en snarveisadressespiker, vil serveren møte store trafikkforespørsler.
  4. Hvis du lar tjenesten være åpen for publikum - som jeg ikke anbefaler - det er en mulighet for at spammere og hackere misbruker tjenesten din.
  5. Det er en kostnad for å ha et domene å kjøre forkorteren din, f.eks. et dedikert .delt domene (valgfritt, fordi du selvfølgelig kan bruke et eksisterende underdomener).

Open Source eller gjør det selv

Jeg var i utgangspunktet fristet til å skrive min egen løsning. Det var imidlertid litt å lete opp DERES. YOURLS er en PHP-basert URL-kortingstjeneste med anstendig statistisk sporing og en rekke plugins. For denne opplæringen bestemte jeg meg for å skrive om å bruke YOURLS i stedet for å bygge fra bunnen av.

Forresten, hvis du leter etter et kort domene, prøv å bruke Domainr for å finne nyttige domener med to bokstaver.

Installere DINLS

Konfigurer serveren din

Jeg kjører YOURLS på Digital Ocean fordi det er billig og tilbyr raske SSD-stasjoner for hosting, men alle LAMP-baserte servere eller cloud hosting-leverandører vil være tilstrekkelig. Du finner min visuelle veiledning for å installere en LAMP-forekomst på Digital Ocean her.

Når du har en server-forekomst som kjører, kan du laste ned koden for JOURLS her, eller du kan klone den fra det offentlige Git-arkivet.

Installere koden

La oss lage en katalog, last ned og pakk koden:

mkdir / var / www / yourls cd / var / www / yourls git klon https://github.com/YOURLS/YOURLS/archive/1.7.tar.gz tar -zxvf 1.7.tar.gz mv JOURLS-1.7 / yourls 

Opprett en konfigurasjonsfil for Apache-siden:

sudo nano /etc/apache2/sites-available/yourls.conf

Lim inn og tilpass til følgende nettstedskonfigurasjon:

 Servernavn your-yourls-domain.com DocumentRoot / var / www / yourls DirectoryIndex index.php  Tillat Override All Order Avvis, tillat Tillat fra alle   

Aktiver nettstedet og start Apache på nytt:

sudo a2ensite yourls.conf sudo service apache2 reload 

La oss lage en MySQL-database for at JOURLS skal bruke:

mysql -uroot -p

Opprett din database og tillatelser for at YOURLS skal brukes:

opprett database yourls; gi alle privilegier på dine. * TIL "yourls_db_user" @ "localhost" identifisert av "yourls-pwd"; flush privilegier; exit; 

Konfigurer nettstedet for YOURLS

Nå som Apache-siden og MySQL-databasen er tilgjengelig, la oss konfigurere koden litt mer.

Begynn med å kopiere konfigurasjonsprøven til en levende fil og midlertidig tillate skrivetillatelser for installasjonen.

cd / var / www / yourls cp ./user/config-sample.php ./user/config.php chmod 0666 ./user/config.php 

La oss redigere filen:

sudo nano ./user/config.php

Først konfigurer du databasens innstillinger basert på hvordan du konfigurerte MySQL ovenfor. Du kan følge konfigurasjonsinnstillingene fra dokumentasjonen til YOURLS-nettstedet:

/ * ** MySQL-innstillinger - Du kan få denne informasjonen fra webverten din * / / ** MySQL database brukernavn * / define ('YOURLS_DB_USER', 'ditt db brukernavn'); / ** MySQL database passord * / define ('YOURLS_DB_PASS', 'ditt db passord'); / ** Navnet på databasen for YOURLS * / define ('YOURLS_DB_NAME', 'yourls'); / ** MySQL vertsnavn. ** Hvis du bruker en ikke-standardport, spesifiser den som 'vertsnavn: port', f.eks. 'localhost: 9999' eller '127.0.0.1:666' * / define ('YOURLS_DB_HOST', 'localhost'); / ** MySQL tabellen prefiks * / define ('YOURLS_DB_PREFIX', 'yourls_');

Deretter skal du angi ditt valgte domenes nettstednavn (URL) og innledende brukerpassord. Å skrive inn passordene i vanlig tekst her er ok, midlertidig, fordi YOURLS vil ha dem på plass.

/ ** YOURLS installasjonsadresse - alt små og uten skråstrek. ** Hvis du definerer den på "http://site.com", bruk ikke "http://www.site.com" i nettleseren din (og omvendt) * / define ('YOURLS_SITE', ' http://site.com '); / ** Brukernavn og passord (er) tillatt å få tilgang til nettstedet. Passord enten i ren tekst eller som krypterte hashes ** YOURLS vil automatisk kryptere vanlige tekstpassord i denne filen ** Les http://yourls.org/userpassword for mer informasjon * / $ yourls_user_passwords = array ('brukernavn' => 'passord ',' brukernavn2 '=>' passord2 '// Du kan ha en eller flere' login '=>' passord 'linjer); 

Vi må også opprette en .htaccess-fil og sikre at Apache mod_rewrite er aktiv:

sudo a2enmod omskrive sudo nano /var/www/yourls/.htaccess

Lim inn standard .htaccess-filen i:

# BEGIN JOURLS  RewriteEngine On RewriteBase / RewriteCond% REQUEST_FILENAME! -F RewriteCond% REQUEST_FILENAME! -D RewriteRule ^. * $ /Yourls-loader.php [L]  # END DIN

Flere detaljer for konfigurering av .htaccess og YOURLS er her.

Nå kan du gå til administrasjonen for YOURLS-nettstedet ditt på http://yourexampledomain.com/admin og gå gjennom alle konfigurasjonstrinn som det fortsatt krever.

Når passordene er hashed og YOURLS kjører riktig, må du passe på at du endrer tillatelsene i konfigurasjonsfilen for å lese bare:

sudo chmod 0440 ./user/config.php 

Når du har skrevet inn noen få snarveier og begynner å motta trafikk, bør du se noe slikt på din / admin-sti:

Bygg en Hjemmeside

Som standard er det ingen DINERS hjemmeside. Dette er i design for å hindre at spammere misbruker tjenesten din. 

Jeg opprettet en standard index.php-fil for å omdirigere til min konsulentside. Besøkende vil bare få denne siden når de skriver inn min URL-adresse uten en riktig snarvei:

     
Vennligst besøk vår hjemmeside Lookahead Consulting

Men hvis du ønsker å tilby en offentlig snarveisside, kopier du prøve-offentlig-front-side.txt til index.php.

cp sample-public-front-page.txt index.php

Opprette snarveier

Å lage snarveier er enkelt og bør være selvforklarende. Her er et eksempel på meg å lage en snarvei til min Tuts + instruktørprofil:

YOURLS gjør det enkelt å dele nettadressen din på Twitter og Facebook:

Trafikkstatistikk

Statistikk er en av de mest nyttige aspektene som er innbygget i DERES. Her er generelle aktivitetsnivåer over tid:

Og her er geografisk henvisning informasjon:

Her er grunnen til at jeg valgte JOURLS: å få detaljerte trafikknumre på hvilke sider som kjørte de mest tilknyttede henvisninger.

Over tid vil dette hjelpe meg med å justere plasseringen av min tilknyttede annonsering.

Gjør mer med dere

Det er også en omfattende gruppe av DREPS plugins og en API for å utforske. For eksempel er det blant annet Memcached og QR Code plugins.

YOURLS er et godt konfigurert, tett stykke PHP-kode for å kjøre din egen URL-kortverdi. Jeg håper du har funnet dette nyttig.

Vennligst legg inn eventuelle kommentarer, rettelser eller flere ideer nedenfor. Du kan bla gjennom mine andre Tuts + opplæringsprogrammer på min instruktørside, eller følg meg på Twitter @ reifman.

Relaterte linker

  • YOURLS Nettsted
  • YOURLS Utgivelser og Kode Nedlastinger
  • DIN Plugin List
  • API-dokumentasjonen til YOURLS
  • Følg deg på Twitter