Professional Documents
Culture Documents
Apache Unix
Apache Unix
29
!"v"er Hoarau #o!"v"er.hoarau$%un"&.or'( )3.4* 1 +arsr 2,13 1H"stor"-ue................................................................................................................................................................3 2Pr.a+bu!e................................................................................................................................................................4 3Pr.sentat"on.............................................................................................................................................................4 4/nsta!!at"on...............................................................................................................................................................4 4.1/nsta!!at"on 0e MySQL....................................................................................................................................4 4.1.11o+p"!at"on et "nsta!!at"on.......................................................................................................................4 4.1.2Lance+ent auto+at"-ue...........................................................................................................................2 4.1.3M"se en p!ace 0es ut"!"sateurs..................................................................................................................3 4.1.41r.at"on 0e tab!es..................................................................................................................................1, 4.1.5Perte 0u +ot 0e passe 04a0+"n"strateur +ys-!0.....................................................................................12 4.2/nsta!!at"on 04Apache.....................................................................................................................................12 4.3/nsta!!at"on 0e PHP........................................................................................................................................14 51on%"'urat"on bas"-ue...........................................................................................................................................15 5.1Pr.sentat"on 0e !4arborescence 04Apache.......................................................................................................15 5.2Le %"ch"er 0e con%"'urat"on 04Apache............................................................................................................12 5.3 Lance+ent auto+at"-ue 0e !4app!"cat"on......................................................................................................13 5.3.1Sous Man0r"va6Ma'e"a..........................................................................................................................13 5.3.2Sous ubuntu...........................................................................................................................................19 5.4Les pa'es webs ut"!"sateurs...........................................................................................................................21 5.5Les a!"as.........................................................................................................................................................21 51on%"'urat"on avanc.e..........................................................................................................................................21 5.1Protect"on 04une pa'e....................................................................................................................................21 5.2Les h7tes v"rtue!s...........................................................................................................................................23 28est"on 0e bases 0e 0onn.es avec MySQL...........................................................................................................24 2.19ests 0e %onct"onne+ent avec MySQL.........................................................................................................24 2.2A0+"n"strat"on 0es bases MySQL avec phpMyA0+"n.................................................................................25 3Scr"pts 18/............................................................................................................................................................23 9PHP et L:AP........................................................................................................................................................29 1, S.cur"ser Apache et PHP 0ans un env"ronne+ent chroot.................................................................................3, 1,.1Pr.sentat"on.................................................................................................................................................3, 1,.2/nsta!!at"on 0e MySQL................................................................................................................................3, 1,.2.1/nsta!!at"on 0e MySQL avec !es sources.............................................................................................3, 1,.2.21hrooter MySQL.................................................................................................................................31 1,.2.31on%"'urat"on 0e MySQL....................................................................................................................33 1,.3/nsta!!at"on 04Apache...................................................................................................................................35 1,.3.1/nsta!!at"on 04Apache...........................................................................................................................35 1,.41hrooter Apache.........................................................................................................................................35 1,.4.11on%"'urat"on 04Apache.......................................................................................................................39 1,.5/nsta!!at"on 0e PHP......................................................................................................................................41 1,.5.1/nsta!!at"on avec !es sources 0e PHP...................................................................................................41 1,.5.21hrooter PHP.......................................................................................................................................42 1,.5.31on%"'urat"on 0e PHP..........................................................................................................................43
Apache+PHP+MySQL
http;66www.%un"&.or'
1,.5Lance+ent auto+at"-ue..............................................................................................................................44 1,.5.1Lance+ent auto+at"-ue 0e Mys-!......................................................................................................44 1,.5.2Lance+ent auto+at"-ue 04Apache.......................................................................................................45 1,.2/nsta!!at"on 04un b!o' wor0press en !oca!....................................................................................................45 11 Ana!yser !es !o's 0<Apache................................................................................................................................42 11.1 Pr.sentat"on................................................................................................................................................42 11.2 Ana!yser !es !o's 04Apache avec weba!"=er................................................................................................42 11.2.1Pr.sentat"on.........................................................................................................................................42 11.2.2/nsta!!at"on...........................................................................................................................................43 11.2.31on%"'urat"on.......................................................................................................................................49 11.2.4>t"!"sat"on............................................................................................................................................5, 11.3Ana!yser !es !o's 04Apache avec awstats....................................................................................................52 11.3.1Pr.sentat"on.........................................................................................................................................52 11.3.2/nsta!!at"on et con%"'urat"on.................................................................................................................52 11.3.3>t"!"sat"on............................................................................................................................................52 11.4Ana!yse= !es !o's 04un s"te h.ber'. non !oca!e+ent...................................................................................55 12/nsta!!er un +oteur 0e recherche avec Ht;660"'...................................................................................................53 12.1Pr.sentat"on.................................................................................................................................................53 12.2/nsta!!at"on avec tarba!!...............................................................................................................................53 12.31on%"'urat"on..............................................................................................................................................53 12.4>t"!"sat"on....................................................................................................................................................21
Apache+PHP+MySQL
http;66www.%un"&.or'
1 Historique
226,2613 )3.4 passa'e ? Apache 2.4.3* php 5.4.11* phpMyA0+"n 3.5.2 et MySQL 5.5.29 et ra@out 04un para'raphe sur !a perte 0u +ot 0e passe a0+"n"strateur 0e +ys-!0 ,361,61, )3.1 passa'e ? Apache 2.2.15* php 5.3.3* MySQL 5.1.5,* ra@out 04un para'raphe sur !a +"se en p!ace 04un serveur web 0ans un env"ronne+ent chroot. passa'e ? MySQL 5.1.5,* Apache 2.2.15* PHP 5.3.3* phpMyA0+"n 3.3.2 et weba!"=er 2.21A,2 256126,9 5.95 36116,3 )2.9 ,36,36,2 2.1,.,.2 )3., passa'e ? Apache 2.2.14* php 5.3.1* MySQL 5.1.41* phpMyA0+"n 3.2.4 et awstats
Passa'e ? Apache 2.2.9* php 5.2.5* MySQL 5.,.52 et phpMyA0+"n 2.11.3.1 )2.3 Passa'e ? php 5.2.1* Apache 2.2.4* MySQL 5.,.33* awstats 5.5 et phpMyA0+"n
,26116,5 )2.2 passa'e ? apache 1.3.32* php 5.1.5* MySQL 5.,.22 et phpMyA0+"n 2.9.,.2 et apache 2.2.3 a0aptat"on pour "nsta!!at"on sur #B(ubuntu 5.1, ,56,36,5 )2.5 passa'e ? PHP 5.,.4* MySQL 5.,.22* phpMyA0+"n 2.5.3Ap!1* awstat 5.4 et apache 2.,.54 ra@out 04un +ot pour !e !ance+ent auto+at"-ue 04Apache 2* correct"on co+p"!at"on weba!"=er 236,16,5 )2.5 ana!yser !es !o's 04Apache* +o0"%"cat"on 0e !a con%"'urat"on 0e weba!"=er et awstats pour ne pas pren0re en co+pte ses propres accCs* ra@out 04un co++enta"re sur un +essa'e 0e weba!"=er* ra@out 04un para'raphe pour vo"r !es stats 04un s"te h.ber'. non !oca!e+ent avec weba!"=er et awstats ,26,16,5 )2.4 passa'e ? apache 1.33* PHP 5.,.3* MySQL 4.1.3a* phpMyA0+"n 2.5.,Ap!3* awstats 5.2* 'rosse +o0"%"cat"on au n"veau 0e !a con%"'urat"on et 0e !a +.tho0e 04ut"!"sat"on et +o0"%"cat"on 0e !a con%"'urat"on 0e weba!"=er pour -u4on pu"sse vo"r !es no+s 0es +ach"nes p!ut7t -ue !eur a0resse /P ,261,6,4 316,56,4 )2.3 )2.2 passa'e ? apache 2.,.52* PHP 5.,.2* phpMyA0+"n 2.5., p!1 et MySQL 4.,.21 passa'e ? apache 1.3.31 et MySQL 4.,.2, un +ot sur !a var"ab!e re'"sterD'!oba!s* passa'e ? http 2.,.49* php 4.3.5 et
2,6,26,4 )2., Passa'e ? Apache 1.3.29* Apache 2.,.43* MySQL 4.,.13* PHP 4.3.4* phpMyA0+"n 2.5.5Ap!1* ra@out 04un para'raphe sur !a s.cur"sat"on 04Apache et PHP* un +ot sur !4ut"!"sat"on s"+u!tan.e 04Apache 1.3 et 2. ,56,46,3 ,16,36,3 5.4 246126,2 awstats 5.2 )1.9 )1.3 )1.2 Passa'e ? MySQL 4.,.12 Passa'e ? Apache 2.,.44* MySQL 3.23.55* PHP 4.3.1* phpMyA0+"n 2.4., et awstats Pet"tes +o0"%s 0ans !e %"ch"er 0e con% 04Apache su"te passa'e M0B 9.,* passa'e ?
1361,6,2 )1.5 Passa'e ? Apache 1.3.22* Apache 2.,.43* PHP 4.2.3* MySQL 3.23.52* phpMyA0+"n 2.3.2* awstats 5., et Ht:"' 3.1.5 ,26,26,2 )1.5 Passa'e ? Apache 1.3.25* PHP 4.2.1* MySQL 3.23.51* phpMyA0+"n 2.2.5* Eeba!"=er 2.,1A1,* awstats 4.1* ra@out 0<un para'raphe sur !<"nsta!!at"on 0<un +oteur 0e recherche avec Ht;660"' et sur !<"nsta!!at"on 0<Apache 2.,.35 226,56,1 )1.4 Passa'e ? Apache 1.3.2,* PHP 4.,.5 et MySQL 3.23.33
Apache+PHP+MySQL
http;66www.%un"&.or'
Passa'e ? PHP4.,.4p!1* Apache 1.3.19* MySQL 3.23.33* 8: 1.3.4 et Fa@out 0u para'raphe PHP et L:AP* +"se ? @our 0e weba!"=er Passa'e ? Apache 1.3.14* PHP 4.,.3p!1 et phpMyA0+"n 2.1., 1r.at"on 0u 0ocu+ent
2 Prambule
1e 0ocu+ent pr.sente !<"nsta!!at"on* !a con%"'urat"on et !<ut"!"sat"on 0<Apache 2* MySQL et PHP sous L"nu&. La 0ern"Cre vers"on 0e ce 0ocu+ent est t.!.char'eab!e ? !<>FL http;66www.%un"&.or'. 1e 0ocu+ent est sous !"cence 1reat"ve 1o++ons Attr"but"onAShareA!"Be 3., >nporte0* !e 0.ta"! 0e !a !"cence se trouve sur !e s"te http;66creat"veco++ons.or'6!"censes6byAsa63.,6!e'a!co0e. Pour r.su+er* vous Gtes !"bres 0e repro0u"re* 0"str"buer et co++un"-uer cette cr.at"on au pub!"c 0e +o0"%"er cette cr.at"on su"vant !es con0"t"ons su"vantes; Paternit H )ous 0eve= c"ter !e no+ 0e !4auteur or"'"na! 0e !a +an"Cre "n0"-u.e par !4auteur 0e !<Iuvre ou !e t"tu!a"re 0es 0ro"ts -u" vous con%Cre cette autor"sat"on #+a"s pas 04une +an"Cre -u" su''.rera"t -u4"!s vous sout"ennent ou approuvent votre ut"!"sat"on 0e !4oeuvre(. Partage des Conditions Initiales l'Identique H S" vous trans%or+e= ou +o0"%"e= cette Iuvre pour en cr.er une nouve!!e* vous 0eve= !a 0"str"buer se!on !es ter+es 0u +G+e contrat ou avec une !"cence s"+"!a"re ou co+pat"b!e. Par a"!!eurs ce 0ocu+ent ne peut pas Gtre ut"!"s. 0ans un but co++erc"a! sans !e consente+ent 0e son auteur. 1e 0ocu+ent vous est %ourn" J0ans !4.tatJ sans aucune 'arant"e 0e toute sorte* !4auteur ne saura"t Gtre tenu responsab!e 0es -ue!con-ues +"sCres -u" pourra"ent vous arr"ver !ors 0es +an"pu!at"ons 0.cr"tes 0ans ce 0ocu+ent.
3 Prsentation
1ette pa'e pr.sente !4"nsta!!at"on et !a con%"'urat"on 04 Apache 2. .3 avec 'est"on 0e PHP !. .11 et "#$%& !.!.2'* e!!e est bas.e sur !a co+p"!at"on co+p!Cte 0e ces app!"cat"ons par cons.-uent e!!e 0evra"t conven"r pour toutes !es 0"str"but"ons 0e !"nu&. )ous 0eve= r.cup.rer pr.a!ab!e+ent !es sources 04 Apache ? !4>FL www.apache.or' * on r.cupCre ensu"te PHP ? !4>FL www.php.net* et en%"n "#$%& * ? !4>FL www.+ys-!.co+. Pour !4ana!yser 0es !o's 04Apache* reporte= vous au para'raphe correspon0ant. Pour +ettre en p!ace un +oteur 0e recherche* reporte= vous au para'raphe correspon0ant. Pour +ettre en p!ace un serveur web s.cur"s. 0ans un env"ronne+ent chroot.* reporte= vous au para'raphe correspon0ant.
Installation
.1 Installation de "#$%&
.1.1 Compilation et installation
:ans !e r.perto"re 0e trava"!* on 0.co+presse !4arch"ve; tar ()*+ m#sql,!.!.2'.tar.g+ 1e!a cr.e !e r.perto"re m#sql,!.!.2'* sur +a Man0r"va @4a" 0u "nsta!!er !e pacBa'e libncurses,de)el
Apache+PHP+MySQL
http;66www.%un"&.or'
Sous ubuntu ce n4est pas n.cessa"re. :ans !e r.perto"re 0e "#$%&* on tape a!ors; cma-e . Pu"s ma-e La co+p"!at"on est re!at"ve+ent !on'ue +G+e sur une +ach"ne pu"ssante. n tape +a"ntenant en te+ps -ue root; ma-e install Les e&.cutab!es sont "nsta!!.s par 0.%aut sous .usr.local.bin et !e serveur m#sqld sous .usr.local.libe(ec. Les b"b!"othC-ues vont se trouver sous .usr.local.m#sql.lib* ra@oute= cette !"'ne 0ans !e %"ch"er .etc.ld.so.con* et tape= ldcon*ig S" c4est !a pre+"Cre %o"s -ue vous "nsta!!e= "#$%& vous 0eve= taper !a co++an0e su"vante* vous pouve= passer ? !4.tape su"vante s" vous up'ra0e= "#$%& ; sh ..m#sql,!.!.2'.scripts.m#sql/install/db ,,datadir0.usr.local.m#sql.data 14a" 0u cr.er !e !"en su"vant pr.a!ab!e+ent ln ,s ha/*ederated.so ha/*ederated(.so )o"!? !e r.su!tat obtenu Installing "#$%& s#stem tables... 23 4illing help tables... 23 5o start m#sqld at boot time #ou ha)e to cop# support,*iles.m#sql.ser)er to the right place *or #our s#stem P&6A$6 76"6"867 52 $65 A PA$$927: 427 5H6 "#$%& root ;$67 < 5o do so= start the ser)er= then issue the *ollo>ing commands? .usr.local.m#sql.bin.m#sqladmin ,u root pass>ord 'ne>,pass>ord' .usr.local.m#sql.bin.m#sqladmin ,u root ,h tahiti.-er)ao.*r pass>ord 'ne>,pass>ord' Alternati)el# #ou can run? .usr.local.m#sql.bin.m#sql/secure/installation >hich >ill also gi)e #ou the option o* remo)ing the test databases and anon#mous user created b# de*ault. 5his is strongl# recommended *or production ser)ers. $ee the manual *or more instructions. @ou can start the "#$%& daemon >ith? cd .usr.local.m#sql A .usr.local.m#sql.bin.m#sqld/sa*e B @ou can test the "#$%& daemon >ith m#sql,test,run.pl ,,user0m#sql ,,basedir0.usr.local.m#sql
Apache+PHP+MySQL
http;66www.%un"&.or'
cd .usr.local.m#sql.m#sql,test A perl m#sql,test,run.pl Please report an# problems >ith the .usr.local.m#sql.scripts.m#sqlbug script< Pour "n%o !es bases sont "nsta!!.es par 0.%aut sous .)ar.lib.m#sql. S" ce n4est pas 0.@? %a"t cr.er !e 'roupe m#sql groupadd m#sql Pu"s !4ut"!"sateur m#sql 0u 'roupe m#sql useradd m#sql ,c C"#$%& $er)erC ,d .de).null ,g m#sql ,s .sbin.nologin Les bases se trouvent par 0.%aut sous .)ar.lib.m#sql* m#sql 0o"t en Gtre propr".ta"re cho>n ,7 m#sql .)ar.lib.m#sql "0e+ pour !e 'roupe chgrp ,7 m#sql .)ar.lib.m#sql on va .'a!e+ent +ettre !es 0ro"ts ? 255 s"non seu! root aura accCs ? !a base MySQL. chmod D!! .)ar.lib.m#sql n "nsta!!e +a"ntenant !e %"ch"er 0e con%"'urat"on cp support,*iles.m#,medium.cn* .etc.m#.cn* 0ans !e %"ch"er .etc.m#.cn* au n"veau 0e Em#sqldF on ra@outera !es !"'nes su"vantes G set basedir to #our installation path basedir0.usr.local.m#sql G set datadir to the location o* #our data director# datadir0.usr.local.m#sql.data. on 0onne !es 0ro"ts -u" vont b"en cho>n root?s#s .etc.m#.cn* chmod H .etc.m#.cn* Pu"s on !ance !e serveur en tapant; .usr.local.m#sql.bin.m#sqld/sa*e B 1e -u" va 0onner co++e r.su!tat 1II'2! 1J?!D?!1 m#sqld/sa*e &ogging to '.usr.local.m#sql.)ar.po>er.-er)ao.*r.err'. 1II'2! 1J?!D?!1 m#sqld/sa*e $tarting m#sqld daemon >ith databases *rom .)ar.lib.m#sql Avec cette 0ern"Cre vers"on m#sql re%usa"t 0e se !ancer* 0ans !e %"ch"er 04erreur #sous .)ar.lib.m#sql par 0.%aut( @4ava"s I 1II2 12?1J?13 m#sqld started .usr.local.libe(ec.m#sqld? Can't read dir o* '.root.tmp.' K6rrcode? 13L .usr.local.libe(ec.m#sqld? Can't create.>rite to *ile '.root.tmp.ibq%da;A' K6rrcode? 13L
Apache+PHP+MySQL
http;66www.%un"&.or'
I 1II2 12?1J?13 Inno:8? 6rror? unable to create temporar# *ileA errno? 13 I 1II2 12?1J?13 Can't init databases I 1II2 12?1J?13 Aborting @4a" r.so!u ce!a en tapant avant 0e !ancer m#sqld/sa*e e(port 5"P:I70.tmp S" vous obtene= !4erreur su"vante 0ans !e %"ch"er .usr.local.m#sql.data.nom-de-machine.err 13I2I2 12?!1?21 m#sqld/sa*e $tarting m#sqld daemon >ith databases *rom .usr.local.m#sql.data .usr.local.m#sql.bin.m#sqld? 4ile '..m#sql,bin.inde(' not *ound K6rrcode? 13L 13I2I2 12?!1?21 E67727F Aborting c4est un prob!C+e 0e per+"ss"on -u4on peut r.sou0re en tapant cho>n ,7 m#sql .usr.local.m#sql
Apache+PHP+MySQL
http;66www.%un"&.or'
Kt un arrGt ? !4.tat 0e +arche ,* 1* 2 et 5 ch-con*ig ,,le)el I12H m#sql o** Sous ubuntu n cop"e !e %"ch"er sous .etc.init.d et on !e no++e m#sql* on 0o"t 0ans ce %"ch"er %a"re une 0ern"Cre +o0"% ? !a p!ace 0e source on +et un . #un po"nt(. n 0onne !es 0ro"ts 04e&.cut"on ? ce %"ch"er chmod D!! .etc.init.d.m#sql Pour un !ance+ent auto+at"-ue on tape update,rc.d m#sql de*aults
Apache+PHP+MySQL
http;66www.%un"&.or'
access. 5his is also intended onl# *or testing= and should be remo)ed be*ore mo)ing into a production en)ironment. 7emo)e test database and access to itP E@.nF @ , :ropping test database... ... $uccess< , 7emo)ing pri)ileges on test database... ... $uccess< 7eloading the pri)ilege tables >ill ensure that all changes made so *ar >ill ta-e e**ect immediatel#. 7eload pri)ilege tables no>P E@.nF @ ... $uccess< Cleaning up...
All done< I* #ou')e completed all o* the abo)e steps= #our "#$%& installation should no> be secure. 5han-s *or using "#$%&< Le +ot 0e passe peut Gtre 0"%%.rent 0e ce!u" 0u !o'"n. Ma"ntenant on va cr.er un co+pte ut"!"sateur # oli)ier 0ans +on e&e+p!e(* pour ce!a on 0o"t se connecter en tant -u4a0+"n"strateur 0e !a base ? !a base 0e 0onn.e m#sql contenant !es "n%os sur !es ut"!"sateurs et !eurs 0ro"ts. .usr.local.m#sql.bin.m#sql ,u root ,p m#sql 6nter pass>ord? 9elcome to the "#$%& monitor. Commands end >ith A or Qg. @our "#$%& connection id is 1 $er)er )ersion? !.!.2' $ource distribution Cop#right KcL 2III= 2I12= 2racle and.or its a**iliates. All rights reser)ed. 2racle is a registered trademar- o* 2racle Corporation and.or its a**iliates. 2ther names ma# be trademar-s o* their respecti)e o>ners. 5#pe 'helpA' or 'Qh' *or help. 5#pe 'Qc' to clear the current input statement. m#sqlR A pr.sent on va entrer !4ut"!"sateur oli)ier -u" sera un super ut"!"sateur avec !es +G+es 0ro"ts -ue root; m#sqlR N7AM5 A&& P7IOI&6N6$ 2M S.S 52 'oli)ier'T'localhost' R I:6M5I4I6: 8@ 'mot,de,passe' 9I5H N7AM5 2P5I2MA pour cr.er un ut"!"sateur toto -u" n4aura accCs -u4? !a base test avec certa"nes %onct"ons c"t.es c"A0essous ? part"r 0e !a +ach"ne aster"&.%r on tapera m#sqlR N7AM5 $6&6C5=IM$675=;P:A56=:6&656=C76A56=:72P 2M test.S 52 totoTasteri(.*r I:6M5I4I6: b# 'mot,de,passe'A
Apache+PHP+MySQL
http;66www.%un"&.or'
s" vous tape= m#sqlR $6&6C5 S 472" userA vous voye= chacun 0es 0ro"ts attr"bu.s ? vos ut"!"sateurs* vous ave= !a poss"b"!"t. .'a!e+ent 0e pr.c"ser !es 0ro"ts en %onct"on 0e ces co!onnes avec cette co++an0e m#sqlR IM$675 IM52 user ,R OA&;6$K'localhost'='oli)ier'=PA$$927:K'mot,de,passe'L= ,R '@'='@'='@'='@'='@'='@'=' #...( @'='@'='@'='@'='@'='@'='@'= @'='@'='@'='@'='@'=' '=' '=' '=' '='I'='I'='I'='I'LA %uer# 23= 1 ro> a**ected KI.II secL Le no+bre 0e cha+p var"e en %onct"on 0e !a vers"on 0e m#sql. M256 /! n4est pas ob!"'ato"re 0e rentrer !e !o'"n pour !e no+ 04ut"!"sateur et !e +ot 0e passe 0e !o'"n. Ma"ntenant pour pren0re tout La en co+pte m#sqlR 4&;$H P7IOI&6N6$A %uer# 23= I ro>s a**ected KI.IJ secL Pour -u"tter m#sqlRquit
.1.
Cration de tables
Ma"ntenant notre ut"!"sateur o!"v"er va cr.er une tab!e -u" nous serv"ra p!us tar0 pour nos e&p.r"+entat"ons avec Apache. /! 0o"t 04abor0 se connecter; .usr.local.m#sql.bin.m#sql ,u oli)ier ,p 6nter pass>ord? 9elcome to the "#$%& monitor. Commands end >ith A or Qg. @our "#$%& connection id is 2 $er)er )ersion? !.!.2' $ource distribution Cop#right KcL 2III= 2I12= 2racle and.or its a**iliates. All rights reser)ed. 2racle is a registered trademar- o* 2racle Corporation and.or its a**iliates. 2ther names ma# be trademar-s o* their respecti)e o>ners. 5#pe 'helpA' or 'Qh' *or help. 5#pe 'Qc' to clear the current input statement. m#sqlR Pour vo"r !a !"ste 0es bases 0e 0onn.es 0"spon"b!es* on tapera; m#sqlR $H29 :A5A8A$6$A U,,,,,,,,,,,,,,,,,,,,U V :atabase V U,,,,,,,,,,,,,,,,,,,,U V in*ormation/schema V V m#sql V V per*ormance/schema V V test V
Apache+PHP+MySQL
1,
http;66www.%un"&.or'
U,,,,,,,,,,,,,,,,,,,,U ro>s in set KI=II secL n va +a"ntenant cr.er une base 0e 0onn.es essai; m#sqlR C76A56 :A5A8A$6 essaiA %uer# 23= 1 ro> a**ected KI.II secL n va ut"!"ser +a"ntenant cette base 0e 0onn.e m#sqlR ;$6 essai :atabase changed 1o++e !a base v"ent 04Gtre cr.e* e!!e ne cont"ent aucune tab!e* pour s4en conva"ncre "! su%%"t 0e taper; m#sqlR $H29 5A8&6$A 6mpt# set KI.II secL Pour notre pre+"Cre e&e+p!e ApacheUPHPU"#$%&* on va cr.er !a tab!e su"vante; m#sqlR C76A56 5A8&6 coord K ,R nom OA7CHA7K2IL= ,R prenom OA7CHA7K2IL= ,R email OA7CHA7K3IL ,R LA %uer# 23= I ro>s a**ected KI.I3 secL Metons un coup 04oe"! +a"ntenant sur !es tab!es 0"spon"b!es; m#sqlR $H29 5A8&6$A U,,,,,,,,,,,,,,,,,,,,,U V 5ables in essai V U,,,,,,,,,,,,,,,,,,,,,U V coord V U,,,,,,,,,,,,,,,,,,,,,U 1 ro> in set KI.II secL La tab!e nouve!!e+ent cr..e apparaNt b"en. Pour avo"r !e 0.ta"! 0e cette tab!e* on tapera;
m#sqlR :6$C7I86 coordA U,,,,,,,,,,,U,,,,,,,,,,,,,,U,,,,,,,,U,,,,,,U,,,,,,,,,,,U,,,,,,U V 4ield V 5#pe V Mull V 3e# V :e*ault V6(tra V U,,,,,,,,,,,U,,,,,,,,,,,,,,U,,,,,,,,U,,,,,,U,,,,,,,,,,,U,,,,,,U V nom V )archarK2IL V @6$ V V M;&& V V V prenom V )archarK2IL V @6$ V V M;&& V V V email V )archarK3IL V @6$ V V M;&& V V U,,,,,,,,,,,U,,,,,,,,,,,,,,U,,,,,,,,U,,,,,,U,,,,,,,,,,,U,,,,,,U 3 ro>s in set KI.II secL Pour notre 0eu&"C+e e&e+p!e ApacheUPHPU"#$%&* on cr.era !a tab!e su"vante; m#sqlR C76A56 5A8&6 re* K ,R date OA7CHA7K2IL= ,R host OA7CHA7K2IL= ,R ip OA7CHA7K1!L= ,R os OA7CHA7K2IL=
Apache+PHP+MySQL
11
http;66www.%un"&.or'
,R page OA7CHA7K3IL ,R LA %uer# 23= I ro>s a**ected KI.I! secL K!!e cont"en0ra !es "n%or+at"ons sur !es v"s"teurs 0u s"te. A pr.sent pour -u"tter tape= s"+p!e+ent quit
.2 Installation d'Apache
Pour Apache* on 0.sarch"ve en tapant; tar ()*+ httpd,2. .3.tar.g+ 1e!a va cr.er !e r.perto"re httpd,2. .3. Avant 04a!!er p!us !o"n* s" Apache est 0.@? "nsta!!. sur votre systC+e on va !e suppr"+er* on va 04abor0 suppr"+er !es +o0u!es PHP* pour v.r"%"er ; rpm ,qa V grep ,i php S" vous obtene= par e&e+p!e
Apache+PHP+MySQL
12
http;66www.%un"&.or'
php,gd,)ersion php,ldap,)ersion mod/php,)ersion php,common,)ersion php,)ersion n suppr"+e en tapant rpm ,e nom,du,pac-age Ma"ntenant on va suppr"+er Apache* pour v.r"%"er s4"! est pr.sent ; rpm ,qa V grep ,i apache S" on obt"ent par e&e+p!e apache,)ersion apache,con*,)ersion apache,modules,)ersion apache,common,)ersion Suppr"+e= !es. /! est poss"b!e -ue pour 0es ra"sons 0e 0.pen0ances -ue vous aye= un re%us 0e 0.s"nsta!!at"on* ce n4est pas 'rave* !4"+portant est -ue !e pacBa'e apache,)ersion so"t au +o"ns suppr"+. pour -u4"! n4y a"t pas 0e con%!"t. Suppr"+e= .ventue!!e+ent !es r.perto"res su"vants .)ar.>>>* .)ar.log.httpd et .etc.httpd. /! %au0ra pr.a!ab!e+ent "nsta!!er !es out"!s apr et apr,util -u4on t.!.char'era sur !e s"te apr.apache.or'. n 0.co+presse !a pre+"Cre arch"ve en tapant tar ()*+ apr,1. .H.tar.g+ ce!a 0onne !e r.perto"re apr,1. .H 0ans !e-ue! on tape success"ve+ent ..con*igure ma-e pu"s en tant -ue root ma-e install on .0"te +a"ntenant !e %"ch"er .etc.ld.so.con* et on ra@oute !a !"'ne su"vante .usr.local.apr.lib on 0.co+presse !a 0eu&"C+e arch"ve en tapant tar ()*+ apr,util,1.!.1.tar.g+ ce!a 0onne !e r.perto"re apr,util,1.!.1 on y tape success"ve+ent ..con*igure ,,>ith,apr0/chemin-absolu/apr,1. .H ma-e pu"s en tant -ue root ma-e install ldcon*ig
Apache+PHP+MySQL
13
http;66www.%un"&.or'
:ans !e r.perto"re 04Apache httpd,2. .3* on tape a!ors; ..con*igure ,,pre*i(0.usr.local.apache2 ,,enable,modules0most Par pre*i( on "n0"-ue -ue !es r.perto"res 04Apache contenant entre autre !e %"ch"er 0e con% se trouveront sous .usr.local.apache2 c4est ut"!e 0ans !e cas oO vous vou!e= %a"re coe&"ster 0eu& vers"ons 04 Apache sur votre systC+e. n tape +a"ntenant; ma-e Kt en%"n en tant -ue root; ma-e install Fa@oute= !a !"'ne .usr.local.apache2.lib 0ans !e %"ch"er .etc.ld.so.con* pu"s tape= ldcon*ig Pour !ancer +a"ntenant Apache* "! %aut taper; .usr.local.apache2.bin.apachectl start Ma"ntenant votre nav"'ateur pr.%.r. 0ans !e cha+p >FL taper http?..localhost ou http?..nomdelamachine et !? !a pa'e 04accue"! 04Apache apparaNt #ou 0u +o"ns un /t EorBs PP(* pour "n%o ce!!eAc" se trouve sous .usr.local.apache2.htdocs. M256 S" vous up'ra0e= 04une anc"enne vers"on* vos %"ch"ers 0e con% ne seront pas .cras.s.
.3 Installation de PHP
Pour php!* on tapera 04abor0 tar ()*1 php,!. .11.tar.b+2 1e!a va cr.er un r.perto"re php,!. .11. A pr.sent 0ans !e r.perto"re 0e php* vous tapere= ..con*igure ,,>ith,ap(s20.usr.local.apache2.bin.ap(s ,,>ith,con*ig,*ile,path0.usr.local.apache2.con* ,,>ith,m#sql ,,enable,bcmath0#es ,,enable,debug0no ,,>ith,gd ,,>ith,+lib ,,>ith,-erberos ,,enable, mbstring ,,>ith,mcr#pt ,,enable,*tp Motes A )ous ave= beso"n 0u pacBa'e *le( contenant le( A !es opt"ons ,,>ith,gd ,,>ith,+lib ,,>ith,-erberos sont ut"!es pour !4ut"!"sat"on 0es +o0s %reep!ayer 0e !a %reebo& A !es opt"ons ,,enable,mbstring ,,>ith,mcr#pt sont n.cessa"res pour php"#Admin e!!es re-u"Crent !4"nsta!!at"on 0u pacBa'e libH mcr#pt,de) avec ses 0.pen0ances #ou libmcr#pt,de)el su"vant !a 0"str"but"on( 9ape= +a"ntenant ma-e Pu"s en tant -ue root ma-e install
Apache+PHP+MySQL
14
http;66www.%un"&.or'
1ette 0ern"Cre co++an0e va "nsta!!er !e +o0u!e PHP sous .usr.local.apache2.modules et +o0"%"er !e %"ch"er httpd.con* en ra@outant &oad"odule php!/module modules.libphp!.so
n +o0"%"era +a"ntenant +anue!!e+ent !e %"ch"er httpd.con* pour -u4Apache prenne en co+pte PHP* ? !a su"te 0es !"'nes Add5#pe application.(,compress .W Add5#pe application.(,g+ip .g+ .tg+ n ra@oute Add5#pe application.(,httpd,php .php .php3 .php .php! .phtml Add5#pe application.(,httpd,php,source .phps Par a"!!eurs ? !a !"'ne :irector#Inde( inde(.html n ra@outera :irector#Inde( inde(.html inde(.htm inde(.php inde(.php3 inde(.php inde(.php! A pr.sent on va cop"er !e %"ch"er php.ini,production se trouvant 0ans !e r.perto"re 0e PHP php,!. .11 pour !e +ettre sous .usr.local.apache2.con* et en !e reno++ant php.ini cp ..php,!. .11.php.ini,production .usr.local.apache2.con*.php.ini :ans !e cas 04une anc"enne "nsta!!at"on 0e php* vous ave= tout "nt.rGt ? repart"r 0u nouveau %"ch"er php,dist.ini %ourn" et 0e !e re+o0"%"er. :ans !e r.perto"re .usr.local.apache.htdocs on trouve !es %"ch"ers -u" seront access"b!es ? part"r 0e !a pa'e 04accue"! 0e votre serveur Apache. n re!ance Apache .usr.local.apache2.bin.apachectl restart 1r.er +a"ntenant !e %"ch"er in*ophp.php contenant XPphp phpin*oKLA PR Que vous p!acere= sous .usr.local.apache2.htdocs* 0ans !4>FL 0e votre nav"'ateur pr.%.r.* taper http?..localhost.in*ophp.php ou http?..nommachine.in*ophp.php et !? +a'"-ue 0evra"t s4a%%"cher 0es "n%o sur !a con%"'urat"on 0e PHP sur votre systC+e.
Apache+PHP+MySQL
15
http;66www.%un"&.or'
A99KQ9/ Q pour un %onct"onne+ent opt"+a! 0e m#sql avec php* "! %au0ra ra@outer pr.c"ser !a pos"t"on 0u %"ch"er socBet 0e m#sql 0ans !e %"ch"er php.ini m#sql.de*ault/soc-et 0 .)ar.lib.m#sql.m#sql.socs"non avec php"#Admin vous pourr"e= avo"r une erreur 0u sty!e G2II2 , &e ser)eur ne rpond pas. Kou l'inter*ace de conne(ion KCsoc-etCL )ers le ser)eur "#$%& local n'est pas correctement con*igureL
! Con*iguration basique
!.1 Prsentation de l'arborescence d'Apache
L4"nsta!!at"on va cr.er un r.perto"re .usr.local.apache2 contenant; A r.perto"re bin cont"ent !es e&.cutab!es 04Apache A r.perto"re cgi,bin cont"ent !es scr"pts 18/ A r.perto"re error cont"ent !es +essa'es 04erreur 0ans 0e +u!t"p!es !an'ues* !a !an'ue est cho"s"e en %onct"on 0e !a con%"'urat"on 0u nav"'ateur. Les +essa'es sont ent"Cre+ent con%"'urab!es. A r.perto"re lib cont"ent 0es b"b!"othC-ues A r.perto"re build A r.perto"re con* cont"ent !es %"ch"ers 0e con%"'urat"on 04Apache , r.perto"re htdocs cont"ent !a pa'e 04accue"! 04Apache , r.perto"re icons cont"ent 0es "c7nes -u" servent nota++ent pour "0ent"%"er !es types 0e %"ch"er.
Apache+PHP+MySQL
15
http;66www.%un"&.or'
, r.perto"re include cont"ent !es "nc!u0es 04Apache , r.perto"re modules cont"ent !es +o0u!es 04Apache , r.perto"re logs cont"ent !es %"ch"ers 0e !o' 04Apache , r.perto"re man cont"ent !es +ans 04Apache Le r.perto"re 0e !o' cont"ent essent"e!!e+ent 0eu& %"ch"ers; A access/log !"stant !es accCs au serveur A error/log !"stant !es erreurs en tout 'enre Le r.perto"re 0e +o0u!es modules cont"ent !es +o0u!es ut"!"sab!es par Apache* pour "n%o un +o0u!e est une e&tens"on !o'"c"e!!e ? Apache* !u" per+ettant par e&e+p!e 04"nterpr.ter !e PHP #+o0u!e libphp!.so(. 1e ne sont -ue !es +o0u!es char'.s 0yna+"-ue+ent -u" sont 0ans ce r.perto"re. Le r.perto"re .usr.local.apache2.con* cont"ent; A !e %"ch"er 0e con%"'urat"on 04Apache http.con* A mime.t#pes %"&e !e type 0e %"ch"er su"vant !4e&tens"on 0u 0"t %"ch"er #. docR+swor0* .psRpostscr"pt* ...(* La per+et au c!"ent -u" se connecte sur !e serveur* 0e savo"r co++ent "nterpr.ter !e %"ch"er su"vant son e&tens"on. A magic sert pour !e +o0u!e mod/mime/magic )ous trouvere= .'a!e+ent un tas 04autres %"ch"ers 0e con%"' %ourn"s co++e e&e+p!e 0ans !e r.perto"re con*.e(tra
Apache+PHP+MySQL
12
http;66www.%un"&.or'
G $er)erAdmin? @our address= >here problems >ith the ser)er should be G e,mailed. 5his address appears on some ser)er,generated pages= such G as error documents. G 6n cas de problYme un email sera en)o# au >ebmaster= mette+ donc G ici l'adresse email du >ebmaster $er)erAdmin oli)ierTasteri(.-er)ao.*r #...( G :ocument7oot? 5he director# out o* >hich #ou >ill ser)e #our G documents. 8# de*ault= all requests are ta-en *rom this director#= but G s#mbolic lin-s and aliases ma# be used to point to other locations. G C'est dans ce rpertoire qu'on )a trou)er la page d'accueil d'Apache :ocument7oot C.usr.local.apache.htdocsC #...( G :*inition des *ichiers d'entre :irector#Inde( inde(.html inde(.html.)ar inde(.htm inde(.php inde(.php inde(.php #...( G nom du *ichier d'erreur 6rror&og logs.error/log G ni)eau de log G &og&e)el? Control the number o* messages logged to the error/log. G Possible )alues include? debug= in*o= notice= >arn= error= crit= G alert= emerg. G &og&e)el >arn #...( G ordre de pr*rence des langues G &anguagePriorit# allo>s #ou to gi)e precedence to some languages G in case o* a tie during content negotiation. G G Zust list the languages in decreasing order o* pre*erence. 9e ha)e G more or less alphabeti+ed them here. @ou probabl# >ant to change this. G &anguagePriorit# *r en da nl et de el it 1a -r no pl pt pt,br lt+ ca es s) t>
Apache+PHP+MySQL
13
http;66www.%un"&.or'
G $tartup script *or the Apache 9eb $er)er G G ch-con*ig? 3 ! J! 1! G description? Apache is a 9orld 9ide 9eb ser)er. It is used to ser)e Q G H5"& *iles and CNI. G processname? httpd Pour un !ance+ent auto+at"-ue ? !4.tat 0e +arche 3*4 et 5 on 0o"t nor+a!e+ent taper; ch-con*ig ,,le)el 3 ! httpd2 on Kt pour un arrGt ? !4.tat 0e +arche ,* 1* 2 et 5 ch-con*ig ,,le)el I12H httpd2 o** Pour !ancer !e serveur* "! su%%"ra +a"ntenant 0e taper; .etc.rc.d.init.d.httpd2 start
Apache+PHP+MySQL
19
http;66www.%un"&.or'
*i ]
e(it 1
should/startKL \ i* E < ,( [:A6"2M FA then echo Capache is not e(ecutable= not startingC e(it I *i ] case C[1C in startL should/start test/con*ig echo ,n C$tarting >eb ser)er? [MA"6C [6MO [$$: ,,start ,,pid*ile [PI:4I&6 ,,e(ec [:A6"2M R .de).null AA stopL echo ,n C$topping >eb ser)er? [MA"6C start,stop,daemon ,,stop ,,pid*ile [PI:4I&6 ,,o-nodo rm ,r* .)ar.lib.apache.mod,band>idth.lin-.S AA reload V *orce,reloadL test/con*ig echo ,n C7eloading [MA"6 con*igurationC start,stop,daemon ,,stop ,,pid*ile [PI:4I&6 ,,signal ;$71 AA restartL test/con*ig echo ,n C7estarting [MA"6C i* < start,stop,daemon ,q ,,stop ,,pid*ile [PI:4I&6 ,,signal H;PA then [6MO [$$: ,,start ,,pid*ile [PI:4I&6 ,,e(ec [:A6"2M R .de).null *i AA SL echo C;sage? .etc.init.d.[MA"6 \startVstopVreloadV*orce,reloadVrestart]C e(it 1 AA esac i* E [P ,eq I FA then echo . e(it I else echo C *ailedC e(it 1 *i n 0onne !es 0ro"ts 04e&.cut"on chmod D!! .etc.init.d.httpd2 Pour !e !ancer auto+at"-ue au 0.+arra'e "! %au0ra taper update,rc.d httpd2 de*aults
Apache+PHP+MySQL
2,
http;66www.%un"&.or'
H Con*iguration a)ance
H.1 Protection d'une page
La protect"on 04une pa'e pour !4ut"!"sateur oli)ier se %a"t 0e +an"Cre trCs s"+p!e* tout 04abor0 0ans !e %"ch"er 0e con%"'urat"on 04apache on 0o"t avo"r !a !"'ne
Apache+PHP+MySQL
21
http;66www.%un"&.or'
"! %aut b"en .v"0e++ent re!ancer apache. 9ous !es %"ch"ers ? accCs !"+"t. 0o"vent Gtre concentr.s 0ans un +G+e r.perto"re .home.oli)ier.public/html.reser)e par e&e+p!e* "! su%%"t 0e cr.er 0ans ce!u"Ac" un %"ch"er -u4on 0evra no++er .htaccess contenant; Auth;ser4ile auth.oli)ier.users AuthNroup4ile auth.oli)ier.group AuthMame CAcces 7estreintC Auth5#pe 8asic require group autorise Le %"ch"er oli)ier.users va conten"r une !"ste 04ut"!"sateurs* "! va se trouver sous !e r.perto"re .usr.local.apache2.auth #.ventue!!e+ent ? cr.er(* pour "n%o vous pouve= chan'er !e che+"n .usr.local.apache2 en +o0"%"ant !a va!eur 0e !a var"ab!e $er)er7oot -u4on trouve 0ans !e %"ch"er httpd.con*. Le %"ch"er oli)ier.group correspon0 ? une !"ste 0es 'roupes 0e personnes* ces +G+es personnes ayant .t. 0.%"n" 0ans !e %"ch"er oli)ier.users. Le pr"nc"pe cons"ste ? cr.er un 'roupe 0e personnes autor"s.es et ? !eur attr"buer un +ot 0e passe ? chacune* seu! ce 'roupe pourra acc.0er ? !a sect"on r.serv.e. Pour cr.er ces %"ch"ers "! su%%"t* en tant -ue root* 04une part 0e cr.er !e r.perto"re .usr.local.apache2.auth* pu"s 0e taper; htpass>d ,c .usr.local.apache2.auth.oli)ier.users oli)ier Pour "n%o cet e&.cutab!e se trouve 0ans !e r.perto"re 04"nsta!!at"on 04apache pr.c"s.+ent sous httpd, 2. .3.support. L4opt"on ,c correspon0 ? !a cr.at"on 0u %"ch"er oli)ier.users. n va a!ors avo"r ? rentrer un +ot 0e passe pour !4ut"!"sateur oli)ier. Me> pass>ord? n con%"r+e 7e,t#pe ne> pass>ord? Adding pass>ord *or user oli)ier Pour cr.er un autre ut"!"sateur )eronique vous tapere= !a +G+e co++an0e sans !4opt"on 0e cr.at"on ; htpass>d .etc.httpd.auth.oli)ier.users )eronique 9ou@ours en tant -ue root* cr.er !e %"ch"er .usr.local.apache2.auth.oli)ier.group -u" cont"en0ra !a !"ste 0es personnes autor"s.es ? acc.0er au& pa'es r.serv.es ; autorise? oli)ier )eronique Ma"tenant -uan0 ? part"r 0e votre nav"'ateur pr.%.r. -uan0 vous a!!e= rentrer co++e >FL http?..obeli(.`oli)ier.reser)e* vous aure= une %enGtre popup -u" va s4ouvr"r vous 0e+an0ant 0e rentrer votre no+ 04ut"!"sateur et !e +ot 0e passe pr.a!ab!e+ent rentr.. Qote= -ue pour -ue -ue!-u4un ne pu"sse @etter un coup 04oe"! 0ans !es %"ch"ers .htaccess 0e vos ut"!"sateurs= !e %"ch"er httpd.con* 0o"t conten"r !a 0"rect"ve su"vante; X4iles ` C_Q.htCR 2rder allo>=den# :en# *rom all $atis*# All X.4ilesR
Apache+PHP+MySQL
22
http;66www.%un"&.or'
Apache+PHP+MySQL
23
http;66www.%un"&.or'
Fe!ance= !e :QS en tapant; .etc.rc.d.init.d.named restart Pour tester tape= 0ans un she!!; ping >>>.asteri(.brei+land.b+ Ma"ntenant 0ans !e cha+p >FL 0e votre nav"'ateur pr.%.r.; http?..>>>.asteri(.brei+land.b+ Kt !?* nor+a!e+ent vous 0evr"e= vo"r s4a%%"cher !a pa'e -ue vous ave= p!ac. sous .usr.local.asteri( :ans !4hypothCse oO vous ut"!"se= 0eu& serveurs Apache #vers"ons 1.3 et 2 par e&e+p!e(* vous pouve= sp.c"%"er !e port 3, pour Apache 1.3 et !e port 3,3, pour Apache 2 en %"&ant 0ans !e %"ch"er 0e con%"'urat"on &isten ? 3,3,. Au n"veau 0e !a 0.c!arat"on 0es h7tes v"rtue!s "! %au0ra +ettre -ue!-ue chose co++e La XOirtualHost 1'2.1HJ.13.11?JIJIR $er)erMame tosh.-er)ao.*r :ocument7oot .usr.local.apache2.htdocs 6rror&og logs.tosh,error/log 5rans*er&og logs.tosh,access/log X.OirtualHostR
Apache+PHP+MySQL
24
http;66www.%un"&.or'
Eoli)ierTobeli( oli)ierF[ m#sql ,u oli)ier ,p essai 6nter pass>ord? 9elcome to the "#$%& monitor. Commands end >ith A or Qg. @our "#$%& connection id is 1 $er)er )ersion? !.!.2' $ource distribution Cop#right KcL 2III= 2I12= 2racle and.or its a**iliates. All rights reser)ed. 2racle is a registered trademar- o* 2racle Corporation and.or its a**iliates. 2ther names ma# be trademar-s o* their respecti)e o>ners. 5#pe 'helpA' or 'Qh' *or help. 5#pe 'Qc' to clear the current input statement. m#sqlR $6&6C5 S 472" coordA U,,,,,U,,,,,,,U,,,,,,,,,,,,,,,,,,,,U V nom V prenom V email V U,,,,,U,,,,,,,U,,,,,,,,,,,,,,,,,,,,U V hoarau V oli)ier V oli)ier.hoarauT*nac.net V U,,,,,U,,,,,,,U,,,,,,,,,,,,,,,,,,,,U 1 ro> in set KI.II secL 14est bon La %onct"onne. Passons ? un e&e+p!e p!us po"ntu* on va entrer !es "n%or+at"ons concernant vos v"s"teurs 0ans une base "#$%& * cr.er !a tab!e te!!e -ue 0.cr"te 0ans !4e&e+p!e 2 0e !a pa'e "#$%&* cr.er +a"ntenant !e scr"pt PHP. XP [page0geten)KCH55P/7646767CLA [ip0geten)K C76"256/A::7CLA [host0gethostb#addrK[ipLA [d 0 dateKCd.m.@ H?i?sCLA [e(pl0geten)KCH55P/;$67/AN6M5CLA [ser)eur0ClocalhostCA [login0Coli)ierCA [pass0Cmot,de,passeCA [base0CessaiCA [table0Cre*CA [id0"@$%&/C2MM6C5K[ser)eur=[login=[passLA m#sql/select/dbK[baseLA [quer#0CIM$675 IM52 [table OA&;6$K'[d'='[host'='[ip'='[e(pl'='[page'LCA [result0m#sql/quer#K[quer#=[idLA echo C[d [hostK[ipL [e(pl [pageCA PR Qo++e= ce scr"pt bd2.php et p!ace= !e 0ans `.public/html . :ans votre nav"'ateur pr.%.r. tape= 0ans !e cha+p >FL http?..obeli(.`oli)ier.bd2.php
Apache+PHP+MySQL
25
http;66www.%un"&.or'
)ous 0evr"e= vo"r !a 0ate* !e no+ 0e votre +ach"ne avec son a0resse /P et 0es "n%os sur votre nav"'ateur. A pr.sent connectons nous ? !a base; oli)ierTobeli( oli)ierF[ m#sql ,u oli)ier ,p essai 6nter pass>ord? 9elcome to the "#$%& monitor. Commands end >ith A or Qg. @our "#$%& connection id is 1 $er)er )ersion? !.!.2' $ource distribution Cop#right KcL 2III= 2I12= 2racle and.or its a**iliates. All rights reser)ed. 2racle is a registered trademar- o* 2racle Corporation and.or its a**iliates. 2ther names ma# be trademar-s o* their respecti)e o>ners. 5#pe 'helpA' or 'Qh' *or help. 5#pe 'Qc' to clear the current input statement.
S et votre
m#sqlR $6&6C5 S 472" re*A U,,,,,,,,,,,,,,,U,,,,,,,,,,,,,,,U,,,,,,,,,,U,,,,,,,,,,,,,,,,,U,,,,,U V date V host V ip V os V page V U,,,,,,,,,,,,,,,U,,,,,,,,,,,,,,,U,,,,,,,,,,U,,,,,,,,,,,,,,,,,U,,,,,U V 2 .I .2III IJ?3 ?I! V asteri(.armoric.b+ V 1'2.1HJ.13.11 V "o+illa. .H1 EenF Kb V U,,,,,,,,,,,,,,,U,,,,,,,,,,,,,,,U,,,,,,,,,,U,,,,,,,,,,,,,,,,,U,,,,,U 1 ro> in set KI.II secL 14est bon !e v"s"teur a b"en .t. pr"s en co+pte.
Ma"ntenant -ue vous save= co++ent Apache %onct"onne avec "#$%& et PHP* !a"sse= !"bre cours ? votre "+a'"nat"on.
Apache+PHP+MySQL
25
http;66www.%un"&.or'
.S Authentication t#pe S. [c*gE'$er)ers'FE[iFE'auth/t#pe'F 0 'coo-ie'A .S $er)er parameters S. [c*gE'$er)ers'FE[iFE'host'F 0 'localhost'A [c*gE'$er)ers'FE[iFE'connect/t#pe'F 0 'tcp'A [c*gE'$er)ers'FE[iFE'compress'F 0 *alseA .S $elect m#sqli i* #our ser)er has it S. [c*gE'$er)ers'FE[iFE'e(tension'F 0 'm#sql'A [c*gE'$er)ers'FE[iFE'Allo>MoPass>ord'F 0 *alseA Ma"ntenant on 0o"t ren0re access"b!e !e r.perto"re php"#Admin 04une pa'e web* pour ce!a 0eu& so!ut"ons; A #so!ut"on s"+p!e( p!acer php"#Admin 0ans .usr.local.apache.htdocs et au n"veau 0e !a pa'e 04accue"! 04apache %a"re un !"en vers .usr.local.apache.htdocs.php"#Admin,3.!.D,all,languages.inde(.php A #so!ut"on pr.con"s.e(* cr.er un h7te v"rtue! po"ntant vers ..php"#Admin,3.!.D,all,languages -u4on appe!era >>>.sql.brei+land.b+ . M256 S" La vous 'Cne -ue n4"+porte -u" 04un nav"'ateur pu"sse a!!er 0ans !e r.perto"re php"#Admin* +ette= y 0es restr"ct"ons 04accCs avec un %"ch"er .htaccess. Avec !a so!ut"on h7te v"rtue!* ? part"r 04un nav"'ateur -uan0 on s.!ect"onne >>>.sql.brei+land.b+ on to+be 04abor0 sur une bann"Cre 0e !o'"n* ensu"te sur une %enGtre avec %ra+e avec ? 'auche !a !"ste 0es bases 0e 0onn.es 0"spon"b!es et ? 0ro"te* !e +enu su"vant;
Pour trava"!!er sur une base 0e 0onn.es part"cu!"Cres "! su%%"t 0e !a s.!ect"onner 0ans !e cho"& 0.rou!ant ? 'auche* on retrouve 04a"!!eurs notre base essai* pour en cr.er une autre "! su%%"t 0e cho"s"r 8ases de donnes pu"s Crer une base de donnes. S" on s.!ect"onne essai par e&e+p!e on obt"ent
Apache+PHP+MySQL
22
http;66www.%un"&.or'
)ous pouve= 0onc cr.er 0es nouve!!es tab!es* %a"re 0es re-uGtes $%&* etc. A noter -ue s" vous ave= une erreur 0e char'e+ent 0e php"#Admin 0u sty!e JKrreur !ors 0u char'e+ent 0e !a sess"onJ "! %au0ra .0"ter !e %"ch"er .usr.local.apache2.con*.php.ini et +o0"%"er !a !"'ne su"vante session.sa)e/path 0 C.tmpC vous +ette= !e r.perto"re te+pora"re -ue vous vou!e=
J $cripts CNI
Pour act"ver !es scr"pts 18/* !e %"ch"er httpd.con* est 0.@? con%"'ur. pour* on y trouve nota++ent !a !"'ne -u" "n0"-ue oO trouver !es scr"pts; $criptAlias .cgi,bin. .usr.local.apache2.cgi,bin. Le but 0e !4e&erc"ce est 0e cr.er un scr"pt per! 18/ -u" va tra"ter un %or+u!a"re -ue!con-ue 04une pa'e H9ML. )ous a!!e= cr.er votre scr"pt per! sous .usr.local.apache2.cgi,bin* et !e no++er *orm.pl* vo"c" son contenu; G<.usr.bin.perl use CNIA [html0ne> CNIA print [html,RheaderA print CXH5"&RQnCA print CXH6A:RQnCA print CX5I5&6RPremier script CNI perlX.5I5&6RQnCA print CX.H6A:RQnCA print CX82:@RQnCA print CXH1R5raitement du *ormulaireX.H1RQnCA print CMom ?CA print [html,RparamK'nom'LA print CXpRQnCA print C6mail ?CA print [html,RparamK'email'LA print CXpRQnCA print CCommentaire?CA print [html,RparamK'comment'LA print CX.82:@RQnCA print CX.H5"&RQnCA :onner !es 0ro"ts -u" vont b"en avec ce %"ch"er; chmod D!! *orm.pl Kn tant -u4ut"!"sateur stan0ar0 # oli)ier 0ans notre e&e+p!e(* cr.er +a"ntenant !e %"ch"er H9ML su"vant -ue vous appe!ere= *ormulaire.htm XhtmlR Xbod#R Xh2R4ormulaireX.h2R X*orm action0Chttp?..obeli(.cgi,bin.*orm.plC "65H2:0N65R Mom? Xinput t#pe0Cte(tC name0nom si+e02IRXbrR 6mail? Xinput t#pe0Cte(tC name0email si+e03IRXbrR Commentaire? Xinput t#pe0Cte(tC name0comment si+e01IIRXbrR Xinput t#pe0submit )alue0C6n)o#erCR Xinput t#pe0reset )alue0Cremettre +roCR X.*ormR
Apache+PHP+MySQL
23
http;66www.%un"&.or'
X.bod#R X.htmlR )o"!? +a"ntenant -uan0 vous a!!e= acc.0er ? http?..obeli(.`oli)ier.*ormulaire.htm * vous a!!e= avo"r une pa'e 0u sty!e;
Haut du formulaire
Kn appuyant sur 6n)o#er La va 0.c!encher !4e&.cut"on 0u scr"pt CNI per!* -u" va provo-uer !4a%%"cha'e 0es va!eurs pr.c.0e++ent sa"s"es.
Apache+PHP+MySQL
29
http;66www.%un"&.or'
ldap/addK[result=Ccn0[nom [prenom=[dnC=[in*oLA ldap/closeK[resultLA echo C&'enregistement a russiCA PR Appe!e= ce %"ch"er ldap.php3* vous pouve= !e tester et v.r"%"er -ue !4entr.e a b"en .t. sa"s"e 0ans !a base.
1I.2Installation de "#$%&
1I.2.1 Installation de "#$%& a)ec les sources
:ans !e r.perto"re 0e trava"!* on 0.co+presse !4arch"ve; tar ()*+ m#sql,!.!.2'.tar.g+ 1e!a cr.e !e r.perto"re m#sql,!.!.2'* sur +a Man0r"va @4a" 0u "nsta!!er !e pacBa'e libncurses,de)el. :ans !e r.perto"re 0e "#$%&* on tape a!ors; cma-e . ,:"@$%&/;MIb/A::70.chroot.m#sql.tmp.m#sql.soc,:C"A36/IM$5A&&/P764Ib0.usr.local.m#sql Pu"s ma-e La co+p"!at"on est re!at"ve+ent !on'ue +G+e sur une +ach"ne pu"ssante. n tape +a"ntenant en te+ps -ue root; ma-e install Les e&.cutab!es sont "nsta!!.s par 0.%aut sous .usr.local.bin et !e serveur m#sqld sous .usr.local.libe(ec. /nsta!!e= +a"ntenant !a base 0e 0onn.e en tapant ; ..m#sql,!.!.2'.scripts.m#sql/install/db )o"!? !e r.su!tat obtenu Installing "#$%& s#stem tables... 23 4illing help tables... 23 5o start m#sqld at boot time #ou ha)e to cop# support,*iles.m#sql.ser)er to the right place *or #our s#stem P&6A$6 76"6"867 52 $65 A PA$$927: 427 5H6 "#$%& root ;$67 <
Apache+PHP+MySQL
3,
http;66www.%un"&.or'
5o do so= start the ser)er= then issue the *ollo>ing commands? .usr.local.m#sql.bin.m#sqladmin ,u root pass>ord 'ne>,pass>ord' .usr.local.m#sql.bin.m#sqladmin ,u root ,h po>er.-er)ao.*r pass>ord 'ne>,pass>ord' Alternati)el# #ou can run? .usr.local.m#sql.bin.m#sql/secure/installationm-dir ,p .chroot.m#sql.usr.local.m#sql.data >hich >ill also gi)e #ou the option o* remo)ing the test databases and anon#mous user created b# de*ault. 5his is strongl# recommended *or production ser)ers. $ee the manual *or more instructions. @ou can start the "#$%& daemon >ith? cd .usr.local.m#sql A .usr.local.m#sql.bin.m#sqld/sa*e B @ou can test the "#$%& daemon >ith m#sql,test,run.pl cd .usr.local.m#sql.m#sql,test A perl m#sql,test,run.pl Please report an# problems >ith the .usr.local.m#sql.bin.m#sqlbug script< S" ce n4est pas 0.@? %a"t cr.er !e 'roupe m#sql groupadd m#sql Pu"s !4ut"!"sateur m#sql 0u 'roupe m#sql useradd m#sql ,c C"#$%& $er)erC ,d .de).null ,g m#sql ,s .sbin.nologin Les bases se trouvent par 0.%aut sous .usr.local.m#sql.data* m#sql 0o"t en Gtre propr".ta"re cho>n ,7 m#sql?m#sql .usr.local.m#sql.data n "nsta!!e +a"ntenant !e %"ch"er 0e con%"'urat"on cp support,*iles.m#,medium.cn* .etc.m#.cn* on 0onne !es 0ro"ts -u" vont b"en cho>n root?s#s .etc.m#.cn* chmod H .etc.m#.cn*
Apache+PHP+MySQL
31
http;66www.%un"&.or'
m-dir ,p .chroot.m#sql.usr.local.m#sql.share.*rench on cop"e ensu"te !es %"ch"ers n.cessa"res au %onct"onne+ent 0u serveur m#sqld cp .usr.local.m#sql.bin.m#sqld .chroot.m#sql.usr.local.m#sql.bin cp .usr.local.m#sql.share.english.errmsg.s#s .chroot.m#sql.usr.local.m#sql.share.english. cp .usr.local.m#sql.share.*rench.errmsg.s#s .chroot.m#sql.usr.local.m#sql.share.*rench. cp ,7* .usr.local.m#sql.share.charsets .chroot.m#sql.usr.local.m#sql.share cp .etc.hosts .chroot.m#sql.etc. cp .etc.host.con* .chroot.m#sql.etc. cp .etc.resol).con* .chroot.m#sql.etc. cp .etc.group .chroot.m#sql.etc. cp .etc.pass>d .chroot.m#sql.etc. cp .etc.m#.cn* .chroot.m#sql.etc. 0ans !es %"ch"ers .chroot.m#sql.etc.pass>d et .chroot.m#sql.etc.group on ve"!!era ? !a"sser seu!e+ent !4ut"!"sateur et !e 'roup m#sql +a"ntenant on v.r"%"e !a 0.pen0ance 0u 0ae+on m#sqld en tapant ldd .usr.local.m#sql.bin.m#sqld vo"!? !e r.su!tat linu(,)dso.so.1 0R KI(IIIID***2a*cIIIIL libpthread.so.I 0R .libH .libpthread.so.I KI(IIIID*edeJ2!eIIIL lib+.so.1 0R .usr.libH .lib+.so.1 KI(IIIID*edeJI 'IIIL librt.so.1 0R .libH .librt.so.1 KI(IIIID*edeDe 1IIIL libcr#pt.so.1 0R .libH .libcr#pt.so.1 KI(IIIID*edeDb*3IIIL libdl.so.2 0R .libH .libdl.so.2 KI(IIIID*edeD'e*IIIL libstdcUU.so.H 0R .usr.libH .libstdcUU.so.H KI(IIIID*edeDHe2IIIL libm.so.H 0R .libH .libm.so.H KI(IIIID*edeD HIIIIL libgcc/s.so.1 0R .libH .libgcc/s.so.1 KI(IIIID*edeD2 aIIIL libc.so.H 0R .libH .libc.so.H KI(IIIID*edeHedeIIIL .libH .ld,linu(,(JH,H .so.2 KI(IIIID*edeJ DaIIIL on cop"e !es b"b!"othC-ues n.cessa"res 0ans !4env"ronne+ent chroot. cp .libH .libpthread.so.I .chroot.m#sql.libH cp .libH .libcr#pt.so.1 .chroot.m#sql.libH cp .libH .libnsl.so.1 .chroot.m#sql.libH cp .libH .libm.so.H .chroot.m#sql.libH cp .libH .libgcc/s.so.1 .chroot.m#sql.libH cp .libH .libc.so.H .chroot.m#sql.libH cp .libH .ld,linu(,(JH,H .so.2 .chroot.m#sql.libH cp .usr.libH .lib+.so.1 .chroot.m#sql.usr.libH cp .usr.libH .libstdcUU.so.H .chroot.m#sql.usr.libH cp .libH .librt.so.1 .chroot.m#sql.libH cp .libH .libdl.so.2 .chroot.m#sql.libH "! %au0ra .'a!e+ent cop"er !es 0eu& b"b!"othC-ues su"vantes cp .libH .libnss/*iles.so.2 .chroot.httpd.libH cp .libH .libnss/mdns /minimal.so.2 .chroot.httpd.libH +a"ntenant on +o0"%"e !es 0ro"ts 0u r.perto"re .chroot.m#sql et ce!u" 0u r.perto"re te+pora"re cho>n ,7 root?s#s .chroot.m#sql chmod ,7 D!! .chroot.m#sql chmod 1DDD .chroot.m#sql.tmp
Apache+PHP+MySQL
32
http;66www.%un"&.or'
on cr.e un %"ch"er poube!!e .de).null 0ans !4env"ronne+ent chroot m-nod .chroot.m#sql.de).null c 2 2 cho>n root?s#s .chroot.m#sql.de).null chmod HHH .chroot.m#sql.de).null on cop"e ensu"te !a base et on +et m#sql propr".ta"re cp ,7 .usr.local.m#sql.data. .chroot.m#sql.usr.local.m#sql.data cho>n ,7 m#sql?m#sql .chroot.m#sql.usr.local.m#sql.data Pour ter+"ner on "nsta!!e !e pacBa'e su"vant urpmi chrootuid
Apache+PHP+MySQL
33
http;66www.%un"&.or'
m#sql
en tapant ll .proc.21 '!.root on vo"t b"en un !"en vers .chroot.m#sql S" vous 0"spose= 0.@? 04une base s-! ? up'ra0er "! %au0ra taper ..m#sql/upgrade ,p S"non* on part 0e =.ro* "! %aut +o0"%"er !e +ot 0e passe 04a0+"n"strateur 0e !a base en tapant .usr.local.m#sql.bin.m#sql ,u root vo"!? !e r.su!tat 9elcome to the "#$%& monitor. Commands end >ith A or Qg. @our "#$%& connection id is 1 $er)er )ersion? !.!.2',log $ource distribution Cop#right KcL 2III= 2I12= 2racle and.or its a**iliates. All rights reser)ed. 2racle is a registered trademar- o* 2racle Corporation and.or its a**iliates. 2ther names ma# be trademar-s o* their respecti)e o>ners. 5#pe 'helpA' or 'Qh' *or help. 5#pe 'Qc' to clear the current input statement. m#sqlR$65 PA$$927: 427 rootTlocalhost0PA$$927:K'ne>pass>ord'LA %uer# 23= I ro>s a**ected KI=II secL on suppr"+e !a base 0e test m#sqlR drop database testA %uer# 23= I ro>s a**ected KI=II secL on %a"t !e +.na'e 0ans !a base +ys-! en suppr"+ant !es ut"!"sateurs "nut"!es m#sqlR use m#sqlA :atabase changed m#sqlR delete *rom dbA %uer# 23= 2 ro>s a**ected KI=II secL m#sqlR delete *rom user >here notKhost0ClocalhostC and user0CrootCLA %uer# 23= ro>s a**ected KI=II secL m#sqlR *lush pri)ilegesA %uer# 23= I ro>s a**ected KI=II secL on chan'e !e no+ 0e !4a0+"n"strateur+ys-!0.p"0 m#sqlR update user set user0Cadminm#sqlC >here user0CrootCA %uer# 23= 1 ro> a**ected KI=II secL 7o>s matched? 1 Changed? 1 9arnings? I m#sqlR *lush pri)ilegesA %uer# 23= I ro>s a**ected KI=II secL
Apache+PHP+MySQL
34
http;66www.%un"&.or'
on peut -u"tter !a base m#sqlRquit pour ter+"ner on suppr"+e toutes traces 0e nos +an"ps cat .de).null R `..m#sql/histor#
1I.3Installation d'Apache
1I.3.1 Installation d'Apache
n co++ence en cr.ant un ut"!"sateur et un 'roupe apache en tapant groupadd apache useradd apache ,c CApache $er)erC ,d .de).null ,g apache ,s .sbin.nologin Pour Apache* on 0.sarch"ve en tapant; tar ()*+ httpd,2. .3.tar.g+ 1e!a va cr.er !e r.perto"re httpd,2. .3. /! %au0ra pr.a!ab!e+ent "nsta!!er !es out"!s apr et apr,util -u4on t.!.char'era sur !e s"te apr.apache.or'. n 0.co+presse !a pre+"Cre arch"ve en tapant tar ()*+ apr,1. .H.tar.g+ ce!a 0onne !e r.perto"re apr,1. .H 0ans !e-ue! on tape success"ve+ent ..con*igure ma-e pu"s en tant -ue root ma-e install on .0"te +a"ntenant !e %"ch"er .etc.ld.so.con* et on ra@oute !a !"'ne su"vante .usr.local.apr.lib on 0.co+presse !a 0eu&"C+e arch"ve en tapant tar ()*+ apr,util,1.!.1.tar.g+ ce!a 0onne !e r.perto"re apr,util,1.!.1 on y tape success"ve+ent ..con*igure ,,>ith,apr0/chemin-absolu/apr,1. .H ma-e pu"s en tant -ue root ma-e install ldcon*ig :ans ce r.perto"re on tape a!ors;
Apache+PHP+MySQL
35
http;66www.%un"&.or'
..con*igure ,,pre*i(0.usr.local.apache2 ,,>ith,mpm0pre*or- ,,disable,charset,lite ,,disable,include ,,disable,en) ,,disable,seten)i* ,,disable,status ,,disable,autoinde( ,,disable,asis ,,disable,cgi ,,disable, negotiation ,,disable,imap ,,disable,actions ,,disable,userdir ,,disable,alias ,,enable,so ,,enable,uni(d Par pre*i( on "n0"-ue -ue !es r.perto"res 04Apache contenant entre autre !e %"ch"er 0e con% se trouveront sous .usr.local.apache2 c4est ut"!e 0ans !e cas oO vous vou!e= %a"re coe&"ster 0eu& vers"ons 04 Apache sur votre systC+e. n tape +a"ntenant; ma-e Kt en%"n en tant -ue root; ma-e install Pour avo"r !a !"ste 0es +o0u!es pr."nsta!!.s taper !a co++an0e .usr.local.apache2.bin.httpd ,l vo"!? !a r.ponse Compiled in modules? core.c mod/so.c http/core.c pre*or-.c 1hacun 0e ces +o0u!es est 0"recte+ent "nt.'r. 0ans !4e&.cutab!e 04apache* ? !4e&cept"on 0u +o0u!e php -u" sera char'. 0yna+"-ue+ent 'rUce au +o0u!e :S #0yna+"c share0 ob@ect(.
Apache+PHP+MySQL
35
http;66www.%un"&.or'
cp .etc.resol).con* .chroot.httpd.etc. cp .etc.group .chroot.httpd.etc. cp .etc.pass>d .chroot.httpd.etc on cop"e !es +o0u!es ? !4en0ro"t -u" va b"en cp .usr.local.apache2.modules.S .chroot.httpd.usr.local.apache2.modules 0ans !es %"ch"ers .chroot.m#sql.etc.pass>d et .chroot.m#sql.etc.group on ve"!!era ? !a"sser seu!e+ent !4ut"!"sateur et !e 'roup apache n v.r"%"e !es 0.pen0ances 0u 0ae+on en tapant ldd .usr.local.apache2.bin.httpd vo"!? !e r.su!tat linu(,)dso.so.1 0R KI(IIIID***e'*JbIIIL libpcre.so.I 0R .usr.libH .libpcre.so.I KI(IIIID*b'I2* 'IIIL libaprutil,1.so.I 0R .usr.local.apr.lib.libaprutil,1.so.I KI(IIIID*b'I2d2!IIIL libe(pat.so.1 0R .usr.libH .libe(pat.so.1 KI(IIIID*b'I2a*cIIIL libapr,1.so.I 0R .usr.local.apr.lib.libapr,1.so.I KI(IIIID*b'I2JceIIIL libuuid.so.1 0R .libH .libuuid.so.1 KI(IIIID*b'I2Hc'IIIL librt.so.1 0R .libH .librt.so.1 KI(IIIID*b'I2 c1IIIL libcr#pt.so.1 0R .libH .libcr#pt.so.1 KI(IIIID*b'I22D3IIIL libpthread.so.I 0R .libH .libpthread.so.I KI(IIIID*b'I2I!DIIIL libdl.so.2 0R .libH .libdl.so.2 KI(IIIID*b'I1e!3IIIL libc.so.H 0R .libH .libc.so.H KI(IIIID*b'I1aeDIIIL .libH .ld,linu(,(JH,H .so.2 KI(IIIID*b'I31DaIIIL on cop"era 0onc !es b"b!"othC-ues n.cesa"res en tapant cp .libH .libm.so.H .chroot.httpd.libH cp .libH .librt.so.1 .chroot.httpd.libH cp .libH .libcr#pt.so.1 .chroot.httpd.libH cp .libH .libpthread.so.I .chroot.httpd.libH cp .libH .libdl.so.2 .chroot.httpd.libH cp .libH .libc.so.H .chroot.httpd.libH cp .libH .libuuid.so.1 .chroot.httpd.libH cp .libH .ld,linu(,(JH,H .so.2 .chroot.httpd.libH cp .usr.local.apr.lib.libaprutil,1.so.I .chroot.httpd.usr.local.apr.lib cp .usr.local.apr.lib.libapr,1.so.I .chroot.httpd.usr.local.apr.lib cp .usr.local.apache2.lib.libe(pat.so.I .chroot.httpd.usr.libH cp .usr.libH .libe(pat.so.1 .chroot.httpd.usr.libH cp .usr.libH .libpcre.so.I .chroot.httpd.usr.libH n !ance !e 0ae+on httpd en traLant !es appe!s ? 04autres %"ch"ers ou b"b!"othC-ues en tapant strace ,o .tmp.trace .usr.local.apache2.bin.httpd vo"!? ce -ue La 0onne 0ans !e %"ch"er cat .tmp.trace V grep open openKC.de).urandomC= 2/7:2M&@L 03 openKC.etc.gai.con*C= 2/7:2M&@L 0 ,1 6M26M5 KMo such *ile or director#L openKC.usr.local.apache2.con*.httpd.con*C= 2/7:2M&@V2/C&26b6CL 0 3 openKC.usr.local.apache2.modules.libphp!.soC= 2/7:2M&@L 0 openKC.usr.libH .tls.(JH/H .libc,client.so.IC= 2/7:2M&@L 0 ,1 6M26M5 KMo such *ile or director#L
Apache+PHP+MySQL
32
http;66www.%un"&.or'
openKC.usr.libH .tls.libc,client.so.IC= 2/7:2M&@L 0 ,1 6M26M5 KMo such *ile or director#L openKC.usr.libH .(JH/H .libc,client.so.IC= 2/7:2M&@L 0 ,1 6M26M5 KMo such *ile or director#L openKC.usr.libH .libc,client.so.IC= 2/7:2M&@L 0 openKC.usr.libH .libresol).so.2C= 2/7:2M&@L 0 ,1 6M26M5 KMo such *ile or director#L openKC.usr.local.apr.lib.libresol).so.2C= 2/7:2M&@L 0 ,1 6M26M5 KMo such *ile or director#L openKC.etc.ld.so.cacheC= 2/7:2M&@L 0 openKC.libH .libresol).so.2C= 2/7:2M&@L 0 openKC.usr.libH .libmcr#pt.so. C= 2/7:2M&@L 0 openKC.usr.libH .libltdl.so.DC= 2/7:2M&@L 0 openKC.usr.libH .libpam.so.IC= 2/7:2M&@L 0 ,1 6M26M5 KMo such *ile or director#L openKC.usr.local.apr.lib.libpam.so.IC= 2/7:2M&@L 0 ,1 6M26M5 KMo such *ile or director#L openKC.libH .libpam.so.IC= 2/7:2M&@L 0 openKC.usr.libH .libintl.so.JC= 2/7:2M&@L 0 ,1 6M26M5 KMo such *ile or director#L openKC.usr.local.apr.lib.libintl.so.JC= 2/7:2M&@L 0 ,1 6M26M5 KMo such *ile or director#L openKC.libH .libintl.so.JC= 2/7:2M&@L 0 openKC.usr.libH .libm.so.HC= 2/7:2M&@L 0 ,1 6M26M5 KMo such *ile or director#L openKC.usr.local.apr.lib.libm.so.HC= 2/7:2M&@L 0 ,1 6M26M5 KMo such *ile or director#L openKC.libH .libm.so.HC= 2/7:2M&@L 0 openKC.usr.libH .libnsl.so.1C= 2/7:2M&@L 0 ,1 6M26M5 KMo such *ile or director#L openKC.usr.local.apr.lib.libnsl.so.1C= 2/7:2M&@L 0 ,1 6M26M5 KMo such *ile or director#L openKC.libH .libnsl.so.1C= 2/7:2M&@L 0 openKC.usr.libH .lib+.so.1C= 2/7:2M&@L 0 openKC.usr.libH .libssl.so.1.I.IC= 2/7:2M&@L 0 openKC.usr.libH .libcr#pto.so.1.I.IC= 2/7:2M&@L 0 openKC.usr.libH .lib(ml2.so.2C= 2/7:2M&@L 0 openKC.usr.libH .libaudit.so.1C= 2/7:2M&@L 0 ,1 6M26M5 KMo such *ile or director#L openKC.usr.local.apr.lib.libaudit.so.1C= 2/7:2M&@L 0 ,1 6M26M5 KMo such *ile or director#L openKC.libH .libaudit.so.1C= 2/7:2M&@L 0 openKC.etc.nss>itch.con*C= 2/7:2M&@L 0 openKC.etc.host.con*C= 2/7:2M&@L 0 openKC.etc.resol).con*C= 2/7:2M&@L 0 openKC.usr.local.apr.lib.libnss/mdns /minimal.so.2C= 2/7:2M&@L 0 ,1 6M26M5 KMo such *ile or director#L openKC.etc.ld.so.cacheC= 2/7:2M&@L 0 openKC.libH .libnss/mdns /minimal.so.2C= 2/7:2M&@L 0 openKC.usr.local.apr.lib.libnss/*iles.so.2C= 2/7:2M&@L 0 ,1 6M26M5 KMo such *ile or director#L openKC.etc.ld.so.cacheC= 2/7:2M&@L 0 openKC.libH .libnss/*iles.so.2C= 2/7:2M&@L 0 openKC.etc.hostsC= 2/7:2M&@V2/C&26b6CL 0 openKC.etc.hostsC= 2/7:2M&@V2/C&26b6CL 0 openKC.usr.local.apache2.logs.httpd.pidC= 2/7:2M&@V2/C&26b6CL 0 ,1 6M26M5 KMo such *ile or director#L openKC.usr.local.apache2.logs.error/logC= 2/972M&@V2/C76A5V2/APP6M:V2/C&26b6C= IHHHL 0 H openKC.usr.local.apache2.logs.lena.hoarau.org.error/logC= 2/972M&@V2/C76A5V2/APP6M:V 2/C&26b6C= IHHHL 0 H openKC.etc.localtimeC= 2/7:2M&@L 0D on vo"t -ue httpd re-u"ert 0es b"b!"othC-ues -ue ldd ne s"'na!e pas. n !es cop"era en tapant cp .usr.libH .lib(ml2.so.2 .chroot.httpd.usr.libH cp .usr.libH .lib+.so.1 .chroot.httpd.usr.libH cp .libH .libresol).so.2 .chroot.httpd.libH cp .libH .libnsl.so.1 .chroot.httpd.libH cp .libH .libnss/*iles.so.2 .chroot.httpd.libH cp .libH .libnss/mdns /minimal.so.2 .chroot.httpd.libH on +o0"%"e +a"ntenant !es 0ro"ts et propr".ta"re 0u r.perto"re chroot. 04 Apache cho>n ,7 root?s#s .chroot.httpd chmod ,7 ID!! .chroot.httpd
Apache+PHP+MySQL
33
http;66www.%un"&.or'
on cr.e +a"ntenant un %"ch"er poube!!e .de).null en tapant m-nod .chroot.httpd.de).null c 1 3 cho>n root?s#s .chroot.httpd.de).null chmod HHH .chroot.httpd.de).null mknod -m 644 /chroot/httpd//dev/random c 1 8 mknod -m 644 /chroot/httpd//dev/urandom c 1 9 chown root:root /chroot/httpd/dev/random /chroot/httpd/dev/urandom cp .de).urandom .chroot.httpd.de).urandom p!acer +a"ntenant vos %"ch"ers ht+! sous .chroot.httpd.>>> on va cons"0.rer !e s"te pr"nc"pa! p!ac. sous .chroot.httpd.>>>.>>>.-er)ao.org et un secon0a"re sous .chroot.httpd.>>>.*uni(.-er)ao.org
Apache+PHP+MySQL
39
http;66www.%un"&.or'
G 0000000000000000000000000000000000000000000000000 5imeout 3II 3eepAli)e 2n "a(3eepAli)e7equests 1II 3eepAli)e5imeout 1! XI*"odule pre*or-.cR "in$pare$er)ers ! "a($pare$er)ers 1I $tart$er)ers ! "a(Clients 1!I "a(7equestsPerChild I X.I*"oduleR G 0000000000000000000000000000000000000000000000000 G Access control G 0000000000000000000000000000000000000000000000000 X:irector# .R 2ptions Mone Allo>2)erride Mone 2rder den#=allo> :en# *rom all X.:irector#R X:irector# C.>>>.>>>.-er)ao.orgCR 2rder allo>=den# Allo> *rom all X.:irector#R X:irector# C.>>>.*uni(.-er)ao.orgCR 2rder allo>=den# Allo> *rom all X.:irector#R G 0000000000000000000000000000000000000000000000000 G "I"6 encoding G 0000000000000000000000000000000000000000000000000 XI*"odule mod/mime.cR 5#pesCon*ig .usr.local.apache2.con*.mime.t#pes X.I*"oduleR :e*ault5#pe te(t.plain XI*"odule mod/mime.cR Add6ncoding (,compress .W Add6ncoding (,g+ip .g+ .tg+ Add5#pe application.(,compress .W Add5#pe application.(,g+ip .g+ .tg+ Add5#pe application.(,tar .tg+ X.I*"oduleR G 0000000000000000000000000000000000000000000000000 G &ogs G 0000000000000000000000000000000000000000000000000 i &og&e)el >arn &og4ormat Cch cl cu ct QCcrQC cRs cb QCc\7e*erer]iQC QCc\;ser,Agent]iQCC combined &og4ormat Cch cl cu ct QCcrQC cRs cbC common &og4ormat Cc\7e*erer]i ,R c;C re*erer &og4ormat Cc\;ser,agent]iC agent 6rror&og .usr.local.apache2.logs.error/log Custom&og .usr.local.apache2.logs.access/log combined G 0000000000000000000000000000000000000000000000000 G Oirtual hosts G 0000000000000000000000000000000000000000000000000 XOirtualHost SR :ocument7oot C.>>>.>>>.-er)ao.orgC $er)erMame C>>>.-er)ao.orgC $er)erAlias C>>>.-er)ao.orgC
Apache+PHP+MySQL
4,
http;66www.%un"&.or'
6rror&og logs.>>>.-er)ao.org.error/log Custom&og logs.>>>.-er)ao.org.access/log combined X.OirtualHostR XOirtualHost SR :ocument7oot C.>>>.*uni(.-er)ao.orgC $er)erMame C*uni(.-er)ao.orgC $er)erAlias C*uni(.-er)ao.orgC 6rror&og logs.*uni(.-er)ao.org.error/log Custom&og logs.*uni(.-er)ao.org.access/log combined X.OirtualHostR vous 0eve= cr.er pr.a!ab!e+ent !es r.perto"res pour stocBer !es !o's 0e vos s"tes m-dir .chroot.httpd.usr.local.apache2.logs.*uni(.-er)ao.org m-dir .chroot.httpd.usr.local.apache2.logs.>>>.-er)ao.org cr.er .'a!e+ent !es a!"as -u" vont b"en au n"veau 0e .etc.hosts pour vos h7tes v"rtue!s* c4est ? 0"re -ue s" votre serveur a !4a0resse /P !oca!e 192.153.1.1, et a pour no+ !oca! mana.-er)ao.*r vous 0eve= avo"r 1'2.1HJ.1.1I mana.-er)ao.*r >>>.-er)ao.org *uni(.-er)ao.org vous 0eve= %a"re 0e +G+e pour tous vos c!"ents. Pour !ancer +a"ntenant Apache* "! %aut taper; chroot .chroot.httpd .usr.local.apache2.bin.httpd Ma"ntenant votre nav"'ateur pr.%.r. 0ans !e cha+p >FL taper http?..>>>.-er)ao.org et vous 0evr"e= retrouver vos pa'es.
1I.!Installation de PHP
1I.!.1 Installation a)ec les sources de PHP
Pour php!* on tapera 04abor0 tar ()*1 php,!. .11.tar.b+2 1e!a va cr.er un r.perto"re php,!. .11. A pr.sent 0ans !e r.perto"re 0e php* vous tapere= ..con*igure ,,>ith,ap(s20.usr.local.apache2.bin.ap(s ,,>ith,con*ig,*ile,path0.usr.local.apache2.con* ,,>ith,m#sql ,,enable,debug0no ,,>ith,gette(t ,,>ith,mcr#pt ,,>ith,imap ,,>ith,imap,ssl ,,>ith, libdir0libH ,,>ith,openssl ,,enable,e(i* A noter -ue !4opt"on sa*e/mode n4est p!us pr"se en co+pte 0epu"s !a vers"on 5.3.,. !es pacBa'es su"vants libH mcr#pt,de)el et libH c,client,de)el on tape ensu"te ma-e Pu"s en tant -ue root ma-e install cd .etc.ssl on '.nCre une c!. non ch"%%r.e sur 0"s-ue #pour .v"ter 04avo"r ? sa"s"r un +ot 0e passe ? cha-ue re0.+arra'e 04Apache( ; n "nsta!!era pr.a!ab!e+ent
Apache+PHP+MySQL
41
http;66www.%un"&.or'
openssl genrsa ,out ser)er.-e# 1I2 Nenerating 7$A pri)ate -e#= 1I2 bit long modulus .........UUUUUU ...........................................UUUUUU e is H!!3D KI(1III1L Knsu"te on cr.e un cert"%"cat s"'n. avec cette c!. ; openssl req ,ne> ,-e# ser)er.-e# ,out ser)er.csr @ou are about to be as-ed to enter in*ormation that >ill be incorporated into #our certi*icate request. 9hat #ou are about to enter is >hat is called a :istinguished Mame or a :M. 5here are quite a *e> *ields but #ou can lea)e some blan4or some *ields there >ill be a de*ault )alue= I* #ou enter '.'= the *ield >ill be le*t blan-. ,,,,, Countr# Mame K2 letter codeL EbbF?47 $tate or Pro)ince Mame K*ull nameL E:e*ault Pro)inceF?8retagne &ocalit# Mame Keg= cit#L E:e*ault Cit#F?8rest 2rgani+ation Mame Keg= compan#L E:e*ault Compan# &tdF?*uni( 2rgani+ational ;nit Mame Keg= sectionL EF? Common Mame Keg= #our name or #our ser)er's hostnameL EF?horde.-er)ao.org 6mail Address EF?oli)ier.hoarauT*uni(.org Please enter the *ollo>ing 'e(tra' attributes to be sent >ith #our certi*icate request A challenge pass>ord EF?mot,de,passe An optional compan# name EF?*uni(
Apache+PHP+MySQL
42
http;66www.%un"&.or'
libpam.so.I 0R .libH .libpam.so.I KI(IIIID*d D!'cHIIIL libintl.so.J 0R .libH .libintl.so.J KI(IIIID*d D!DbcIIIL libm.so.H 0R .libH .libm.so.H KI(IIIID*d D!!3'IIIL libdl.so.2 0R .libH .libdl.so.2 KI(IIIID*d D!33!IIIL libnsl.so.1 0R .libH .libnsl.so.1 KI(IIIID*d D!11dIIIL lib+.so.1 0R .usr.libH .lib+.so.1 KI(IIIID*d D *IDIIIL libssl.so.1.I.I 0R .usr.libH .libssl.so.1.I.I KI(IIIID*d D caJIIIL libcr#pto.so.1.I.I 0R .usr.libH .libcr#pto.so.1.I.I KI(IIIID*d D Jc'IIIL lib(ml2.so.2 0R .usr.libH .lib(ml2.so.2 KI(IIIID*d D !DaIIIL libc.so.H 0R .libH .libc.so.H KI(IIIID*d D 2IeIIIL libpthread.so.I 0R .libH .libpthread.so.I KI(IIIID*d D3**2IIIL .libH .ld,linu(,(JH,H .so.2 KI(IIIID*d DD3e IIIL libaudit.so.1 0R .libH .libaudit.so.1 KI(IIIID*d D3dd'IIIL !a p!upart 0es b"b!"othC-ues ont 0.@? .t. cop".s 0ans !4env"ronne+ent chroot. su"te ? !4"nsta!!at"on 04 apache* "! %aut @uste taper cp .usr.local.m#sql.lib.libm#sqlclient.so.1J .chroot.httpd.usr.local.m#sql.lib cp .usr.libH .libmcr#pt.so. .chroot.httpd.usr.libH cp .libH .libaudit.so.1 .chroot.httpd.libH cp .libH .libpam.so.I .chroot.httpd.libH cp .usr.libH .libc,client.so.I .chroot.httpd.usr.libH cp .usr.libH .libssl.so.1.I.I .chroot.httpd.usr.libH cp .usr.libH .libcr#pto.so.1.I.I .chroot.httpd.usr.libH
Apache+PHP+MySQL
43
http;66www.%un"&.or'
A99KQ9/ Q pour un %onct"onne+ent opt"+a! 0e m#sql avec php* "! %au0ra pr.c"ser !a pos"t"on 0u %"ch"er socBet 0e m#sql 0ans !e %"ch"er php.ini m#sql.de*ault/soc-et 0 .tmp.m#sql.socn va .'a!e+ent +o0"%"er !es para+Ctres su"vants; e(pose/php02** PHP ne 0.!"vrera pas 04"n%or+at"on en r.ponse au& re-uGtes %a"tes par 0es c!"ents. displa#/errors 0 2** PHP ne 0.!"vrera ? !4a%%"cha'e #0ans !e nav"'ateur( aucune erreur et warn"n'. log/errors 0 2n Les erreurs et warn"n's seront "nscr"ts 0ans un %"ch"er 0e !o' error/log 0 :.%"n"t"on 0u %"ch"er 0e !o' .usr.local.apache.log s.php.log *ile/uploads 0 2** :.sact"vat"on 0e !4up!oa0 Kn +ettant ? n !es var"ab!es 04env"ronne+ent* 8K9* P S9* etc. 0ev"ennent register/globals02** auto+at"-ue+ent 0es var"ab!es '!oba!es* ce -u" est potent"e!!e+ent 0an'ereu&* en cons.-uence "! est %orte+ent conse"!!. 0e 0.sact"ver ce para+Ctre
1I.H&ancement automatique
1I.H.1 &ancement automatique de "#sql
Qous pouvons passer ? !a cr.at"on 04un %"ch"er 0e !ance+ent m#sqld -u4on p!acera sous .etc.init.d G<.bin.sh
Apache+PHP+MySQL
44
http;66www.%un"&.or'
G Comments to support ch-con*ig on 7edHat &inu( G ch-con*ig? 23 ! H 3H G description? A )er# *ast and reliable $%& database engine. CH7225/"@$%&0.chroot.m#sql CH7225/PHP0.chroot.httpd $2C3650.tmp.m#sql.soc"@$%&:0.usr.local.m#sql.bin.m#sqld PI:4I&60.tmp.m#sqld.pid CH7225;I:0.usr.sbin.chrootuid echo ,n C m#sqlC case C[1C in startL rm ,* [\CH7225/PHP].[\$2C365] nohup [\CH7225;I:] [\CH7225/"@$%&] m#sql [\"@$%&:] R .de).null 2RB1 B sleep ! BB ln [\CH7225/"@$%&].[\$2C365] [\CH7225/PHP ].[\$2C365] AA stopL -ill ^cat [\CH7225/"@$%&].[\PI:4I&6]^ rm ,r* [\CH7225/"@$%&].[\$2C365] AA SL echo CC echo C;sage? ^basename [I^ \startVstop]C RB2 e( it H AA esac e(it I Pour un !ance+ent auto+at"-ue 0e "#$%& ? !4.tat 0e +arche 3* 4 et 5* on tapera ensu"te ch-con*ig ,,le)el 3 ! m#sql on Kt un arrGt ? !4.tat 0e +arche ,* 1* 2 et 5 ch-con*ig ,,le)el I12H m#sql o**
e(it H
AA
Apache+PHP+MySQL
45
http;66www.%un"&.or'
ch-con*ig ,,le)el 3 ! apache on Kt pour un arrGt ? !4.tat 0e +arche ,* 1* 2 et 5 ch-con*ig ,,le)el I12H apache o**
Apache+PHP+MySQL
45
http;66www.%un"&.or'
XOirtualHost SR :ocument7oot C.>>>.blog.-er)ao.orgC $er)erMame Cblog.-er)ao.orgC 6rror&og logs.blog.-er)ao.org.error/log Custom&og logs.blog.-er)ao.org.access/log combined X.OirtualHostR on re!ance apache. .etc.init.d.apache stop .etc.init.d.apache start n ra@oute !4>FL b!o'.Bervao.or' 0ans !e %"ch"er .etc.hosts. Ma"ntenant on !ance !4"nter%ace 04a0+"n"strat"on 0e wor0press en +ettant 0ans votre nav"'ateur !4>FL su"vant http?..blog.-er)ao.org.>p,admin.install.php Lors 0e !a con%"'urat"on 0e !a base* !es para+Ctres ? sa"s"r sont A Qo+ 0e !a base 0e 0onn.es >ordpress A /0ent"%"ant admin>p A Mot 0e passe J!e +ot 0e passe pr.a!ab!e+ent %"&.J A H7te 0e !a base 0e 0onn.es !oca!host A Pr.%"&e 0e tab!e >pblog1/ /! su%%"t ensu"te 0e su"vre !es "n0"cat"ons. Pour !e reste vous pouve= consu!ter !es no+breu& s"tes sur >ordpress -u4on peut trouver sur !e net. Pour !4up!oa0 0es photos "! %au0ra +o0"%"er .'a!e+ent !e %"ch"er .chroot.httpd.usr.local.apache2.con*.php.ini en +ettant *ile/uploads 0 2n upload/tmp/dir 0 .>>>.blog.-er)ao.org.>p,content.uploads re!ance= apache
Apache+PHP+MySQL
42
http;66www.%un"&.or'
11.2.2 Installation
Pr.a!ab!e+ent on "nsta!!era !es pacBa'es su"vants gd,de)el* +lib1,de)el* libpng,de)el* lib1pegH2,de)el* geopip, de)el et db1,de)el n "nsta!!era .'a!e+ent !a base 0e %tp;66%tp.+run"&.net6pub6weba!"=er6'eo0b6 en tant -ue root on cr.e !e r.perto"re su"vant m-dir .usr.share.Neo:8 0ans !e-ue! on 0.sarch"ve !e tarba!! tar ()*+ >ebali+er,geodb,2I1I1II1.tg+ Ma"ntenant on r.cupCre !es 0rapeau&* on !e 0.co+presse 0ans !e r.perto"re su"vant cd .usr.local.apache2.logs tar ()*+ >ebali+er,*lags.tg+ ce!a va 0onner un r.perto"re *lags= on chan'e !e propr".ta"re en tapant cho>n ,7 root?root *lags. :ans un r.perto"re 0e trava"! pour 0.co+presser !4arch"ve pr"nc"pa!e* on tapera; tar ()*+ >ebali+er,2.23,I!,src.tg+ 1e!a va nous cr.er un r.perto"re >ebali+er,2.23,I! 0ans !e-ue! on tape en tant -ue s"+p!e ut"!"sateur; ..con*igure ,,>ith,language0*rench ,,enable,dns ,,enable,geoip L4opt"on enable,dns per+et 04avo"r !e no+ 0e !a +ach"ne -u" s4est connect. sur !e s"te p!ut7t -ue son a0resse /P* c4est -uan0 +G+e p!us par!ant* enable,geoip per+et 04avo"r sa pos"t"on '.o'raph"-ue. n tape +a"ntenant ma-e et en%"n en tant -ue root ma-e install )o"!? !e r.su!tat m-dir ,p .usr.local.bin m-dir ,p .usr.local.share.man.man1 m-dir ,p .usr.local.etc .usr.bin.install ,c >ebali+er .usr.local.bin.>ebali+er .usr.bin.install ,c >cmgr .usr.local.bin.>cmgr rm ,* .usr.local.bin.>eba+ol)er ln ,s >ebali+er .usr.local.bin.>eba+ol)er .usr.bin.install ,c ,m H >ebali+er.1 .usr.local.share.man.man1.>ebali+er.1 .usr.bin.install ,c ,m H >cmgr.1 .usr.local.share.man.man1.>cmgr.1 rm ,* .usr.local.share.man.man1.>eba+ol)er.1 ln ,s >ebali+er.1 .usr.local.share.man.man1.>eba+ol)er.1 .usr.bin.install ,c ,m H sample.con* .usr.local.etc.>ebali+er.con*.sample 1o++e tou@ours s" !es che+"ns ne vous p!a"sent pas; 0onn.es 0e '.o!oca!"sat"on -u4on peut trouver par "c"
Apache+PHP+MySQL
43
http;66www.%un"&.or'
con*igure ,,help
11.2.3 Con*iguration
Ma"ntenant on cr.e !e %"ch"er 0e con%"'urat"on en partant 04un %"ch"er e&e+p!e -u" a .t. "nsta!!. sous .usr.local.etc cp .usr.local.etc.>ebali+er.con*.sample .usr.local.etc.>ebali+er.con* :ans ce %"ch"er on 0o"t 0.%"n"r !es para+Ctres su"vants* !e no+ 0u %"ch"er 0e !o' 04 apache ? ana!yser &og4ile .usr.local.apache2.logs.lena.hoarau.org.access/log
!es %"ch"ers -u" seront pr"s en co+pte 0ans !es stats Page5#pe Page5#pe GPage5#pe Page5#pe GPage5#pe htmS cgi phtml php pl
!e no+bre 0e process :M$Children ! on act"ve !a base 0e 0onn.es 0e '.o!oca!"sat"on Neo:8 #es e+p!ace+ent 0e !a base Neo:8:atabase .usr.share.Neo:8.Neo:8.dat on act"ve !es "n%or+at"ons '.o'raph"-ues !".es au& a0resses /P NeoIP #es e+p!ace+ent 0e !a base NeoIP:atabase .usr.share.NeoIP.NeoIP.dat on act"ve !4a%%"cha'e 0es 0rapeau&
Apache+PHP+MySQL
49
http;66www.%un"&.or'
Countr#4lags #es e+p!ace+ent 0u r.perto"re 0es 0rapeau& 4lag:ir .usr.local.apache2.logs.*lags Pour -ue vos propres re-uGtes ne so"ent pas pr"ses en co+pte pour !es v"s"tes #re+p!ace= par votre no+ 0e 0o+a"ne( Hide$ite S-er)ao.*r
Pour -ue vos v"s"tes ne so"ent pas pr"ses en co+pte pour !e co+pte 0es Jre%erersJ Pour !e 0o+a"ne !oca! Hide7e*errer -er)ao.*r
pour cacher !es !"ens ? part"r 0e votre s"te Hide7e*errer >>>.*uni(.org pour cacher !es !"ens ? part"r 0e 'oo'!e Hide7e*errer google
11.2.
;tilisation
/! su%%"t 0e taper >ebali+er* par 0.%aut "! !"ra !es para+Ctres pr.sents 0ans !e %"ch"er .usr.local.etc.>ebali+er.con* 9ebali+er O2.23,I! K&inu( 2.H.33.!,des-top,2mnb (JH/H L 4rench ;sing log*ile .usr.local.apache2.logs.lena.hoarau.org.access/log Kcl*L :M$ &oo-up K!L? 12 addresses in H seconds= 2.sec ;sing :M$ cache *ile dns/cache.db ;sing 9ebali+er Neo:8 2I1I1II1,1 Creating output in .usr.local.apache2.logs.>ebali+er Hostname *or reports is 'lena.-er)ao.org' Histor# *ile not *ound... Nenerating report *or $eptembre 2I1I Nenerating report *or 2ctobre 2I1I $a)ing histor# in*ormation... Nenerating summar# report 231 records in 1 seconds= 231.sec S"non !a synta&e est !a su"vante >ebali+er .chemin,dacces.access/log 1e!a nous cr.e ? !4en0ro"t oO vous ave= tap. !a co++an0e !es %"ch"ers ht+! su"vants; inde(.html usage/2II111.html
Apache+PHP+MySQL
5,
http;66www.%un"&.or'
Kt !es 'raph"-ues su"vants; ctr#/usage/2II111.png hourl#/usage/2II111.png dail#/usage/2II111.png usage.png vo"!? ce -ue La 0onne
Apache+PHP+MySQL
51
http;66www.%un"&.or'
7sum par mois "ois Mu"n 2,,2 5otau( "o#enne 1ournaliYre 4ichiers Pages Oisites 3 2 2 1 5otau( mensuels Oisites Pages 4ichiers 1 1 2 2 2 2
Hits
$ites 1
3o 4
Hits 3 3
Apache+PHP+MySQL
52
http;66www.%un"&.or'
1 2 "a( 3 3 2 2 1
Apache+PHP+MySQL
53
http;66www.%un"&.or'
4ichiers 2
1,,.,,[
Pages 2
1,,.,,[
Oisites 1
1,,.,,[
$ites 1
1,,.,,[
3o
1,,.,,[
4ichiers
5otal "o#. ,.,,[
Pages
5otal "o#. ,.,,[
3o
5otal
I I
I I
I I
I I
,.,,[
Apache+PHP+MySQL
54
http;66www.%un"&.or'
1 2 3 ! H D J ' 1I 11 12 13 1 1! 1H 1D 1J 1' 2I 21 22 23
I I I I I I I I I I I I I I I 3 I I I I I I I
I I I I I I I I I I I I I I I 3 I I I I I I I
,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ 1,,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[
I I I I I I I I I I I I I I I 2 I I I I I I I
I I I I I I I I I I I I I I I 2 I I I I I I I
,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ 1,,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[
I I I I I I I I I I I I I I I 2 I I I I I I I
I I I I I I I I I I I I I I I 2 I I I I I I I
,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ 1,,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[
I I I I I I I I I I I I I I I I I I I I I I
I I I I I I I I I I I I I I I I I I I I I I
,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ 1,,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[ ,.,,[
3o 1 2
33.5,[ 6 51.5,[ 6apacheDpb.'"%
;7&
3o 2 1
51.5,[ 6apacheDpb.'"% 33.5,[ 6
;7&
Oisites 1
1,,.,,[ 6
;7&
Apache+PHP+MySQL
55
http;66www.%un"&.or'
1,,.,,[
1,,.,,[
1,,.,,[
1,,.,,[ 192.153.25.25
4ichiers 2
1,,.,,[
3o
1,,.,,[
Oisites 1
Mom d'hate
1,,.,,[ 192.153.25.25
4ichiers 2
1,,.,,[
3o
Pa#s
1,,.,,[ QonAreso!u6/nconnu
8enerate0 by Eeba!"=er )ers"on 2.,1 S" La ne vous conv"ent pas* vous pouve= rentrer 0es opt"ons ? >ebali+er* pour en avo"r !a !"ste; >ebali+er ,help >ebali+er peut +a"ntenant Gtre appe!. r.'u!"Cre+ent avec cron* sur +a Man0r"va* @4a" ra@out. !e %"ch"er >ebali+er #avec 0es 0ro"ts en e&.cut"on( sous .etc.cron.dail# G<.bin.bash cd .usr.local.apache.>ebali+er.online .usr.local.bin.>ebali+er .usr.local.apache.logs.online,access/log cd .usr.local.apache.>ebali+er.ohoarau .usr.local.bin.>ebali+er .usr.local.apache.logs.ohoarau,access/log Les stats seront 0onc +"s ? @our tous !es @ours. M256 s" au !ance+ent 0e vous obtene= co++e erreur
Apache+PHP+MySQL
55
http;66www.%un"&.or'
7eading histor# *ile... >ebali+er.hist 6rror? $-ipping o)ersi+ed log record 6rror? $-ipping o)ersi+ed log record 6rror? $-ipping o)ersi+ed log record 6rror? $-ipping o)ersi+ed log record 6rror? $-ipping o)ersi+ed log record 6rror? $-ipping o)ersi+ed log record 14est nor+a! c4est @uste un pet"t +a!"n -u" a envoy. une re-uGte hyper !on'ue pour %a"re to+ber votre serveur* "! se+b!era"t -ue //S so"t sens"b!e ? ce 'enre 04atta-ue. 9ebali+er se contente 04"'norer ce 'enre 0e stats.
.etc.a>stats est !e r.perto"re oO se trouve !es %"ch"ers 0e con%"'urat"on 0e vos serveurs. )o"!? !e r.su!tat 7unning 'C.chemin,absolu.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,update ,con*ig0*uni(.homelinu(.org?123 ,con*igdir0C.etc.a>stats.C' to update con*ig *uni(.homelinu(.org?123
Apache+PHP+MySQL
52
http;66www.%un"&.or'
;pdate *or con*ig C.etc.a>stats.a>stats.*uni(.homelinu(.org?123 .con*C 9ith data in log *ile C.usr.local.apache.logs.online,access/logC... Phase 1 ? 4irst b#pass old records= searching ne> record... :irect access a*ter last parsed record Ka*ter line 2H'HJL Zumped lines in *ile? 2H'HJ 4ound 2H'HJ alread# parsed records. Parsed lines in *ile? 13I 4ound !2 dropped records= 4ound H! corrupted records= 4ound I old records= 4ound 13 ne> quali*ied records. 7unning 'C.chemin,absolu.a>stats,H.!.>>>root.cgi,bin.a>stats.plC ,con*ig0ohoarau.homelinu(.org?123 ,con*igdir0C.etc.a>stats.C' to ohoarau.homelinu(.org?123 ;pdate *or con*ig C.etc.a>stats.a>stats.ohoarau.homelinu(.org?123 .con*C 9ith data in log *ile C.usr.local.apache.logs.ohoarau,access/logC... Phase 1 ? 4irst b#pass old records= searching ne> record... :irect access a*ter last parsed record Ka*ter line 11D HL Zumped lines in *ile? 11D H 4ound 11D H alread# parsed records. Parsed lines in *ile? I 4ound I dropped records= 4ound I corrupted records= 4ound I old records= 4ound I ne> quali*ied records. 7unning 'C.chemin,absolu.a>stats,H.!.>>>root.cgi,bin.a>stats.plC ,update ,con*igdir0C.etc.a>stats.C' to update con*ig oli)ier.*uni(.org ;pdate *or con*ig C.etc.a>stats.a>stats.oli)ier.*uni(.org.con*C 9ith data in log *ile C.usr.local.apache.logs.oli)ier.oli)ier.*uni(.org.logC... Phase 1 ? 4irst b#pass old records= searching ne> record... :irect access a*ter last parsed record Ka*ter line HI3 L Zumped lines in *ile? HI3 4ound HI3 alread# parsed records. Parsed lines in *ile? I 4ound I dropped records= 4ound I corrupted records= 4ound I old records= 4ound I ne> quali*ied records. 7unning 'C.chemin,absolu.a>stats,H.!.>>>root.cgi,bin.a>stats.plC ,update ,con*igdir0C.etc.a>stats.C' to update con*ig >>>.*uni(.org ;pdate *or con*ig C.etc.a>stats.a>stats.>>>.*uni(.org.con*C 9ith data in log *ile C.usr.local.apache.logs.*uni(.>>>.*uni(.org.logC... Phase 1 ? 4irst b#pass old records= searching ne> record... :irect access a*ter last parsed record Ka*ter line 13'JDL Zumped lines in *ile? 13'JD 4ound 13'JD alread# parsed records. Parsed lines in *ile? I 4ound I dropped records= 4ound I corrupted records= 4ound I old records= 4ound I ne> quali*ied records update ,update con*ig
,con*ig0oli)ier.*uni(.org
,con*ig0>>>.*uni(.org
:ans !e cas 04une pre+"Cre "nsta!!at"on* on tapera #0ans !4e&e+p!e c"A0essous* @e 0"spose 0e 0eu& serveurs Apache #vers"on 1.3 et 2( avec !es serveurs web v"rtue!s http?..*uni(.homelinu(.org?123 et http?..ohoarau.homelinu(.org?123 ( en tant -ue root perl a>stats/con*igure.pl
Apache+PHP+MySQL
53
http;66www.%un"&.or'
vo"!? !e r.su!tat ,,,,, A9$tats a>stats/con*igure 1.I Kbuild 1.JL KcL &aurent :estailleur ,,,,, 5his tool >ill help #ou to con*igure A9$tats to anal#+e statistics *or one >eb ser)er. @ou can tr# to use it to let it do all that is possible in A9$tats setup= ho>e)er *ollo>ing the step b# step manual setup documentation Kdocs.inde(.htmlL is o*ten a better idea. Abo)e all i*? , @ou are not an administrator user= , @ou >ant to anal#+e do>nloaded log *iles >ithout >eb ser)er= , @ou >ant to anal#+e mail or *tp log *iles instead o* >eb log *iles= , @ou need to anal#+e load balanced ser)ers log *iles= , @ou >ant to 'understand' all possible >a#s to use A9$tats... 7ead the A9$tats documentation Kdocs.inde(.htmlL. ,,,,,R 7unning 2$ detected? &inu(= 8$: or ;ni( 9arning? A9$tats standard director# on &inu( 2$ is '.usr.local.a>stats'. I* #ou >ant to use standard director#= #ou should *irst mo)e all content o* A9$tats distribution *rom current director#? .usr.local.linu(.>eb.a>stats,D.1 to standard director#? .usr.local.a>stats And then= run con*igure.pl *rom this location. :o #ou >ant to continue setup *rom this M2M standard director# E#MF P # "c" "! trouve !es %"ch"ers 0e con%"'urat"on 0e +es 0eu& serveurs Apache ,,,,,R Chec- *or >eb ser)er install 4ound 9eb ser)er Apache con*ig *ile '.usr.local.apache.con*.httpd.con*' 4ound 9eb ser)er Apache con*ig *ile '.usr.local.apache2.con*.httpd.con*' /! +o0"%"e !es 0eu& %"ch"ers 0e con%"'urat"on* "! +o0"%"e .'a!e+ent !es %"ch"ers pour +ettre ? @our !e %or+at 04arch"va'e 0es !o's ,,,,,R Chec- and complete >eb ser)er con*ig *ile '.usr.local.apache2.con*.httpd.con*' Add 'X:irector#R' directi)e A9$tats directi)es added to Apache con*ig *ile. ,,,,,R Chec- and complete >eb ser)er con*ig *ile '.usr.local.apache.con*.httpd.con*' 9arning? @ou Apache con*ig *ile contains directi)es to >rite 'common' log *iles 5his means that some *eatures can't >or- Kos= bro>sers and -e#>ords detectionL. :o #ou >ant me to setup Apache to >rite 'combined' log *iles E#.MF P # Add 'Alias .a>statsclasses C.usr.local.linu(.>eb.a>stats,D.1.>>>root.classes.C' Add 'Alias .a>statscss C.usr.local.linu(.>eb.a>stats,D.1.>>>root.css.C' Add 'Alias .a>statsicons C.usr.local.linu(.>eb.a>stats,D.1.>>>root.icon.C' Add '$criptAlias .a>stats. C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.C' Add 'X:irector#R' directi)e A9$tats directi)es added to Apache con*ig *ile. ,,,,,R ;pdate model con*ig *ile '.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.model.con*' 4ile a>stats.model.con* updated. /! +et ? @our son propre %"ch"er 0e con%"'urat"on ,,,,,R ;pdate model con*ig *ile '.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.model.con*' 4ile a>stats.model.con* updated. ,,,,,R Meed to create a ne> con*ig *ile P :o #ou >ant me to build a ne> A9$tats con*ig.pro*ile *ile Krequired i* *irst installL E#.MF P
Apache+PHP+MySQL
59
http;66www.%un"&.or'
on "n0"-ue "c" !4>FL 0u serveur web ? ana!yser #a0resse;port( ,,,,,R :e*ine con*ig *ile name to create 9hat is the name o* #our >eb site or pro*ile anal#sis P 6(ample? >>>.m#site.com 6(ample? demo @our >eb site= )irtual ser)er or pro*ile name? R *uni(.homelinu(.org?123 :.%"n"t"on 0u che+"n pour stocBer !es %"ch"ers 0e con%"'urat"on pour cha-ue serveur ? ana!yser ,,,,,R :e*ine con*ig *ile path In >hich director# do #ou plan to store #our con*ig *ileKsL P :e*ault? .etc.a>stats :irector# path to store con*ig *ileKsL K6nter *or de*aultL? R 1r.at"on 0u %"ch"er 0e con%"'urat"on 0u serveur +ent"onn. p!us haut ,,,,,R Create con*ig *ile '.etc.a>stats.a>stats.*uni(.homelinu(.org?123 .con*' Con*ig *ile .etc.a>stats.a>stats.*uni(.homelinu(.org?123 .con* created. Apache est re!anc. auto+at"-ue+ent ,,,,,R 7estart 9eb ser)er >ith '.sbin.ser)ice httpd restart' .etc.init.d.httpd restart? httpd restarted ,,,,,R Add update process inside a scheduler $orr#= con*igure.pl does not support automatic add to cron #et. @ou can do it manuall# b# adding the *ollo>ing command to #our cron? .usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.pl ,update ,con*ig0*uni(.homelinu(.org?123 2r i* #ou ha)e se)eral con*ig *iles and pre*er ha)ing onl# one command? .usr.local.linu(.>eb.a>stats,D.1.tools.a>stats/updateall.pl no> Press 6M567 to continue... A $I"P&6 con*ig *ile has been created? .etc.a>stats.a>stats.*uni(.homelinu(.org?123 .con* @ou should ha)e a loo- inside to chec- and change manuall# main parameters. @ou can then manuall# update #our statistics *or '*uni(.homelinu(.org?123 ' >ith command? R perl a>stats.pl ,update ,con*ig0*uni(.homelinu(.org?123 @ou can also read #our statistics *or '*uni(.homelinu(.org?123 ' >ith ;7&? R http?..localhost.a>stats.a>stats.plPcon*ig0*uni(.homelinu(.org?123 Press 6M567 to *inish... /! a cr.. un %"ch"er 0e con%"'urat"on pour !e s"te concern. .etc.a>stats.a>stats.*uni(.homelinu(.org?123 .con* 0ans ce %"ch"er @4a" +o0"%". !es para+Ctres su"vants; A 1e!u" -u" "n0"-ue !e che+"n 0u %"ch"er 0e !o' brut ? ana!yser &og4ile0C.usr.local.apache.logs.online,access/logC A pour act"ver !a r.so!ut"on 0e no+ :QS :M$&oo-up01 A 1e!u" -u" cont"en0ra !es 0onn.es obtenues
Apache+PHP+MySQL
5,
http;66www.%un"&.or'
:ir:ata0C.usr.local.)ar.a>statsC A Pour "n0"-uer !e %"ch"er "n0e& 0e votre s"te :e*ault4ile0Cinde(.phpC A Pour "'norer !es +arch"nes 0e votre 0o+a"ne $-ipHosts0C12D.I.I.1 76N6bE_1'2Q.1HJQ.13Q.F 76N6bEQ.-er)aoQ.*r[FC A S" votre s"te est "0ent"%". par une autre >FL "! %aut !a ra@outer "c" #+ettre un espace co++e cha+p s.parateur( HostAliases0C*uni(.homelinu(.org?123 C Pense= ? cr.er pr.a!ab!e+ent ce r.perto"re m-dir .usr.local.)ar.a>stats Pour vo"r s" tout +arche on se p!ace +a"ntenant en tant -ue root sous a>stats,D.1.>>>root.cgi,bin et on tape ..a>stats.pl ,con*ig0*uni(.homelinu(.org?123 ,update )o"!? !e r.su!tat Create.;pdate database *or con*ig C.etc.a>stats.a>stats.>>>.online.-er)ao.*r.con*C b# A9$tats )ersion D.1 Kbuild 1.' 3L 4rom data in log *ile C.usr.local.apache2.logs.online,access/logC... Phase 1 ? 4irst b#pass old records= searching ne> record... $earching ne> records *rom beginning o* log *ile... Phase 2 ? Mo> process ne> records K4lush histor# on dis- a*ter 2IIII hostsL... Zumped lines in *ile? I Parsed lines in *ile? 2!! 4ound dropped records= 4ound H corrupted records= 4ound I old records= 4ound 2 ! ne> quali*ied records. Sur !es vers"ons pr.c.0entes "! y ava"t un !.'er bu'* vo"!? une !"'ne typ"-ue 0e !o' 1'2.1HJ.I.11 , , E1'.4eb.2II ?1I?!J?1D UI1IIF CN65 .images.1ournal.gi* H55P.1.1C 3I , Chttp?..*uni(.homelinu(.org?123 .*r.linu(.inde(.phpPre*0tipsBpage0menuC C"o+illa.!.I Kb11A ;A &inu( iHJHA *r,47A r)?1. L Nec-o.2I I3IH3IC r par%o"s Apache arch"ve cec" 1'2.1HJ.I.11 , , E1'.4eb.2II ?1I?!J?2 UI1IIF CN65 . H55P.1.1C 2II 1D '3 A 0.%aut 04"n%or+at"on "! !a"sse 0es cha+ps v"0es et a>stats n4appr.c"e 'uCre #"! n4ana!yse pas !es !o's...(. Me n4a" pas !e recu! su%%"sant pour savo"r s" La .ta"t corr"'. avec !a 5.3. S" vous ave= un 0eu&"C+e s"te v"rtue!* cr.er un autre %"ch"er .etc.a>stats.a>stats.mon,domaine,)irtuel.con* sur !e +G+e +o0C!e -ue pr.c.0e++ent. :ans +on cas "! su%%"t 0e taper cp .etc.a>stats.a>stats.*uni(.homelinu(.org?123 .con* .etc.a>stats.a>stats.ohoarau.homelinu(.org?123 .con*
Apache+PHP+MySQL
51
http;66www.%un"&.or'
:ans ce %"ch"er pense= ? +o0"%"er !es para+Ctres pour !4>FL et !e %"ch"er 0e !o's 04Apache ? ana!yser. A noter -ue vu !a +.tho0e e+p!oy.e #vo"r chap"tre su"vant( pour ut"!"ser a>stats* @4a" suppr"+. !es !"'nes -u4a>stats ? ra@outer 0ans +es %"ch"ers 0e con%"'urat"on 04Apache. S" vous vou!e= ut"!"ser a>stats en tant -ue c'"Ab"n access"b!e 04Apache* vous 0eve= !a"sser ces !"'nes.
11.3.3 ;tilisation
)o"!? co++ent @4ut"!"se a>stats* @4a" cr.. un %"ch"er a>stats #0ro"t e&.cutab!e( sous .etc.cron.dail# -u" s4e&.cute 0onc tous !es @ours et per+et 0e r.a!"ser !es stats pour +es 0eu& a0resses web v"rtue!!es G<.bin.bash .usr.local.linu(.>eb.a>stats,D.1.tools.a>stats/buildstaticpages.pl ,con*ig0ohoarau.homelinu(.org?123 ,update ,lang0*r ,dir0.usr.local.apache2.htdocs.a>stats.ohoarau ,a>statsprog0.usr.local.linu(.>eb.a>stats,H.!.>>>root.cgi,bin.a>stats.pl .usr.local.linu(.>eb.a>stats,D.1.tools.a>stats/buildstaticpages.pl ,con*ig0*uni(.homelinu(.org?123 ,update ,lang0*r ,dir0.usr.local.apache2.htdocs.a>stats.online ,a>statsprog0.usr.local.linu(.>eb.a>stats, H.!.>>>root.cgi,bin.a>stats.pl L4opt"on ,dir per+et 0e sauve'ar0er sous %or+e ht+! !es stat"st"-ues obtenus. Pour ter+"ner !e r.perto"re "con 04a>stats 0o"t Gtre access"b!e sur votre serveur web* pour ce!a 0ans !e %"ch"er 0e con%"'urat"on 04 Apache* @4a" ra@out. !es 0"rect"ves su"vantes Alias .a>statsicons. C.usr.local.linu(.>eb.a>stats,D.1.>>>root.icon.C X:irector# C.usr.local.linu(.>eb.a>stats,D.1.>>>root.iconCR 2ptions Inde(es "ultiOie>s Allo>2)erride Mone 2rder allo>=den# Allo> *rom all X.:irector#R )ous re+p!acere= b"en sVr par !e che+"n en abso!u 04 a>stats. Par a"!!eurs @4a" +"s !es 0ro"ts -u" a!!a"ent b"en pour !e r.perto"re 04a>stats chmod D!! a>stats,D.1. )o"!? ce -ue La 0onne 0ans @e !ance +on scr"pt .etc.cron.dail#.a>stats &aunch update process ,con*ig0ohoarau.homelinu(.org?123 8uild main page? ,con*ig0ohoarau.homelinu(.org?123 8uild alldomains page? ,con*ig0ohoarau.homelinu(.org?123 8uild allhosts page? ,con*ig0ohoarau.homelinu(.org?123 8uild lasthosts page? ,con*ig0ohoarau.homelinu(.org?123 8uild un-no>nip page? ,con*ig0ohoarau.homelinu(.org?123 8uild allrobots page? ,con*ig0ohoarau.homelinu(.org?123 8uild lastrobots page? ,con*ig0ohoarau.homelinu(.org?123 8uild session page? ,con*ig0ohoarau.homelinu(.org?123 8uild urldetail page? ,con*ig0ohoarau.homelinu(.org?123 8uild urlentr# page? ? C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,update ,con*igdir0 C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,staticlin-s ,lang0*r ,output C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,staticlin-s ,lang0*r ,output0alldomains C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,staticlin-s ,lang0*r ,output0allhosts C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,staticlin-s ,lang0*r ,output0lasthosts C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,staticlin-s ,lang0*r ,output0un-no>nip C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,staticlin-s ,lang0*r ,output0allrobots C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,staticlin-s ,lang0*r ,output0lastrobots C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,staticlin-s ,lang0*r ,output0session C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,staticlin-s ,lang0*r ,output0urldetail C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC
Apache+PHP+MySQL
52
http;66www.%un"&.or'
,con*ig0ohoarau.homelinu(.org?123 ,staticlin-s ,lang0*r ,output0urlentr# 8uild urle(it page? C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,con*ig0ohoarau.homelinu(.org?123 ,staticlin-s ,lang0*r ,output0urle(it 8uild osdetail page? C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,con*ig0ohoarau.homelinu(.org?123 ,staticlin-s ,lang0*r ,output0osdetail 8uild un-no>nos page? C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,con*ig0ohoarau.homelinu(.org?123 ,staticlin-s ,lang0*r ,output0un-no>nos 8uild bro>serdetail page? C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,con*ig0ohoarau.homelinu(.org?123 ,staticlin-s ,lang0*r ,output0bro>serdetail 8uild un-no>nbro>ser page? C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,con*ig0ohoarau.homelinu(.org?123 ,staticlin-s ,lang0*r ,output0un-no>nbro>ser 8uild re*ererse page? C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,con*ig0ohoarau.homelinu(.org?123 ,staticlin-s ,lang0*r ,output0re*ererse 8uild re*ererpages page? C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,con*ig0ohoarau.homelinu(.org?123 ,staticlin-s ,lang0*r ,output0re*ererpages 8uild -e#phrases page? C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,con*ig0ohoarau.homelinu(.org?123 ,staticlin-s ,lang0*r ,output0-e#phrases 8uild -e#>ords page? C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,con*ig0ohoarau.homelinu(.org?123 ,staticlin-s ,lang0*r ,output0-e#>ords 8uild errors I page? C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,con*ig0ohoarau.homelinu(.org?123 ,staticlin-s ,lang0*r ,output0errors I 2I *iles built. "ain H5"& page is 'a>stats.ohoarau.homelinu(.org?123 .html'. &aunch update process ? C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,con*ig0*uni(.homelinu(.org?123 ,update ,con*igdir0 8uild main page? C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,con*ig0*uni(.homelinu(.org?123 ,staticlin-s ,lang0*r ,output 8uild alldomains page? C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,con*ig0*uni(.homelinu(.org?123 ,staticlin-s ,lang0*r ,output0alldomains 8uild allhosts page? C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,con*ig0*uni(.homelinu(.org?123 ,staticlin-s ,lang0*r ,output0allhosts 8uild lasthosts page? C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,con*ig0*uni(.homelinu(.org?123 ,staticlin-s ,lang0*r ,output0lasthosts 8uild un-no>nip page? C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,con*ig0*uni(.homelinu(.org?123 ,staticlin-s ,lang0*r ,output0un-no>nip 8uild allrobots page? C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,con*ig0*uni(.homelinu(.org?123 ,staticlin-s ,lang0*r ,output0allrobots 8uild lastrobots page? C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,con*ig0*uni(.homelinu(.org?123 ,staticlin-s ,lang0*r ,output0lastrobots 8uild session page? C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,con*ig0*uni(.homelinu(.org?123 ,staticlin-s ,lang0*r ,output0session 8uild urldetail page? C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,con*ig0*uni(.homelinu(.org?123 ,staticlin-s ,lang0*r ,output0urldetail 8uild urlentr# page? C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,con*ig0*uni(.homelinu(.org?123 ,staticlin-s ,lang0*r ,output0urlentr# 8uild urle(it page? C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,con*ig0*uni(.homelinu(.org?123 ,staticlin-s ,lang0*r ,output0urle(it 8uild osdetail page? C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,con*ig0*uni(.homelinu(.org?123 ,staticlin-s ,lang0*r ,output0osdetail 8uild un-no>nos page? C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,con*ig0*uni(.homelinu(.org?123 ,staticlin-s ,lang0*r ,output0un-no>nos 8uild bro>serdetail page? C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,con*ig0*uni(.homelinu(.org?123 ,staticlin-s ,lang0*r ,output0bro>serdetail 8uild un-no>nbro>ser page? C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,con*ig0*uni(.homelinu(.org?123 ,staticlin-s ,lang0*r ,output0un-no>nbro>ser 8uild re*ererse page? C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,con*ig0*uni(.homelinu(.org?123 ,staticlin-s ,lang0*r ,output0re*ererse 8uild re*ererpages page? C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,con*ig0*uni(.homelinu(.org?123 ,staticlin-s ,lang0*r ,output0re*ererpages 8uild -e#phrases page? C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,con*ig0*uni(.homelinu(.org?123 ,staticlin-s ,lang0*r ,output0-e#phrases
Apache+PHP+MySQL
53
http;66www.%un"&.or'
8uild -e#>ords page? C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,con*ig0*uni(.homelinu(.org?123 ,staticlin-s ,lang0*r ,output0-e#>ords 8uild errors I page? C.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi,bin.a>stats.plC ,con*ig0*uni(.homelinu(.org?123 ,staticlin-s ,lang0*r ,output0errors I 2I *iles built. "ain H5"& page is 'a>stats.*uni(.homelinu(.org?123 .html'. s" vous ave= une erreur 0u sty!e bash? .usr.local.linu(.>eb.a>stats,D.1.tools.a>stats/buildstaticpages.pl? .usr.bin.perl_"? bad interpreter? Aucun *ichier ou rpertoire de ce t#pe "! su%%"t 04.0"ter !e %"ch"er a>stats/buildstaticpages.pl et 0e v"rer !e \M aprCs perl #avec mcedit par e&e+p!e(. Ma"ntenant sous !es r.perto"res .usr.local.apache2.htdocs.a>stats.online et .usr.local.apache2.htdocs.a>stats.ohoarau @e +e retrouve avec 0es %"ch"ers ht+!* pour !e pre+"er !e %"ch"er 04entr.e est a>stats.*uni(.homelinu(.org?123 .html et pour !4autre a>stats.ohoarau.homelinu(.org?123 .html A part"r 04une pa'e web access"b!e sur votre serveur web #pa'e 04accue"! par e&e+p!e(* @4a" %a"t un !"en vers ces pa'es 0e stat"st"-ues. /! %au0ra .ventue!!e+ent ra@outer !e r.perto"re .usr.local.apache2.htdocs.a>stats.online 0ans une 0"rect"ve :irector# 0ans !e %"ch"er httpd.con* s" n.cessa"re. )o"!? -ue!-ues aperLus #non e&haust"%s(
Apache+PHP+MySQL
54
http;66www.%un"&.or'
Apache+PHP+MySQL
55
http;66www.%un"&.or'
Apache+PHP+MySQL
55
http;66www.%un"&.or'
done else hier0^e(pr [1our , 1^ *i longueur0^e(pr length [hier^ i* E [longueur ,eq C1C FA then hier0I[hier *i anneemois0^date UcNcm^ )eille0[anneemois[hier G 1e me dplace dans le rpertoire qui )a bien et 1e supprime les )ieu( *ichiers log cd .usr.local.apache.logs.*uni( rm ,* .usr.local.apache.logs.*uni(.S.log G rcupration des logs par *tp >get ,c *tp?..pri)*tp.pro.pro(ad.net.log/apache.>>>.*uni(.org/[)eille.log.g+ ,,user0login ,,pass>ord0motdepasse G 1e dcompresse l'archi)e et la renomme gun+ip >>>.*uni(.org/[)eille.log.g+ m) >>>.*uni(.org/[)eille.log >>>.*uni(.org.log G pour ne pas a)oir *aire le mnage des *ichiers logs sur le ser)eur *tp= on le ralise automatiquement *tp ,n XXla*in open pri)*tp.pro.pro(ad.net user login motdepasse cd log/apache binar# delete >>>.*uni(.org/[)eille.log.g+ b#e la*in G 1e lance l'anal#se des logs par >ebali+er G les rsultats se retrou)eront dans .usr.local.apache.logs.*uni( .usr.local.bin.>ebali+er .usr.local.apache.logs.*uni(.>>>.*uni(.org.log Pour r.a!"ser 0es stats avec a>stats* @4a" cr.. un %"ch"er .etc.a>stats.a>stats.>>>.*uni(.org.con* 0ans !e-ue! @4a" +o0"%". !es para+Ctres su"vants &og4ile0C.usr.local.apache.logs.*uni(.>>>.*uni(.org.logC $ite:omain0C>>>.*uni(.orgC HostAliases0C>>>.*uni(.orgC )o"!? !a co++an0e ? ra@outer ? !a %"n 0u scr"pt pour !ancer une ana!yse par a>stats .usr.local.linu(.>eb.a>stats,D.1.tools.a>stats/buildstaticpages.pl ,con*ig0>>>.*uni(.org ,update ,lang0*r ,dir0.usr.local.apache2.htdocs.a>stats.*uni( ,a>statsprog0.usr.local.linu(.>eb.a>stats,D.1.>>>root.cgi, bin.a>stats.pl Les %"ch"ers r.su!tats vont se retrouver sous .usr.local.apache2.htdocs.a>stats.*uni( P!acer +a"ntenant ce scr"pt sous .etc.cron.dail# pour -u4"! so"t appe!. tous !es @ours #? 4h 0u +at pour une Man0r"va par 0.%aut(.
Apache+PHP+MySQL
52
http;66www.%un"&.or'
..con*igure ,,pre*i(0.usr.local.htdig ,,>ith,cgi,bin,dir0.usr.local.apache.cgi,bin ,,>ith,image, dir0.usr.local.apache.htdocs.htdig ,,>ith,search,dir0.usr.local.apache.htdocs.htdig Me ne passa"s pas cette .tape avec !a Man0raBe 2.1 pour une so+bre h"sto"re 0e hea0ers 1++. Pu"s ma-e Kt en%"n en tant -ue root ma-e install 1e!a va +ettre en p!ace un %"ch"er htsearch 0ans !e r.perto"re cgi,bin 04apache et ra@oute= un scr"pt 0e recherche sous !e r.perto"re htdocs.htdig 04apache 0ont on verra !4ut"!"t. p!us tar0. Les b"na"res sont sous .usr.local.htdig.bin* !e %"ch"er 0e con% sous .usr.local.htdig.con* et !es bases 0e 0onn.es sous .usr.local.htdig.db.
12.3Con*iguration
n trouvera !e %"ch"er 0e con%"'urat"on sous .usr.local.htdig.con* #.etc.htdig pour une "nsta!!at"on par rp+(* "! se no++e htdig.con** vo"c" !es !"'nes ? +o0"%"er .ventue!!e+ent G d*inition de l'emplacement of se trou)eront les bases de donnes sur le site intranet G attention= elles peu)ent gtre asse+ grosses= pour in*o pour mon site intranet contenant mes pages G >>>.*uni(.org les bases *ont un total de 12"o < G a)ec une install par rpm le chemin est .)ar.lib.htdig database/dir? .usr.local.htdig.db G :*inition de l'adresse partir de laquelle htdig doit construire ses bases de donnes G mette+ ici l';7& de )otre intranet G )ous pou)e+ )entuellement mettre l';7& de n'importe quel site sur internet start/url? http?..>>>.*uni(.-er)ao.*r. G )otre site peut contenir des liens )ers des sites e(trieurs= cette )ariable permet de G limiter la rechercher des pages de )otre domaine limit/urls/to?L [\start/url] G :*inition des pages ne pas inde(er= ce sont donc celles qui sont dans G http?..>>>.*uni(.-er)ao.*r.cgi,bin par e(emple ici
Apache+PHP+MySQL
53
http;66www.%un"&.or'
e(clude/urls?cL
.cgi,bin. .cgi
G *ichiers qui seront ignors pendant l'inde(ation bad/e(tensions? .>a) .g+ .+ .sit .au .+ip .tar .hq( .e(e .com .gi* Q .1pg .1peg .ai** .class .map .ram .tg+ .bin .rpm .mpg .mo) .a)i G adresse email de l'administrateur maintainer? oli)ierT-er)ao.*r G Par d*aut un e(trait de chaque page est archi) dans la base= )ous pou)e+ limiter G )idemment cette taille ma(/head/length? 1IIII G si )ous rcupre+ des pages sur internet Kinde(ation de sites sur internetL )ous pou)e+ aussi G limiter la taille des pages rcuprer ma(/doc/si+e?cL 2IIIII G G "ost people e(pect some sort o* e(cerpt in results. 8# de*ault= i* the G search >ords aren't *ound in conte(t in the stored e(cerpt= htsearch sho>s G the te(t de*ined in the no/e(cerpt/te(t attribute? G KMone o* the search >ords >ere *ound in the top o* this document.L G 5his attribute instead >ill sho> the top o* the e(cerpt. G no/e(cerpt/sho>/top? true G G :epending on #our needs= #ou might >ant to enable some o* the *u++# search G algorithms. 5here are se)eral to choose *rom and #ou can use them in an# G combination #ou *eel com*ortable >ith. 6ach algorithm >ill get a >eight G assigned to it so that in combinations o* algorithms= certain algorithms get G pre*erence o)er others. Mote that the >eights onl# a**ect the ran-ing o* G the results= not the actual searching. G 5he a)ailable algorithms are? G e(act G endings G metaphone G pre*i( G sounde( G s#non#ms G 8# de*ault onl# the Ce(actC algorithm is used >ith >eight 1. G Mote that i* #ou are going to use the endings= metaphone= sounde(= G or s#non#ms algorithms= #ou >ill need to run ht*u++# to generate G the databases the# use. G search/algorithm? e(act?1 s#non#ms?I.! endings?I.1 G G 5he *ollo>ing are the templates used in the builtin search results G 5he de*ault is to use compiled )ersions o* these *iles= >hich produces G slightl# *aster results. Ho>e)er= uncommenting these lines ma-es it G )er# eas# to change the *ormat o* search results. G $ee Xhttp?..>>>.htdig.org.hts/templates.html *or more details. G G template/map? &ong long [\common/dir].long.html Q G $hort short [\common/dir].short.html G template/name? long G G 5he *ollo>ing are used to change the te(t *or the page inde(. G 5he de*aults are 1ust boring te(t numbers. 5hese images spice G up the result pages quite a bit. K4eel *ree to do >hate)er= thoughL G ne(t/page/te(t? Ximg src0C.htdig.buttonr.gi*C border0CIC align0CmiddleC >idth0C3IC height0C3IC alt0Cne(tCR
Apache+PHP+MySQL
59
http;66www.%un"&.or'
no/ne(t/page/te(t? pre)/page/te(t? Ximg src0C.htdig.buttonl.gi*C border0CIC align0CmiddleC >idth0C3IC height0C3IC alt0Cpre)CR no/pre)/page/te(t? page/number/te(t? 'Ximg src0C.htdig.button1.gi*C border0CIC align0CmiddleC >idth0C3IC height0C3IC alt0C1CR' Q 'Ximg src0C.htdig.button2.gi*C border0CIC align0CmiddleC >idth0C3IC height0C3IC alt0C2CR' Q 'Ximg src0C.htdig.button3.gi*C border0CIC align0CmiddleC >idth0C3IC height0C3IC alt0C3CR' Q 'Ximg src0C.htdig.button .gi*C border0CIC align0CmiddleC >idth0C3IC height0C3IC alt0C CR' Q 'Ximg src0C.htdig.button!.gi*C border0CIC align0CmiddleC >idth0C3IC height0C3IC alt0C!CR' Q 'Ximg src0C.htdig.buttonH.gi*C border0CIC align0CmiddleC >idth0C3IC height0C3IC alt0CHCR' Q 'Ximg src0C.htdig.buttonD.gi*C border0CIC align0CmiddleC >idth0C3IC height0C3IC alt0CDCR' Q 'Ximg src0C.htdig.buttonJ.gi*C border0CIC align0CmiddleC >idth0C3IC height0C3IC alt0CJCR' Q 'Ximg src0C.htdig.button'.gi*C border0CIC align0CmiddleC >idth0C3IC height0C3IC alt0C'CR' Q 'Ximg src0C.htdig.button1I.gi*C border0CIC align0CmiddleC >idth0C3IC height0C3IC alt0C1ICR' G 5o ma-e the current page stand out= >e >ill put a border arround the G image *or that page. G no/page/number/te(t? 'Ximg src0C.htdig.button1.gi*C border0C2C align0CmiddleC >idth0C3IC height0C3IC alt0C1CR' Q 'Ximg src0C.htdig.button2.gi*C border0C2C align0CmiddleC >idth0C3IC height0C3IC alt0C2CR' Q 'Ximg src0C.htdig.button3.gi*C border0C2C align0CmiddleC >idth0C3IC height0C3IC alt0C3CR' Q 'Ximg src0C.htdig.button .gi*C border0C2C align0CmiddleC >idth0C3IC height0C3IC alt0C CR' Q 'Ximg src0C.htdig.button!.gi*C border0C2C align0CmiddleC >idth0C3IC height0C3IC alt0C!CR' Q 'Ximg src0C.htdig.buttonH.gi*C border0C2C align0CmiddleC >idth0C3IC height0C3IC alt0CHCR' Q 'Ximg src0C.htdig.buttonD.gi*C border0C2C align0CmiddleC >idth0C3IC height0C3IC alt0CDCR' Q 'Ximg src0C.htdig.buttonJ.gi*C border0C2C align0CmiddleC >idth0C3IC height0C3IC alt0CJCR' Q 'Ximg src0C.htdig.button'.gi*C border0C2C align0CmiddleC >idth0C3IC height0C3IC alt0C'CR' Q 'Ximg src0C.htdig.button1I.gi*C border0C2C align0CmiddleC >idth0C3IC height0C3IC alt0C1ICR' G local )ariables? G mode? te(t G e)al? Ki* Keq >indo>,s#stem '(L Kprogn Ksetq *ont,loc-,-e#>ords Klist 'KC_G.SC . *ont,loc-,-e#>ord,*aceL 'KC_Ea,+A,WFE_ ?FUC . *ont,loc-,*unction,name,*aceL 'KCEU[FS?C . *ont,loc-,comment,*aceL LL K*ont,loc-, modeLLL G end? A noter -u4avec une "nsta!!at"on par rp+ !e %"ch"er est auto+at"-ue+ent rense"'n. 04aprCs !e %"ch"er 0e con%"'urat"on 04Apache. n trouvera en %"n 0e %"ch"er G Automaticall# set up b# htdig 7P"= *rom #our current Apache httpd.con*... G Oeri*# and con*igure these= and set maintainer abo)e= be*ore running G .usr.bin.rundig. G $ee .usr.doc.htdigS.attrs.html *or descriptions o* attributes.
Apache+PHP+MySQL
2,
http;66www.%un"&.or'
G 5he ;7&KsL >here htdig >ill start. $ee also limit/urls/to abo)e. start/url? http?..asteri(.-er)ao.*r G 5his ma-es sure that >e don't spider the >eb local/urls/onl#? true G 5hese attributes allo> inde(ing ser)er )ia local *iles#stem rather than H55P. local/urls? http?..asteri(.-er)ao.*r.0.)ar.>>>.html. local/user/urls? http?..asteri(.-er)ao.*r.0.home.=.public/html. A +o0"%"er se!on votre convenance. n va +a"ntenant e&p!orer !e s"te web et r.cup.rer !es pa'es en tapant .usr.local.htdig.bin.htdig ,i)s Mote ? 9aper .usr.bin.htdig ,i)s pour une "nsta!! par rp+ Qe vous "n-u".te= pas s" votre s"te est .cr"t en PHP* La +arche auss" trCs b"en. L4opt"on ,i per+et 04e%%acer !es recherches pr.c.0entes et 0e repart"r 0e =.ro* !4opt"on ,) est !4opt"on JverbeuseJ. n cr.e ? pr.sent !4"n0e& en tapant ; .usr.local.htdig.bin.htmerge ,)s Pour "n%o avec !4opt"on ,m !es tab!es sont s"+p!e+ent +"ses ? n"veau. Pour une "nsta!!at"on avec rp+ !a synta&e est un peu 0"%%.rente* vous 0eve= taper; .usr.bin.htmerge ,) ,m .etc.htdig.htdig.con* 1e sera !a +G+e co++an0e ? taper pour une +"se ? @our.
12. ;tilisation
A part"r 0e votre nav"'ateur pr.%.r. au n"veau 0e !4>FL tape=; ;7&? http?..>>>.*uni(.-er)ao.*r.htdig.search.html #Pour une "nsta!! avec rp+* vous pouve= o+ettre !e search.html(
Apache+PHP+MySQL
21
http;66www.%un"&.or'
Les pa'es sont c!ass.es su"vant -u4e!!es co!!ent p!us ou +o"ns avec !a recherche* +a"s vous pouve= .ventue!!e+ent +o0"%"er !e type 0e tr" # $ort b#(. Pour "n%o on ut"!"se un +o0C!e 0e pr.sentat"on 0es r.su!tats se trouvant sous .usr.local.htdig.common #.usr.share.htdig pour une "nsta!!at"on avec rp+( avec header.html -u" pr.cC0e !a !"ste 0es r.su!tats *ooter.html -u" su"t !a !"ste 0es r.su!tats nomatch.html -uan0 on ne trouve r"en s#nta(.html en cas 04erreur 0e synta&e >rapper.html entGte et p"e0 0e pa'e
Apache+PHP+MySQL
22
http;66www.%un"&.or'