Apa­che in­stal­le­ren

In­stal­leer je ei­gen Apa­che-web­ser­ver

C’t Magazine - - Praktijk | Apache-server - Noud van Kruys­ber­gen

Om vol­le­dig con­tro­le te heb­ben over je web­ser­ver, kun je het bes­te zelf de han­den uit de mou­wen ste­ken en de be­no­dig­de com­po­nen­ten met be­hulp van de com­mand­line in­stal­le­ren. Ook han­dig als test­ser­ver.

Om een con­tent­ma­na­ge­ment­sys­teem te in­stal­le­ren of een pas­sie­ve HTML/CSS-si­te op in­ter­net te krij­gen, is een kant-en-kla­re web­spa­ce die je bij een web­hos­ter kunt hu­ren een pri­ma mo­ge­lijk­heid. Dan hoef je je niet be­zig te hou­den met wat er op de ach­ter­grond al­le­maal draait om de boel aan de gang te krij­gen en te hou­den.

Vaak kun je de func­ti­o­na­li­teit die ge­bo­den wordt mo­du­lair aan- of uit­zet­ten via een ei­gen ge­brui­kers­in­ter­fa­ce. Je kunt al­le func­ties die je niet ge­bruikt, uit­zet­ten. Ster­ker nog: die móet je uit­zet­ten om­dat ze de per­for­man­ce en vei­lig­heid van je web­ser­ver ne­ga­tief be­ïn­vloe­den. Ex­tra plug-ins ma­ken je ser­ver vat­baar­der voor aan­val­len van bui­ten­af.

Maar vaak heb je he­le­maal geen idee wat er op een web­ser­ver al­le­maal draait. Het eni­ge wat je kunt doen, is je be­stan­den via FTP of een an­de­re ma­nier naar de web­ser­ver ko­pi­ë­ren en dan moet al­les als een soort au­to­ma­ti­sche ma­gie gaan wer­ken. Als dat niet zo is, res­teert je vaak niets an­ders dan con­tact op­ne­men met de sup­port­af­de­ling van de hos­ter.

Wil je meer con­tro­le over je web­ser­ver en al­leen over de func­ti­o­na­li­tei­ten be­schik­ken die je daad­wer­ke­lijk no­dig hebt, of heb je func­ti­o­na­li­tei­ten no­dig die ge­wo­ne web­spa­ces niet bie­den, dan moet je zelf aan de slag om je web­ser­ver naar je hand te zet­ten. Dat klinkt moei­lij­ker dan het is. Ie­der­een die wel eens met XAMPP of LAMP een web­ser­ver op zijn sys­teem ge­ïn­stal­leerd heeft, heeft de stap­pen die no­dig zijn om een web­ser­ver in de lucht te krij­gen ei­gen­lijk al au­to­ma­tisch la­ten uit­voe­ren. Voor een lo­ka­le test­ser­ver biedt dat vol­doen­de mo­ge­lijk­he­den, maar voor een pro­duc­tie­ser­ver geldt dat meest­al niet.

Ge­luk­kig kun je bij veel hos­ters ook een 'ka­le' ser­ver hu­ren, bij­voor­beeld in de vorm van een Vir­tu­al Pri­va­te Ser­ver (VPS). Bij een VPS wordt een fy­sie­ke ser­ver op­ge­deeld in meer­de­re klei­ne­re vir­tu­e­le ser­vers. Die vir­tu­e­le ser­vers wor­den als VPS ver­huurd. El­ke ge­brui­ker krijgt dus een ei­gen vir­tu­e­le ser­ver en kan daar­op doen en la­ten wat hij wil. Door­dat de hos­ter dit zo kan in­rich­ten dat de hard­wa­re dag en nacht ge­lijk­ma­tig wordt be­last, heb je nau­we­lijks last van de an­de­re VPS'en. Hier­door wordt de hard­wa­re ef­fi­ci­ën­ter be­nut en kan de­ze dus goed­ko­per wor­den aan­ge­bo­den dan een de­di­ca­ted ser­ver. Bij de­ze laat­ste op­tie huur je in fei­te een ser­ver in een groot ser­ver­rack in een re­ken­cen­trum. Jouw web­ser­ver draait dan daad­wer­ke­lijk op de ka­le hard­wa­re met een ei­gen pro­ces­sor, schij­ven en werk­ge­heu­gen. In de prak­tijk we­gen de meer­kos­ten vaak niet op te­gen die van een vir­tu­e­le ser­ver, ten­zij je ver­wacht dat de si­tes die je gaat hos­ten een enor­me in­ter­na­ti­o­na­le toe­vlucht aan be­zoe­kers op­le­vert. Heb je een web­si­te die dag en nacht druk wordt be­zocht, dan is een VPS niet per se de juis­te keus.

Zo­als ge­zegd is een VPS he­le­maal van jou al­leen en hoef je de­ze niet met an­de­ren te de­len. Je bent zelf ver­ant­woor­de­lijk voor het in­stal­le­ren van de soft­wa­re op zo'n ser­ver, maar vaak wordt hij ge­le­verd met een ba­sis­in­stal­la­tie op ba­sis van Win­dows of Li­nux. Bij web­ser­vers wordt van­we­ge de ont­bre­ken­de li­cen­tie­kos­ten en de sim­pe­le­re ge­bruiks­voor­waar­den meest­al Li­nux ge­bruikt. Daar­bij speelt ook mee dat de mees­te web­ser­ver­soft­wa­re goed on­der Li­nux wordt on­der­steund en een­vou­dig te in­stal­le­ren is. Om­dat Li­nux be­heerd kan wor­den via de com­mand­line, dus zon­der gra­fi­sche schil, is dat een aan­vals­punt min­der en gaat dat een stuk min­der stro­pe­rig dan met een GUI.

In dit ar­ti­kel gaan we daar­om uit van een mi­ni­ma­le Ubuntu 16.04-in­stal­la­tie, waar je een com­ple­te web­ser­ver van maakt. Dat be­te­kent dat je Apa­che2, da­ta­ba­se­ser­ver MySQL en PHP-on­der­steu­ning van de grond af aan in­stal­leert. Als je niet he­le­maal ze­ker bent van je­zelf, pro­beer je dat eerst uit op een tij­de­lij­ke Ubuntu-ser­ver op een pc in je net­werk of een vir­tu­e­le ma­chi­ne op je ei­gen com­pu­ter. Om echt on­li­ne te gaan, heb je dan een Li­nux-VPS of de­di­ca­ted ser­ver no­dig waar Ubuntu 16.04 al op ge­ïn­stal­leerd is – met zo min mo­ge­lijk ex­tra mo­du­les. Er zijn na­me­lijk aan­bie­ders die bij wij­ze van ser­vi­ce met­een al­le toe­ters en bel­len en een

desktopin­ter­fa­ce voor je mee in­stal­le­ren, zo­dat je al met­een de be­schik­king hebt over al­le web­ser­ver­mo­ge­lijk­he­den – maar dat is in dit ge­val nou net niet wat je wilt. Wie Ubuntu op een ei­gen test-pc of vir­tu­e­le ma­chi­ne in­stal­leert, moet ge­du­ren­de de in­stal­la­tie een ge­brui­ker aan­ma­ken. De­ze heeft stan­daard geen be­heer­ders­rech­ten – in Li­nux-jar­gon root-rech­ten ge­noemd. In­log­gen als root is niet heel vei­lig om­dat je dan al­les mag. Het ri­si­co dat er dan se­ri­eus wat mis­gaat om­dat je per on­ge­luk een ver­keerd com­man­do in­typt, is be­hoor­lijk groot. Daar­om staat Ubuntu dit stan­daard niet toe. Wil je op­drach­ten uit­voe­ren waar­voor je root­rech­ten no­dig hebt, dan moet je die op­dracht voor­af la­ten gaan door su­do, wat je kunt le­zen als Su­per User DO. Ver­vol­gens wordt ge­vraagd om je ei­gen wacht­woord in te voe­ren. Weet je van te­vo­ren al dat je be­hoor­lijk wat op­drach­ten met root-rech­ten moet uit­voe­ren, dan kun je be­heer­der 'root' wor­den door su­do -i en je ei­gen wacht­woord in te ty­pen. Ver­geet na het uit­voe­ren niet om als root uit te log­gen en als ge­wo­ne ge­brui­ker ver­der te gaan. Wil je van­af een Win­dows-ma­chi­ne in­log­gen dan moet op Li­nux ook een SSH­ser­ver draai­en. De­ze voeg je on­der Ubuntu met het com­man­do apt op de­zelf­de ma­nier toe als waar­op we ver­der­op Apa­che in­stal­le­ren.

Con­tact met de ser­ver

Voor het voor­beeld gaan we uit van een mi­ni­ma­le Ubuntu-in­stal­la­tie op een be­taal­ba­re VPS – bij­voor­beeld de aan­trek­ke­lij­ke aan­bie­ding van Stra­to in het ka­der rechts­bo­ven op de­ze pa­gi­na. Om con­tact te leg­gen, ge­brui­ken we SSH. Hier­voor heb je een SSH-client no­dig voor je be­stu­rings­sys­teem. Voor Win­dows kan dat met PuTTY, in macOS is stan­daard een SSH-client in­ge­bouwd, Li­nux-ge­brui­kers kun­nen de Opens­sh-client in­stal­le­ren. Bij Putty vul je bij Host Na­me het ip-adres van je ser­ver in, dat je van je pro­vi­der hebt ge­kre­gen. Zorg er­voor dat als pro­to­col SSH is ge­se­lec­teerd en klik op Open. Daar­na moet je in­log­gen op de ser­ver met de in­log­ge­ge­vens die je van de hos­ter hebt ge­kre­gen. Als je net als wij al­leen een wacht­woord hebt, moet je als in­log­naam root ge­brui­ken. Op dat mo­ment zie je niet veel meer dan een cur­sor op een zwart scherm, maar je bent dan wel in­ge­logd op de web­ser­ver en kunt com­man­do's in­ty­pen om het sys­teem ver­der te in­stal­le­ren en con­fi­gu­re­ren.

Zo­als ge­zegd is stan­daard wer­ken als root niet heel vei­lig om­dat je dan al­les mag. De kans dat er dan wat se­ri­eus mis­gaat om­dat je per on­ge­luk een ver­keerd com­man­do in­typt, is be­hoor­lijk groot. Maak daar­om eerst een 'ge­wo­ne' ge­brui­ker aan, die slechts na het in­ty­pen van een wacht­woord din­gen mag in­stal­le­ren. Vul in het on­der­staan­de com­man­do bij <us­er­na­me> de naam van de ge­wo­ne ge­brui­ker in. Die wordt toe­ge­voegd aan de groep van be­heer­ders. Typ de vol­gen­de com­man­do's in op de SSH-con­so­le om in te log­gen als ge­brui­ker <us­er­na­me>:

ad­du­ser <us­er­na­me> user­mod -aG su­do <us­er­na­me> su­do su <us­er­na­me>

Apa­che in­stal­le­ren

Daar­na ga je de web­ser­ver in­stal­le­ren. In de prak­tijk heb­ben we het meest­al over een Apa­che-ser­ver, maar for­meel is dat Apa­che2. Dat zie je bij de in­stal­la­tie­com­man­do's dan ook te­rug. Zo­als bo­ven aan­ge­haald, moe­ten com­man­do's wor­den voor­af­ge­gaan door su­do. Het com­man­do wat daar­na volgt, mag im­mers al­leen uit­ge­voerd wor­den door een be­heer­der. Pro­beer je het com­man­do zon­der su­do er­voor te la­ten wer­ken, dan krijg je een fout­mel­ding dat je daar de rech­ten niet voor hebt. Up­da­te en up­gra­de de ser­ver en laat hem dan Apa­che in­stal­le­ren. Bij

de com­man­do's staat apt voor Ad­van­ced Pack­a­ging Tool, of­te­wel het pak­ket­be­heer­pro­gram­ma dat bij Ubuntu (en an­de­re op De­bi­an ge­ba­seer­de be­stu­rings­sys­te­men) zorgt voor het be­heer van soft­wa­re­pak­ket­ten.

su­do apt-get up­da­te su­do apt-get up­gra­de su­do apt-get in­stall apa­che2

Fi­re­wall in­stel­len

Om­dat je Ubuntu-ser­ver stan­daard be­vei­ligd wordt door een ei­gen fi­re­wall, moet je er­voor zor­gen dat hij wel van bui­ten­af via in­ter­net be­reik­baar is. Daar­bij gaat het om de pro­to­col­len HTTP en HTT­PS, die voor het da­ta­ver­keer van web­si­tes ge­bruikt wor­den. De fi­re­wall van Ubuntu heet ufw, wat een af­kor­ting is van un­com­pli­ca­ted fi­re­wall (maar je mag het ook le­zen als Ubuntu-fi­re­wall). Bij die fi­re­wall sta je de pro­to­col­len HTTP en HTT­PS met de vol­gen­de twee com­man­do's toe:

su­do ufw al­low http su­do ufw al­low htt­ps

Ba­sis­web­si­te

Met het vol­gen­de com­man­do krijg je een sta­tus­over­zicht van de web­ser­ver. Als ach­ter 'Ac­ti­ve' in het groen 'ac­ti­ve (run­ning)' staat, is de web­ser­ver ge­ac­ti­veerd.

su­do sys­temctl sta­tus apa­che2

In prin­ci­pe ben je dan al klaar. Als je met een brow­ser naar het ip-adres van je ser­ver gaat of naar de url van een do­mein­naam die je aan het ip-adres hebt ge­kop­peld, moet de stan­daard­pa­gi­na van Apa­che2 ver­schij­nen.

Da­ta­ba­se­ser­ver in­stal­le­ren

De mees­te si­tes be­staan niet uit pas­sie­ve HTML-pa­gi­na's, maar ha­len hun steeds ver­an­de­ren­de con­tent uit een da­ta­ba­se. Om de con­tent en an­de­re ge­ge­vens in een da­ta­ba­se op te kun­nen slaan, in­stal­leer je als da­ta­ba­se­ser­ver MySQL (of Ma­ri­aDB).

su­do apt-get in­stall mysql-ser­ver

Tij­dens het in­stal­le­ren wordt ge­vraagd naar een wacht­woord voor de da­ta­base­ge­brui­ker. Na­dat je dat ter be­ves­ti­ging nog een keer in­ge­typt hebt, is de da­ta­ba­se­ser­ver klaar voor ge­bruik. Met

su­do sys­temctl sta­tus mysql

kun je con­tro­le­ren of dat in­der­daad het ge­val is. Ont­houd het da­ta­ba­se­wacht­woord goed, want dat heb je la­ter re­gel­ma­tig no­dig, bij­voor­beeld om back-ups of nieu­we ta­bel­len aan te ma­ken.

PHP in­stal­le­ren

Voor het in­stal­le­ren van de taal PHP moet je wat ex­tra mo­du­les toe­voe­gen. Van­daar dat dit com­man­do wat lan­ger is dan de com­man­do's die je tot nu toe in­ge­typt hebt:

su­do apt-get in­stall php

li­bapa­che2-mod-php php-mcrypt php-mysql php-cgi php-curl

php-json

Om te tes­ten of PHP goed ge­ïn­stal­leerd is, moet je eerst een PHP-pa­gi­na heb­ben die je uit kunt voe­ren. Om zo'n pa­gi­na te ma­ken, heb je een edi­tor voor het be­wer­ken van tekst­be­stan­den no­dig. Voor be­gin­ners is na­no het een­vou­digst, maar ge­vor­der­de ge­brui­kers ge­ven vaak de voor­keur aan ViM, Emacs o.i.d. Wel­ke je ook wilt gaan ge­brui­ken, je moet hem eerst in­stal­le­ren – het is im­mers een mi­ni­ma­le Ubuntu-in­stal­la­tie. We gaan hier uit van de edi­tor na­no:

su­do apt-get in­stall na­no

Daar­na kun je een test­pa­gi­na ma­ken. Bij Apa­che staan de be­stan­den op de web­ser­ver stan­daard in de di­rec­to­ry /var/ www/html. In die di­rec­to­ry maak je een test­pa­gi­na met de ex­ten­sie php aan:

su­do na­no /var/www/html/test.php

Ver­vol­gens typ je daar de vol­gen­de drie re­gels in:

<?php php­in­fo(); ?>

Be­waar het be­stand (Ctrl+O) en sluit de edi­tor af (Ctrl+X). Ga met de brow­ser dan naar http://<mijn­ser­ver>/test.php. Als het goed is, krijg je nu de sys­teem­in­for­ma­tie van PHP te zien. Om­dat je waar­schijn­lijk niet wilt dat ie­der­een al­le in­for­ma­tie over jouw web­ser­ver kan be­kij­ken, ver­wij­der je die pa­gi­na na het tes­ten met het com­man­do rm:

su­do rm /var/www/html/test.php

Meer­de­re web­si­tes

Meest­al wil je meer­de­re web­si­tes op een en­ke­le web­ser­ver hos­ten. Die ko­men dan al­le­maal in een ei­gen di­rec­to­ry te staan en wer­ken met een ei­gen da­ta­ba­se, zo­dat ze el­kaar niet in de weg zit­ten. In dit ge­val maak je met het com­man­do mk­dir een di­rec­to­ry aan voor de web­si­te test.com, waar­na je met het com­man­do cd naar die di­rec­to­ry gaat en daar met na­no het be­stand in­dex. html aan­maakt dat stan­daard ge­o­pend wordt als ie­mand een web­si­te be­zoekt.

su­do mk­dir -p /var/www/test.com cd /var/www/test.com su­do na­no in­dex.html

In dat in­dex-be­stand zet je met na­no de vol­gen­de con­tent:

<html>

<head>

<tit­le>test.com in­dex-pa­ge</tit­le> </head>

<bo­dy>

<h1>Hel­lo and wel­co­me to test.com!</

h1>

<h2>If you see this, then it works ...</h2>

</bo­dy>

</html>

Web­si­te toe­voe­gen

Je hebt een apar­te di­rec­to­ry aan­ge­maakt voor de nieu­we web­si­te, maar Apa­che weet nog niet wat hij daar mee moet. In de di­rec­to­ry /etc/apa­che2/si­tesa­vai­la­ble/ staan de con­fi­gu­ra­tie­be­stan­den voor de web­si­tes die door je Apa­che-ser­ver ge­host wor­den. In die di­rec­to­ry moet het con­fi­gu­ra­tie­be­stand voor het nieu­we do­mein test.com aan­ge­maakt wor­den.

cd /etc/apa­che2/si­tes-avai­la­ble/ su­do na­no test.com.conf

In het con­fi­gu­ra­tie­be­stand zet je de vol­gen­de re­gels. Bij Ser­verAd­min vul je je mail­adres in.

<Vir­tu­alHost *:80>

Ser­verAd­min <your­na­me>@test.com Do­cu­mentRoot /var/www/test.com Ser­verNa­me test.com

Ser­verA­li­as www.test.com

Er­rorLog ${APACHE_LOG_DIR}/er­ror.log CustomLog ${APACHE_LOG_DIR}/ac­cess.log com­bi­ned

</Vir­tu­alHost>

Daar­na moet die con­fi­gu­ra­tie nog toe­ge­voegd en ge­la­den wor­den. Met a2en­si­te (Apa­che 2 ena­ble si­te) voeg je de si­te aan de web­ser­ver toe en met het re­load-com­man­do laad Apa­che de con­fi­gu­ra­tie op­nieuw in. Hier­na zou de si­te be­schik­baar moe­ten zijn.

su­do a2en­si­te test.com.conf su­do ser­vi­ce apa­che2 re­load

Als je met de brow­ser ver­vol­gens naar http://<mijn­ser­ver>/test.com gaat, moet je de in­dex­pa­gi­na zien. Als je de do­mein­naam test.com ge­re­gi­streerd hebt en die naar het ip-adres van jouw web­ser­ver ver­wijst, moet je het­zelf­de re­sul­taat krij­gen als je naar http://test.com gaat.

SSL in­stal­le­ren

Het in­ter­net­ver­keer tus­sen je web­ser­ver en de brow­ser van je be­zoe­kers is nog niet ver­sleu­teld. Ie­der­een die toe­gang heeft tot dat net­werk­ver­keer kan daar­om al­les mee­le­zen en zien wat er ver­stuurd wordt. Bij pa­gi­na's met in­log­ge­ge­vens of be­taal­in­for­ma­tie wil je dat na­tuur­lijk niet. Van­daar dat we dit ver­keer moe­ten ver­sleu­te­len. Dat kan te­gen­woor­dig op meer­de­re ma­nie­ren: een moei­lij­ke, een re­de­lijk mak­ke­lij­ke en een erg mak­ke­lij­ke. In de vo­ri­ge c't staan een aan­tal ar­ti­ke­len over de mak­ke­lijk­ste – en gra­tis – me­tho­de om dat te doen met Let's En­crypt. Je kunt Let's En­crypt de cer­ti­fi­ca­ten la­ten re­ge­len die no­dig zijn voor het ver­sleu­te­len en ook al­le in­stel­lin­gen la­ten door­voe­ren die no­dig zijn om het in­ter­net­ver­keer te be­vei­li­gen:

su­do add-apt-re­po­si­to­ry

ppa:cert­bot/cert­bot su­do apt-get up­da­te su­do apt-get in­stall

py­thon-cert­bot-apa­che su­do cert­bot --apa­che -d test.com

-dw­ww.test.com

Daar­bij wordt het be­stand test.com-les­sl.conf in de di­rec­to­ry /etc/apa­che2/si­tes-avai­la­ble/ aan­ge­maakt waar­in poort 443 voor het vei­li­ge SSL-ver­keer wordt ge­con­fi­gu­reerd. Het nor­ma­le da­ta­ver­keer via HTTP ge­bruikt poort 80, maar het pro­to­col HTT­PS werkt met poort 443. Ge­luk­kig zijn zo­wel HTTP als HTT­PS al vrij­ge­ge­ven door de fi­re­wall, zo­dat het vei­li­ge da­ta­ver­keer niet wordt te­gen­ge­hou­den.

Voor een op­ti­ma­le be­vei­li­ging wil je na­tuur­lijk dat al het ver­keer dat via HTTP bij je web­ser­ver bin­nen­komt om­ge­leid wordt naar HTT­PS. Ook dat stelt Let's En­crypt voor je in bij het con­fi­gu­ra­tie­be­stand test.com.conf van je web­si­te. Als je ver­vol­gens met je brow­ser naar htt­ps://www. ssl­labs.com/ssltest/ana­ly­ze. html?d=test.com& la­test gaat, kun je tes­ten of je si­te in­der­daad goed be­vei­ligd is. Als je met je brow­ser naar http://test.com gaat, zul je zien dat je au­to­ma­tisch wordt door­ge­stuurd naar htt­ps://test.com. En be­lang­rij­ker: je krijgt naast de url een groen slot­je te zien ter be­ves­ti­ging van de be­vei­lig­de sta­tus van het web­ver­keer.

Au­to­ma­tisch ver­len­gen

Een Let's En­crypt-cer­ti­fi­caat heeft een maxi­ma­le gel­dig­heid van 90 da­gen, waar­na je het cer­ti­fi­caat nor­maal ge­spro­ken hand­ma­tig moet ver­len­gen. Dat is voor één web­si­te nog wel te doen, maar be­heer je meer­de­re si­tes dan wil je niet het ri­si­co lo­pen dat je er toe­val­lig een ver­geet te ver­len­gen, waar­door je si­te in­eens niet meer vei­lig te be­rei­ken is. Ge­luk­kig is er een mo­ge­lijk­heid het

cer­ti­fi­caat au­to­ma­tisch te la­ten ver­len­gen.

Hier­voor ma­ken we een sys­teem­taak aan, in Li­nux cron­job of cron­tab ge­he­ten. Met Cron (af­kom­stig van het En­gel­se woord chro­no­graph, een soort stop­watch) kun je ta­ken op een voor­af in­ge­steld tijd­stip uit­voe­ren. On­der­aan de lijst be­staan­de ta­ken voeg je een nieu­we taak toe voor het ver­len­gen van de cer­ti­fi­ca­ten. In dit ge­val ge­beurt dat el­ke och­tend om 07:00. Als een cer­ti­fi­caat nog niet ver­lengd hoeft te wor­den, ge­beurt er ver­der niets.

su­do cron­tab -e

0 7 * * * /usr/bin/cert­bot re­new --qui­et

Da­ta­ba­se­be­heer in­stal­le­ren

Nu al het ver­keer van en naar je web­ser­ver ver­sleu­teld is, kun je ver­der aan de slag met de da­ta­ba­se­ser­ver. Die heb je al wel ge­ïn­stal­leerd, maar er is nog geen be­heer­in­ter­fa­ce voor. Daar­voor wordt meest­al phpMyAd­min ge­bruikt. In­stal­leer de­ze soft­wa­re met de vol­gen­de com­man­do's:

su­do apt-get up­da­te su­do apt-get in­stall phpmyad­min

php-mb­string

php-get­text

Bij het eer­ste scherm se­lec­teer je apa­che2 door op de spa­tie­balk te druk­ken en bij de vraag naar db­con­fig- com­mon zeg je 'yes'. Daar­na moet je een wacht­woord in­vul­len om bij phpMyAd­min in te kun­nen log­gen. De mo­du­les mcrypt en mb­string moet je nog even ex­pli­ciet toe­staan om­dat phpMyAd­min die no­dig heeft en ze niet au­to­ma­tisch ge­ïn­stal­leerd wor­den. Daar­na moet je Apa­che her­star­ten:

su­do phpen­mod mcrypt su­do phpen­mod mb­string su­do sys­temctl restart apa­che2

Ver­vol­gens kun je in de brow­ser naar htt­ps://test. com/phpmyad­min en wordt je ge­vraagd in te log­gen. Ge­bruik daar­bij het wacht­woord dat je net hebt op­ge­ge­ven. Als ge­brui­kers­naam ge­bruik je root.

Door als root bij phpMyAd­min in te log­gen, ga je als een soort su­per-user de da­ta­ba­se be­he­ren. Dat is net als bij het be­heer van de web­ser­ver in de prak­tijk ab­so­luut niet wen­se­lijk, ze­ker niet om­dat die in­ter­fa­ce nog wel eens doel­wit van aan­val­lers is. Als het kwaad­wil­len­den lukt om de in­ter­fa­ce te hac­ken, heb­ben ze to­ta­le toe­gang tot al je da­ta­ba­ses. Dat voor­kom je door phpMyAd­min be­ter af te scher­men. Open het con­fi­gu­ra­tie­be­stand van php- MyAd­min met

su­do na­no /etc/apa­che2/conf-avai­la­ble/

phpmyad­min.conf

En voeg de re­gel met Al­lowO­ver­ri­de daar­aan toe om de stan­daard­in­stel­lin­gen la­ter te over­ru­len:

<Di­rec­to­ry /usr/sha­re/phpmyad­min> Op­ti­ons Fol­lowSymLinks Di­rec­to­ryIn­dex in­dex.php Al­lowO­ver­ri­de All

...

Her­start de Apa­che-ser­ver voor de nieu­we in­stel­lin­gen:

su­do sys­temctl restart apa­che2

Daar­na ga je er­voor zor­gen dat al­leen ex­pli­ciet op­ge­ge­ven ge­brui­kers bij phpMyAd­min mo­gen aan­mel­den. Daar maak je een .ht­ac­cess-be­stand in de phpMyAd­min-di­rec­to­ry voor aan

su­do na­no /usr/sha­re/phpmyad­min/

.ht­ac­cess

met daar­in de vol­gen­de con­tent:

AuthTy­pe Ba­sic

AuthNa­me "Re­stric­ted fi­les" AuthU­serFi­le /etc/phpmyad­min/.ht­passwd Re­qui­re va­lid-user

Sla het be­stand op en maak het ge­noem­de be­stand .ht­passwd aan met daar­in de toe­ge­sta­ne ge­brui­kers:

su­do apt-get in­stall apa­che2-utils su­do ht­passwd -c /etc/phpmyad­min/

.ht­passwd <ne­wus­er­na­me>

voor de eer­ste ge­brui­ker en voor ie­de­re vol­gen­de ge­brui­ker het twee­de com­man­do nog een keer, maar dan zon­der -c. Als je dan naar htt­ps://test.com/ phpmyad­min gaat, zul je eerst als een van die ge­brui­kers moe­ten in­log­gen om bij de in­ter­fa­ce te mo­gen.

Web­ser­ver klaar

Dan is de ba­sis­con­fi­gu­ra­tie van je web­ser­ver klaar en je web­si­te klaar voor ge­bruik. Als je met een con­tent­ma­na­ge­ment­sys­teem (CMS) aan de slag wilt, kun je met phpMyAd­min een da­ta­ba­se voor het be­tref­fen­de CMS-pak­ket (bij­voor­beeld Wor­dPress, Jooma of Dru­pal) aan­ma­ken en de ge­ge­vens daar­van bij het in­stal­le­ren van dat pak­ket op­ge­ven. In prin­ci­pe heb je nu een vei­li­ge web­ser­ver met al­le ba­sis­func­ties – maar ook de mo­ge­lijk­heid die func­ti­o­na­li­teit uit te brei­den waar, hoe en wan­neer je dat zelf wilt. (nkr)

Op de­ze ma­nier zorg je er­voor dat je web­si­te ook met de toe­voe­ging www. be­reik­baar is.

Bij www.ssl­labs.com test je of de si­te het da­ta­ver­keer goed ver­sleu­teld aan­le­vert en de ge­ge­vens be­schermd zijn te­gen mee­kij­kers.

Als PHP op de web­ser­ver ge­ïn­stal­leerd is, le­vert een aan­roep van het PHP-test­be­stand in de brow­ser dit beeld op.

Als de Apa­che-web­ser­ver draait, is dit het stan­daard­scherm dat je dan in een brow­ser te zien krijgt.

Met het com­man­do su­do sys­temctl sta­tus apa­che2 krijg je in­for­ma­tie over de sta­tus van de web­ser­ver.

De phpMyAd­min-be­heer­in­ter­fa­ce van de da­ta­ba­se is al­leen toe­gan­ke­lijk voor de root-user en aan­ge­maak­te ge­brui­kers.

Als al­les goed ge­gaan is, is je web­si­te van bui­ten­af toe­gan­ke­lijk – com­pleet met groen slot­je voor SSL.

Newspapers in Dutch

Newspapers from Netherlands

© PressReader. All rights reserved.