Hvordan man laver en “simpel” webtælleren Apache på en Macintosh, der kører OS X

Original: http://ronney.usc.edu/pdr/how-to-make-a-simple-web-counter-using-apache-on-a-macintosh-running-os-x/

1. Motivation
Mit universitet stoppet hosting web tællere for sine brugere, så jeg ønskede at gøre en meget simpel web counter for mine personlige hjemmesider. Mine websider er hostet på min stationære computer, en Macintosh, der kører OS X. Apache er det program, der håndterer web-server-funktioner i OS X samt mange andre UNIX-baserede systemer. Jeg ønskede ikke at bruge en hjælpende tæller fra en kommerciel hjemmeside, der tilføjer en annonce og / eller link til en kommerciel hjemmeside (der er masser af sådanne steder, bare gøre en søgning på nettet på “free hit counter”). Så jeg satte ud for at gøre mine egne web tællere. Jeg ved næsten intet om UNIX, Apache, Perl-scripts, etc., men jeg regnede med denne funktion er så enkel og så almindeligt det skal være nemt, ikke? Bare gør en søgning på nettet og du vil hurtigt finde alt hvad du behøver at vide i en side, ikke? FORKERT. Dette viste sig at være en bemærkelsesværdig frustrerende projekt, men en noget “simpelt” for at kopiere, hvis du har alle de nødvendige oplysninger på ét sted. Derfor er bestemt dette dokument til at hjælpe andre bruger mindre tid, end jeg gjorde for at gøre den tilsvarende opgave. Jeg er sikker på, der er endnu nemmere måder at gøre nogle af disse funktioner, men dette er hvad jeg fandt, der virker. Hvis du finder det nyttigt og ønsker at synge mine roser, eller har konstruktive forslag, er du velkommen til at kontakte mig på [email protected] Især hvis der er nemmere måder at opnå det samme, så lad mig det vide. Jeg er meget mindre interesseret i at høre om måder at tilføje nye funktioner. Hvis du ønsker at kritisere, hvad jeg har gjort, og klager over, hvordan det rodet op din computer, kan du bruge denne adresse: [email protected]
Mens disse instruktioner er skrevet til Mac OS X, de fleste eller alle, hvis det gælder for alle Apache-server. Det eneste, der kunne være anderledes for andre systemer er folderen veje til at komme til de filer af interesse.
2. Ansvarsfraskrivelse
Først og fremmest, skal du bruge DENNE VEJLEDNING PÅ EGEN RISIKO. Det virkede for mig, men der er ingen garanti for, selvom du følger disse anvisninger præcist du vil ikke ødelægge din computer i NOGLE irreversibelt eller åbne dig op til angreb fra hackere. Er du advaret!
3. Oprettelse og lagring af tælleren scriptet
3.1 Perl-script
Først skal du have en Perl-script, der rent faktisk beregner greven opdaterer tælleren filen, og spytter output til din webside. Hvis du ikke ved, hvad en Perl-script er, så vi har noget til fælles. Men en, der fungerede godt for mig er MultiCount, som jeg har sendt her på http://ronney.usc.edu/mcount.zip. Alle på grund af kredit anerkendes hermed. Hvad er virkelig rart, om denne ene er, at
Instruktionerne er få og let at følge
Du behøver ikke at oprette separate counter-filer for hver side. Faktisk behøver du ikke at oprette endnu en tæller fil. Faktisk behøver du ikke engang nødt til at give hver side tæller et navn. MultiCount automatisk opstiller en ny tæller fil første gang en ny side beder om en optælling. Alt du skal gøre er at oprette en mappe til disse Counter-filer og MultiCount klarer resten.
Det spytter tilbage tælleren oplysninger i klartekst uden format, hvilket betyder, at du kan styre format fra Word eller hvad program du bruger til at gøre dine websider.
Når du har downloadet den Perl-script, mcount.cgi, skal du redigere den for at konfigurere den til din computer. Åbn mcount.cgi fil (ved hjælp af Word, TextEdit, uanset) og derefter følge anvisningerne i kommentarfeltet linjer i filen. I særdeleshed, skal du fortælle mcount.cgi hvor at sætte tælleren filer. Da vejledningen klart angive, dette styres af “min $ DATA_DIR” variabel. Jeg indstille den som følger:
min $ DATA_DIR = ‘/ bibliotek / webserver / cgi-eksekverbare / tællere’;
Du kan også indstille talformat (almindeligt, med kommaer, Hex, romertal (!)), Også kun at vise den samlede optælling eller statistik efter dag, uge​​, måned og / eller år, og hvorvidt efterfølgende hits fra samme besøgende bør tælle som flere hits eller ej. Men det hele er så let at følge fra instruktionerne inde i mcount.cgi fil, behøver jeg ikke uddybe det her.
Af den måde, den allerførste linje i mcount.cgi filen er
#! / usr / bin / perl
Dette fortæller Apache hvor man kan finde den Perl-script executer. Det er i virkeligheden den rigtige placering for UNIX-systemet bag Mac OS X, så du behøver ikke at ændre denne linje, men på andre systemer du måske brug for at ændre den.
Gem nu mcount.cgi som en almindelig tekstfil. Sørg for, at der er ingen skjulte ekstra udvidelser, som mange teksteditorer gerne tilføje. Word og TextEdit holde forsøger at navngive filemcount.cgi.txt derefter skjule .txt del, hvilket så betyder det vil ikke fungere, fordi du har brug for at ringe til Perl-script-fil ved navn fra din webside. Gem filen i den (synlig til Finder, søgbar med Spotlight) mappen Bibliotek / Webserver / cgi-Eksekverbare. Bemærk, at der er mange mapper på din computer kaldet Bibliotek, dette er den ene fra din rodmappe på startdisken, dvs den, du ser, når du dobbeltklikker på ikonet for harddisken.
3.2 Oprettelse af en mappe til counter-filer
Du har brug for en mappe til skranken filer, mcount.cgi skaber. Jeg sætte det i en undermappe af mappen Bibliotek / Webserver / CGI-Eksekverbare, og kaldte det simpelthen tællere. Dette er i overensstemmelse med værdien af ​​”min $ DATA_DIR” variable oprettet ovenfor.
3.3 Indstilling af filrettigheder
Nu er du færdig med at oprette filer, right? Nej, du er nødt til at indstille de korrekte adgangstilladelser. Der må være en måde at gøre dette fra Finder, men jeg kunne ikke finde ud af det. Så her er hvad der virkede:
Åbn Terminal i mappen Programmer / Hjælpeprogrammer
Skriv “cd ///// Bibliotek / Webserver / CGI-eksekverbare” (uden anførselstegn) for at komme til den mappe, hvor du lægger mcount.cgi og skabte undermappe / tællere.
Skriv “chmod 755 mcount.cgi” (uden anførselstegn) for at indstille de korrekte tilladelser til Perl-script.
Skriv “chmod 777 tællere” (uden anførselstegn) for at angive de korrekte tilladelser til mappen holder skranken filer.
Afslut programmet Terminal.
4. Ændring af din Apache-konfigurationsfil til at tillade scripts, der skal udføres, og at indarbejde resultaterne på dine websider
4.1 Finde Apache konfigurationsfilen
Her er den skræmmende del af projektet, hvor du ændrer et system fil. Den fil, der sætter Apaches konfiguration (man kunne kalde dette en “Indstillinger” fil) kaldes “httpd.conf” beliggende / privat / etc / apache2 / httpd.conf. Det er en “skjult” systemfil, og vil ikke dukke op i en normal Finder-vindue eller søgning. For at se det, er du nødt til at gøre det En måde at gøre dette på er med en cool lille program kaldet “Usynlighed toggler”, som er tilgængelig online fra mange kilder “synlig.” udviklerens side er http://tjmsoftware.thejoshmeister.com/. Bare køre programmet én gang, og det “skifter” skjulte filer til synlig; køre det igen, og det “skifter” disse filer til usynlig. Når du har foretaget de skjulte filer synlige, kan du navigere til / privat / etc / apache2 / httpd.conf og åbne i din foretrukne teksteditor.
Der er 3 ændringer, der skal foretages til httpd.conf til tælleren til arbejde, som anført i de følgende 3 sub-sektioner.
4.2 Ændring # 1
Omkring 1/3 af vejen ned filen (du kan bruge søgefunktionen til at finde denne plet lettere), finder du et direktiv til mappen / Bibliotek / Webserver / Dokumenter, der ligner
Options Indexes FollowSymlinks MultiViews
Tilføj ordet “omfatter” til denne liste af muligheder, dvs
Muligheder omfatter Indexes FollowSymlinks MultiViews
Dette gør det muligt “Server Side Includes” eller SSI, hvad det så betyder.
4.3 Ændring # 2
Omkring 1/2 af vejen ned filen, vil du finde et direktiv som

DirectoryIndex index.html

Dette sætter navn (e) i standard web side (r) Apache vil kigge efter i en mappe, hvis en bestemt fil ikke er angivet, f.eks hvis du bare skrive http://ronney.usc.edu i browserens URL-vinduet. Normalt standardside er index.html, men i dette tilfælde er vi nødt til at kigge først for at se, om der er en side med dynamisk indhold, som tilsyneladende skal have udvidelsen shtml, ikke blot almindelig .html. Ikke at bekymre dig, bare ændre det midterste linje til
DirectoryIndex index.shtml index.html
og Apache vil se først for index.shtml, så hvis denne fil ikke er til stede, vil den kigge efter index.html som før.
4.4 Ændring # 3
Omkring 4/5 af vejen ned filen, vil du finde et direktiv, der effektivt fortæller Apache at omfatte produktionen af ​​Perl-script i den side, den sender til den computer, der besøger dit websted. Det er normalt kommenteret ud:
#AddType Text / html shtml
#AddOutputFilter OMFATTER shtml
Alt du skal gøre er at fjerne “#” tegn til at gøre disse direktiver aktiv:
AddType text / html shtml
AddOutputFilter OMFATTER shtml
. (Bemærk, denne del kørte mig nødder, indtil jeg regnede det ud Uden AddType og AddOutputFilter direktiver, jeg kunne få adgang til disken direkte, og det fungerede fint, dvs jeg går tilhttp: //ronney.usc.edu/cgi-bin/mcount .cgi og jeg får en ordentlig optælling vises på min browser, men da jeg forsøgte at inkorporere tælleren i en webside, siger index.shtml, og indlæse websiden http://ronney.usc.edu/index.shtml, der sker ikke noget, når tælleren blev indsat.)
Bemærk, at dette betyder, at du bliver nødt til at nævne alle de filer, der anvender tælleren med forlængelsen shtml, ikke blot almindelig .html.
4.5 Lagring af fil
Du kan ikke gemme dette system fil httpd.conf på en måde, der overskriver den eksisterende. Så gem det på skrivebordet, igen som en kun tekst-fil, og igen se ud for teksteditorer forsøger at tilføje en skjult .txt forlængelse. Træk derefter filen fra skrivebordet til / private / etc / apache2 / mappe. Finder vil bede dig om din administratoradgangskode, og vil bede dig om at bekræfte, at du vil overskrive den eksisterende fil. Bemærk, at der er en httpd.conf fil i / private / etc / apache2 / originalt undermappe, du kan bruge til at genindføre standardkonfigurationen, hvis du rodet op thehttpd.conf fil. Eller endnu bedre, lave en kopi af den eksisterende httpd.conf før du går i gang.
Du skal genstarte computeren, før ændringerne træder i kraft. (Der er en måde at genstarte Apache uden at genstarte hele styresystemet, sehttp:. //httpd.apache.org/docs/stopping.html, Men det synes lettere bare at genstarte alt)
5. Tilføjelse af tælleren til dine websider
Nu, hvor tunge løft er gjort, hvordan kan du fortælle dine websider til at vise tælleren? Hvor du end vil tælleren skal vises, skal du tilføje HTML direktivet
<! – # Exec cgi = “/ cgi-bin / mcount.cgi” ->
Hvordan du indarbejde disse direktiver i en side, afhænger af hvilket program du bruger til at generere denne side. Hvis du bruger Word, første Bemærk, at du kan ikke bare sætte ovennævnte direktiv til din webside på den ønskede placering, selv når du er i online layoutvisning. Hvis du gør, når du indlæser websiden fra en webbrowser, vil du bare se <! – # Exec cgi = “/ cgi-bin / mcount.cgi” ->, ikke produktionen af ​​en tæller. Du er nødt til at sætte tælleren direktivet i HTML-kildekoden selv. Ordet synes ikke at have et middel til at tilføje html-kode direkte ind i et dokument, men du kan gøre det i en noget indirekte måde. Her er du:
Opret din webside på den sædvanlige måde. Du vil måske ønsker at sætte noget som “ABC XYZ”, hvor du vil tælleren til at gå, fx “Du er besøgende nummer ABC XYZ siden denne side blev oprettet.” Gem filen ved hjælp af “gem som webside” valgmulighed. Husk at bruge den shtml forlængelse. Den aktuelle version af Word ser ud til at insistere på, at du gemmer sider med the.htm udvidelse, men du kan humor Word ved at gemme filen med denne udvidelse, så ændre det til shtml når du er færdig.
Fra pull-down menuer, vælge Vis / HTML-kilde
Weed gennem siderne i skøre, at HTML-kildekoden er at finde det sted, hvor du vil have tælleren til at gå. Det er meget nemmere, hvis du lægger “ABC XYZ” som pladsholder, så du kan søge efter det.
Tilføj ovenstående exec cgi direktiv. Særlig bemærkning: Når du skriver “->” Word kan lide at konvertere dette til en enkelt ret pil karakter, som ikke vil arbejde! Hvis du skriver “->” og derefter backspace og tilføje en ekstra “-“, vil Word ikke gøre konverteringen, og du vil have dit ønskede “->”.
Klik på knappen “Afslut HTML-kilde” (hvis du ikke kan se det, kan du finde kommandoen i menuen Vis.) Du vil ikke se tælleren oplysninger i dokumentet, men det er der og vil vise, når nogen indlæser din webside fra deres webbrowser.
Hvis det ønskes, kan du ændre farve, skrifttype, størrelse osv på den linje, der indeholder tælleren. Dette kan være en smule tricky, da du ikke kan se tælleren. Men hvis du sætter disken direktivet mellem ABC og XYZ indstille formateringen af ​​ABC XYZ den måde du ønsker tælleren skal vises, og derefter slette de ABC og XYZ tegn, du vil have den ønskede formatering.
Gem filen igen, og sørg for du stadig bruger den shtml forlængelse.
Sæt filen i Bibliotek / WebServer / mappen Dokumenter eller din den relevante undermappe.
Og det er alt der er til det!

Comments are closed.