Vraagjes over: cms, cgi, ...

Status
Niet open voor verdere reacties.

sunion

Gebruiker
Lid geworden
24 aug 2008
Berichten
278
Ik ben al een paar dagen bezig om optezoeken wat cms en cgi nu juist is.
Ik vind altijd wel uitleg, maar nooit genoeg uitgelegt :)

Dus als jullie zo vriendelijk willen zijn om mijn vragen te beantwoorden?

1: zover ik weet is 'CMS' gewoon een manier om makkelijk de inhoud van je paginas te kunnen wijzigen?
Ik heb op mijn website een zelf gescreven php script staan dan de inhoud van de index pagina haalt uit een tekst bestand. Dan heb ik in de admin pannel zelf een script geschreven waarmee je dat tekstbestand kunt wijzigen. Is dit dan een 'CMS' ??
Wat is er dan zo speciaal aan systemen als 'Joomla!', 'PHPnuke'?
Het enigste dat ik kan bedenken is dat het veel uitgebreider is dan een tekstbestandje zoals ik het doe :).
Dan mijn laatste vraag over 'CMS': Systemen zoals 'Joomla!' worden dan tog niet gebruikt in professionele websites? Ik ga er dan vanuit dat die bedrijven zelf een 'CMS' schrijven voor hun websites.


2: Soms lees ik dat 'CGI' een protocol is om serversided scripts uittevoeren, maar dan snap ik niet:
Alles geschreven in php, asp zijn dan tog 'CGI'?
CGI kan geschreven worden in veel talen, maar C++ word gecompileert naar een .exe en een perl programma heeft extensie .pl
Waarom bestaat erdan de extensie .cgi? wat staat er dan in een .cgi bestand?
Dus een site kan bv: www.website.com/index.cgi zijn?
Is het mogelijk om een site www.website.com/index.exe te hebben?
Om die manier denk ik dat het programma index.exe gewoon gedownload word naar je computer.
Is daarvoor de .cgi extensie? zodat je programmas kan uitvoeren op de server?
Waarom is er een dir genaamt cgi-bin? Is dit zodat de webserver beter beveiligt is omdat de programmas alleen rechten hebben binnen de cgi-bin?


Dit waren mijn vragen :) wss zijn mijn vragen nogal dom, maar ik zou tog graag een antwoord hebben :)

--Bedankt--
 
Een CMS, per definitie in het Nederlands dus een 'inhoud-onderhouds systeem', is een systeem dat de gebruiker in staat stelt om de content (inhoud) van iets te veranderen.

Op het web (waar CMS gebruikt wordt) betekent dit meestal: een script, waarmee mensen die geen kaas gegeten hebben van programeren of html, alsnog een website makkelijk kunnen updaten.

Het update-gedeelte van een cms bestaat meestal uit een mooie Word-achtige editor, bijvoorbeeld zoals Helpmij heeft. Je ziet dus helemaal niets van code, maar je kan wel dingen <b>bold</b> maken. Nog mooier zijn de editors die geen haakjescode hebben (dus geen [b ]bold[/b ]) maar alles direct laten zien. Bijvoorbeeld fckeditor, zie dit plaatje.

Overgens, het systeem dat je beschrijft is - in principe - een CMS. De gebruiker kan zonder kennis de content aanpassen. Maar wel een heeeeeel erg simpele, natuurlijk :)


Dingen als Joomla zijn CMS's, erg bekend vanwege het makkelijke gebruik (meen ik. Zelf nooit mee gewerkt). 'Professionele websites' kunnen ook Joomla! oid gebruiken, waarom niet? Er zijn onmogelijk veel templates ervoor beschikbaar. In feite is Joomla! maar een groot script. Het enige wat de gebruiker er van zal merken is het 'powered by Joomla!' onderaan elke pagina (bij wijze van spreken). De rest is Server-side. Met een zelfgemaakt template merkt nietmand er iets van.



CGI staat coor Common Gateway Interface. Het is een standaard, om data over te brengen tussen client en het programma. Ik ben zelf niet echt op de hoogte hoe het precies werkt. Maar volgens mij komt het er uiteindelijk op neer dat het, net zoals php en asp en CF etc, een server-side script is.

Voor CGI-programma's kan een scripttaal worden gebruikt, maar ook een gecompileerd programma
CGI-programma's worden door de webserver principieel anders behandeld dan statische HTML pagina's. Daarom hebben CGI-programma's speciale rechten (uitvoerbaar) nodig. Vaak worden dergelijke programma's bij elkaar in een directory gezet, waarbij de benodigde rechten op alle bestanden in die directory staat. Een veelgebruikte naam voor zo'n directory is "cgi-bin".
In de veelgebruikte Apache webserver is het inmiddels mogelijk om CGI-programma's in-proces te laten lopen, door het installeren van de mod perl module. De webserver is daardoor in staat om zelf Perl-scripts te interpreteren en hoeft geen externe Perl-interpreter aan te roepen.
( lees http://nl.wikipedia.org/wiki/Common_Gateway_Interface )




Ohja. In principe kan je, tenminste bij Apache, de config zo aanpassen dat het een bepaald bestand als index ziet. Ofwel, als je naar
gaat, zal Apache zoeken naar de volgende dingen:
index.html
index.htm
in de root van de site. Als je PHP hebt geinstaleerd, zal het de config aanpassen dat het ook index.php als index ziet. In principe is het dus ook mogelijk om 'index.exe' als index te laten zien.
Het zal dan echter NIET index.exe starten. Het zal gewoon de inhoud pakken en deze laten zien, een grote hoop binstring-troep.

Iets als bla.cgi, dus een cgi-script met de naam 'bla', is hetzelfde als 'bla.php', alleen dan heeft het python, of perl, of ... als taal, en niet PHP.



Als je een programma wilt starten aan de server-side kant, kan je in de verschillende talen een process kunnen starten. In PHP is het geloof ik exec() of system(). Zie [ http://nl3.php.net/function.exec ] en [ http://nl3.php.net/manual/en/function.system.php ]




[Denk ik. Deze info is gebasseerd op mijn eigen kennis, en tsja, dit is niet mijn specialisatie :p]
 
Laatst bewerkt:
Kk bedankt voor de uitleg :)

het .cgi bestand bevat dan zelf het programma? of het bevat een link naar het programma?
 
Dat kunnen allerlei talen zijn. Perl, maar ook Python en zelfs Visual Basic of C++. PHP is 'n heel veel gebruikte.
't Is ongeveer als met de telefoon, zeg maar. Er zijn allerlei technische regels die zorgen dat elke telefoon met elke telefoon kan communiceren. En binnen die technische regels kun je vervolgens Chinees, Japans of Nederlands met elkaar praten. En in elk van die talen kun je dan weer 'n schattig liedje over elfjes zingen of alle heiligen aanroepen zoals wanneer je 's nachts in het donker je kleine teen stoot. Zoiets.
Als je maar de technische regels (het protocol) volgt.
 
Status
Niet open voor verdere reacties.
Terug
Bovenaan Onderaan