Jag har under en tid försökt göra en webserver vilken har åtkomst till en databas. Detta har inte varit helt lätt, bland annat för att det inte funnits några riktigt bra instruktioner för Hur Man Gör. Så jag har bestämt mig för att skriva en sådan fil själv.
Först försökte jag göra detta med Apache, Php och MySQL, men jag fick inte MySQL att fungera, så jag gick över till PostgreSQL i stället. Nedan förljer instruktioner för hur du gör, steg för steg.
Jag kommer här att använda mig av html, php och sql. Dock ligger det inte innom denna manuals räckvidd att gå igenom dessa språks syntax eller användning. Jag hänvisar där till andra resurser. Jag utgår också ifrån att du har en dator med Debian/Linux och en ethernet internettkopling. Det är vad jag har, och om du har något annat så kommer den här texten att bli mindre relevant.
Ok, låt oss börja.
apt-get install apache |
Detta installerar apache. Om du öppnar upp din favoritbrowser och skriver in "localhost" eller datorns ip-nummer bör du se en sida som talar om att din webserver fungerar. Det är nu dags för dig att börja konfigurera lite. Detta görs i en fil som heter
/etc/apache/httpd.conf |
Det mesta fungerar från början och bara några få rader behövs ändras på. Läs igenom filen och se om det är något du inte trivs med.
Det första du vill ändra på är var apache börjar leta efter html-sidor. Exempelvis så har jag här en katalog som heter /home/fille/www/, i vilken det ligger en fil vid namn index.html. Det är den filen du först ser när du surfat in på den här webservern. För att sätta ditt startdirectory, leta upp raden
DocumentRoot |
och sätt den till var du vill börja. Gå sedan ner till den katalogen och skapa en fil "index.html" och fyll den med något lämpligt välkomstmeddelande. Kan du inte html får du lära dig det först. Jag skrev en manual för länge sedan som finns på den här sidan. När du är klar, skall du starta om webservern.
groupadd www-data useradd www-data useradd www-data www-data |
Detta betyder "skapa gruppen www-data", "skapa användaren www-data" och "lägg
till användaren www-data till gruppen www-data".
Troligtvis behöver du inte göra detta steg, det är antagligen redan gjort. Men
om det inte är gjort står här hur du skall göra.
Nu kan vi starta om apache.
cd /etc/init.d/ ./apache restart |
Färdigt!
apt-get install php4 |
Det bör i princip räcka. För att testa att allt fungerar, skapa en fil som heter browser.php och fyll den med vanliga html-taggar plus den här raden:
<?php echo $_SERVER["HTTP_USER_AGENT"]; ?> |
Om du surfar in på den sidan bör du få reda på vilken browser du har. Om det gör det har du gjort rätt.
Jag väljer att använda postgresql. Det var enklare än mysql, bla för att det fungerade. Jag fick inte mysql att fungera på en månad, postgresql fick jag upp på 1.5 timmar.
Först ska vi få php att förstå postgersql-funktioner.
apt-get install php4-pgsql |
Du kommer att ombes skriva till "extension=pgsql.so" i filen /etc/php4/apache/php.ini. Tryck bara enter så görs det automatiskt. Nu kan din webserver tala postgresql-språk. Glöm inte att starta om webservern först bara. Det står längre upp hur du gör.
Dags att lägga in själva databasen i datorn.
apt-get install libpgsql2 postgresql postgresql-client |
Detta lägger in alla nödvändiga paket.
Nu är det dags att starta postgresql. Det är viktigt att du använder -i när du startar upp, för annars kan du inte knyta ihop postgresql med html.
/usr/lib/postgresql/bin/postmaster -i -D /var/lib/postgres/data |
/var/lib/postgres/data är path till databasen. Du kan skriva dit "nisse" istället för "data" om du vill. Då kommer directoryt /var/lib/postgres/nisse att skapas och du får en ny databas.
Redan nu kan du börja skapa databser med tabeller och allt annat som hör till.
createdb databas psql databas |
Createdb skapar en databas vid namn "databas" och psql tar dig in i psql-mode. Däri kan du skriva sql-syntax plus en del andra kommandon. Jag tänker inte gå igenom hur du jobbar i detta läget, men jag kan bjuda på en länk med dokumentation.
createdb testing |
Skapar databasen.
psql testing create table foo ("name" text); create user 'www-data' nocreatedb nocreateuser; GRANT all ON foo TO www-data; |
Databasen är skapad, och användaren "www-data" har skapats och givits alla
rättigheter i tabellen foo, men inte givits rättighet att skapa nya databaser
eller användare.
Lägg märke till att www-data skrivs innom ''. Detta beror på att psql inte kan
hantera vissa tecken om man inte tvingar dem med '-fnuttar. - är ett av de
tecknen. I din PHP-kod är detta inget problem, bara i konsollage.
/etc/init.d/apache stop /etc/init.d/apache start |
Så. Nu ska vi se att du kan kopla till databasen fråm html via php. Skapa en php-fil och lägg in dessa två rader:
<?? $dbconn = pg_connect ("host=localhost dbname=testing"); pg_close($dbconn); //not nessesary ??> |
Detta kopplar upp dig mot databasen du skapade ovan, och stänger ner uppkoplingen. Om du gjort rätt får du se en websida som är helt blank. Om du har gjort fel får du felmeddelanden på sidan.
För referens till php-manualen, se php.net
Fotnot: Du kommer att upptäcka att vissa funktioner i PHP inte fungerar
("Call to undefined function in line X in
epost: fille aparsle fukt prick bsnet prick se
Epostadressen är krypterad pga spambekämpning, du får avkryptera den själv.
Skicka gärna in förslag på förbättringar till detta dokument.
Upp en nivå