You are on page 1of 72

Monter son serveur web avec Apache 2.4.3 + PHP5.4.11 + MySQL 5.5.

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

1

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

2

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

136,46,4 )2.1 phpMyA0+"n 2.5.5.

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

3

http;66www.%un"&.or'

)1.co+presse !4arch"ve.1 awstat 2..at"on au pub!"c • 0e +o0"%"er cette cr. 0ans un env"ronne+ent chroot. .1 Installation de "#$%& .cur"s.perto"re 0e trava"!* on 0.. .3 avec 'est"on 0e PHP !.e !e r.19* MySQL 3.23. tar ()*+ m#sql..!.net* et en%"n "#$%& * ? !4>FL www. La 0ern"Cre vers"on 0e ce 0ocu+ent est t.e sur !a co+p"!at"on co+p!Cte 0e ces app!"cat"ons par cons. Installation .!.1 Compilation et installation :ans !e r.cupCre ensu"te PHP ? !4>FL www.66creat"veco++ons.1.-uent e!!e 0evra"t conven"r pour toutes !es 0"str"but"ons 0e !"nu&.3.46.33* 8: 1.+ys-!.3p!1 et phpMyA0+"n 2. Par a"!!eurs ce 0ocu+ent ne peut pas Gtre ut"!"s..tar.or'6!"censes6byAsa63.!. )ous 0eve= r.14* PHP 4.perto"re m#sql.!.%un"&.or' * on r.!.cr"tes 0ans ce 0ocu+ent..2'* e!!e est bas.1 )1..g+ 1e!a cr.sente !4"nsta!!at"on et !a con%"'urat"on 04 Apache 2.26....ta"! 0e !a !"cence se trouve sur !e s"te http.4 et Fa@out 0u para'raphe PHP et L:AP* +"se ? @our 0e weba!"=er Passa'e ? Apache 1. 256. 3 Présentation 1ette pa'e pr.66www. 1e 0ocu+ent est sous !"cence 1reat"ve 1o++ons Attr"but"onAShareA!"Be 3.char'eab!e ? !<>FL http.2'. 1r.3 )1.!.1.php.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.sente !<"nsta!!at"on* !a con%"'urat"on et !<ut"!"sat"on 0<Apache 2* MySQL et PHP sous L"nu&.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. Pour !4ana!yser 0es !o's 04Apache* reporte= vous au para'raphe correspon0ant..or'. >nporte0* !e 0. #v2.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.6.1. Passa'e ? PHP4.3.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''.6!e'a!co0e.su+er* vous Gtes !"bres • 0e repro0u"re* 0"str"buer et co++un"-uer cette cr.2'* sur +a Man0r"va @4a" 0u "nsta!!er !e pacBa'e libncurses.2 )1.11 et "#$%& !.23 .cup.apache.4p!1* Apache 1.co+.at"on su"vant !es con0"t"ons su"vantes..or' .rer pr. Pour +ettre en p!ace un serveur web s.36126. Pour +ettre en p!ace un +oteur 0e recherche* reporte= vous au para'raphe correspon0ant.de)el Apache+PHP+MySQL 4 http.5( 2261. • Paternité H )ous 0eve= c"ter !e no+ 0e !4auteur or"'"na! 0e !a +an"Cre "n0"-u..* reporte= vous au para'raphe correspon0ant.%un"&.66www...at"on 0u 0ocu+ent 2 Préambule 1e 0ocu+ent pr.3. 1e 0ocu+ent vous est %ourn" J0ans !4. Pour r.36.a!ab!e+ent !es sources 04 Apache ? !4>FL www. 0ans un but co++erc"a! sans !e consente+ent 0e son auteur.

data 14a" 0u cr. n tape +a"ntenant en te+ps -ue root.m#sql.basedir0.local.m#sql A .m#sqladmin .m#sql.66www.cutab!es sont "nsta!!.usr..so.*iles.usr.local.m#sqladmin .local. 5his is strongl# recommended *or production ser)ers.$67 < 5o do so= start the ser)er= then issue the *ollo>ing commands? .usr.or' .bin et !e serveur m#sqld sous .!.pass>ord' Alternati)el# #ou can run? .a!ab!e+ent ln . Pu"s ma-e La co+p"!at"on est re!at"ve+ent !on'ue +G+e sur une +ach"ne pu"ssante.so )o"!? !e r.s par 0.run.u root pass>ord 'ne>.su!tat obtenu Installing "#$%& s#stem tables.local.usr.pass>ord' .m#sql.libe(ec.m#sql Apache+PHP+MySQL 5 http.local.local.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.test. 23 5o start m#sqld at boot time #ou ha)e to cop# support.etc..user0m#sql .m#sql.pl .so ha/*ederated(. Les b"b!"othC-ues vont se trouver sous .ld.bin.m#sql.m#sql.!.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.usr.usr.er !e !"en su"vant pr.local.m#sqld/sa*e B @ou can test the "#$%& daemon >ith m#sql.-er)ao..2'.ser)er to the right place *or #our s#stem P&6A$6 76"6"867 52 $65 A PA$$927: 427 5H6 "#$%& root .h tahiti.s ha/*ederated.usr.m#sql..datadir0.m#sql.Sous ubuntu ce n4est pas n.%aut sous .bin.usr. :ans !e r.usr. @ou can start the "#$%& daemon >ith? cd .usr. 23 4illing help tables..m#sql/install/db .local. ma-e install Les e&.%un"&. cma-e ...bin.. $ee the manual *or more instructions.bin.*r pass>ord 'ne>. sh .local.tape su"vante s" vous up'ra0e= "#$%& .scripts.lib* ra@oute= cette !"'ne 0ans !e %"ch"er .cessa"re.perto"re 0e "#$%&* on tape a!ors.local.u root .

)ar.po>er.local.m#sql.lib.m#sqld? Can't read dir o* '.de).m#.' K6rrcode? 13L .m#sqld? Can't create.root.es par 0.d .cn* chmod H .cd .)ar.tmp.m#sql.ta"re cho>n .m#sql.null .etc.local.)ar.etc. chmod D!! .%aut sous .m#sql.m#.medium.>rite to *ile '.7 m#sql .local.m#sql par 0.m#.libe(ec.*r.root.m#sqlbug script< Pour "n%o !es bases sont "nsta!!.er !e 'roupe m#sql groupadd m#sql Pu"s !4ut"!"sateur m#sql 0u 'roupe m#sql useradd m#sql .libe(ec.)ar.usr.66www.pl Please report an# problems >ith the . S" ce n4est pas 0.7 m#sql . on 0onne !es 0ro"ts -u" vont b"en cho>n root?s#s .su!tat 1II'2! 1J?!D?!1 m#sqld/sa*e &ogging to '.)ar.cn* 0ans !e %"ch"er .local.m#.lib.*iles.c C"#$%& $er)erC .sbin.lib.usr.m#sql n "nsta!!e +a"ntenant !e %"ch"er 0e con%"'urat"on cp support.local.m#sql G set datadir to the location o* #our data director# datadir0. .m#sql "0e+ pour !e 'roupe chgrp .nologin Les bases se trouvent par 0.lib.)ar.m#sql Avec cette 0ern"Cre vers"on m#sql re%usa"t 0e se !ancer* 0ans !e %"ch"er 04erreur #sous .g m#sql .%aut sous .)ar.usr.usr.usr.cn* au n"veau 0e Em#sqldF on ra@outera !es !"'nes su"vantes G set basedir to #our installation path basedir0.lib.m#sql on va .test A perl m#sql.m#sql.test.)ar.etc.scripts.%un"&.bin.local.m#sqld/sa*e B 1e -u" va 0onner co++e r. 1II'2! 1J?!D?!1 m#sqld/sa*e $tarting m#sqld daemon >ith databases *rom .run.m#sql.local.usr.@? %a"t cr.data.err'.usr.cn* Pu"s on !ance !e serveur en tapant.cn* .s .lib.m#.tmp.%aut( @4ava"s I 1II2 12?1J?13 m#sqld started .A' K6rrcode? 13L Apache+PHP+MySQL 5 http.-er)ao.m#sql.'a!e+ent +ettre !es 0ro"ts ? 255 s"non seu! root aura accCs ? !a base MySQL.usr.local.etc.m#sql* m#sql 0o"t en Gtre propr".ibq%da.lib.or' .

d.m#sql.err 13I2I2 12?!1?21 m#sqld/sa*e $tarting m#sqld daemon >ith databases *rom .ser)erF on .init.m#sqld pu"s au n"veau 0e Em#sqld/sa*eF on ra@oute soc-et0.local.co++enter !a !"'ne su"vante tmpdir0.data .tmp Ma"ntenant sous Man0r"va on cop"e !e %"ch"er support/*iles.1.lib au n"veau 0e EmanagerF on .cr"t de*ault.*iles. au n"veau 0e Em#sql.%un"&.support.m#sql.tmp S" vous obtene= !4erreur su"vante 0ans !e %"ch"er .inde(' not *ound K6rrcode? 13L 13I2I2 12?!1?21 E67727F Aborting c4est un prob!C+e 0e per+"ss"on -u4on peut r.bin.m#sql.m#sql n 0onne !es 0ro"ts 04e&.perto"re te+pora"re vous pouve= 0.d.m#sql.etc.!I.rc. p!us haut !".tat 0e +arche 3* 4 et 5* on tapera ensu"te ch-con*ig ..m#sql.usr.init.ser)er.66www.m#sqld.data..rc.m#sql. au r.0er ? votre serveur "nternet* vous pouve= pr.le)el 3 ! m#sql on Apache+PHP+MySQL 2 http.c"ser !4a0resse /P 0e votre serveur.m#sql. Kn a0+ettant -ue votre poste so"t connect.seau pu"sse y acc.usr.local.bin.2 &ancement automatique /! %aut 04abor0 +o0"%"er !e %"ch"er ..)ar.ser)er.7 m#sql . 9ou@ours 0ans !e +G+e %"ch"er s" vous ave= !4erreur +ent"onn.nom-de-machine.etc.so!u ce!a en tapant avant 0e !ancer m#sqld/sa*e e(port 5"P:I70.d.t..local.init.co++enter !a !"'ne b"n0Aa00ress et 0e ra@outer !4a0resse /P 0e votre serveur.usr.lib. pr.local au !"eu 0e .d et on !e reno++era m#sql cp .sh sous .socA noter -ue vous pouve= pr.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.cn* -u" a .m#sqld? 4ile '.0er* pour ce!a ? !a %"n 0u %"ch"er +y.sbin.local.c"ser !4a0resse /P !oca!e 0e votre serveur pour -ue seu!s !es postes 0e votre r.m#sql Pour un !ance+ent auto+at"-ue 0e "#$%& ? !4.a!ab!e+ent cr.local.or' .usr.!. sur "nternet et -ue vous vou!"e= pas -ue n4"+porte -u" pu"sse acc.path0.m#.sou0re en tapant cho>n .m#sql.rc.usr.d.1.cn% "! su%%"t 0e 0.usr.d.)ar.cr"ra basedir0.etc.cut"on ? ce %"ch"er chmod D!! .m#sql .m#sql.etc.sh .

Change the root pass>ordP E@. $etting the root pass>ord ensures that nobod# can log into the "#$%& root user >ithout the proper authorisation. n 0onne !es 0ro"ts 04e&.es.d m#sql de*aults ...init.rc.MMIMN A&& PA75$ 24 5HI$ $C7IP5 I$ 76C2""6M:6: 427 A&& "#$%& $67O67$ IM P72:. I* #ou')e 1ust installed "#$%&= and #ou ha)en't set the root pass>ord #et= the pass>ord >ill be blan-= so #ou should 1ust press enter here..init..66www.%un"&. $uccess< Mormall#= root should onl# be allo>ed to connect *rom 'localhost'.. 8# de*ault= a "#$%& installation has an anon#mous user= allo>ing an#one to log into "#$%& >ithout ha)ing to ha)e a user account created *or them.tat 0e +arche .$6< P&6A$6 76A: 6ACH $56P CA764.local..1.C5I2M .m#sql/secure/installation vo"!? !e r. @ou should remo)e them be*ore mo)ing into a production en)ironment.cut"on ? ce %"ch"er chmod D!! . 5his ensures that someone cannot guess at the root pass>ord *rom the net>or-. 7emo)e anon#mous usersP E@. 6nter current pass>ord *or root Kenter *or noneL? 23= success*ull# used pass>ord= mo)ing on.bin.su!tat M256? 7. 5his is intended onl# *or testing= and to ma-e the installation go a bit smoother.usr..nF @ .or' .&&@< In order to log into "#$%& to secure it= >e'll need the current pass>ord *or the root user..Kt un arrGt ? !4.3 "ise en place des utilisateurs La pre+"Cre chose ? %a"re est 0e +ettre un +ot 0e passe pour root pour !4accCs ? !4a0+"n"strat"on 0es bases 0e 0onn.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(. s-ipping.etc.m#sql.d.le)el I12H m#sql o** Sous ubuntu n cop"e !e %"ch"er sous .m#sql Pour un !ance+ent auto+at"-ue on tape update.nF @ .etc. .. La co++an0e ? taper en tant -ue root est.nF n .* 1* 2 et 5 ch-con*ig . $uccess< 8# de*ault= "#$%& comes >ith a database named 'test' that an#one can Apache+PHP+MySQL 3 http. :isallo> root login remotel#P E@. @ou alread# ha)e a root pass>ord set= so #ou can sa*el# ans>er 'n'.

nF @ .or its a**iliates. Commands end >ith A or Qg. :ropping test database.2' $ource distribution Cop#right KcL 2III= 2I12= 2racle and.P:A56=:6&656=C76A56=:72P 2M test. 5#pe 'Qc' to clear the current input statement. m#sqlR A pr.nF @ .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.m#sql.. All done< I* #ou')e completed all o* the abo)e steps= #our "#$%& installation should no> be secure.rent 0e ce!u" 0u !o'"n. 5han-s *or using "#$%&< Le +ot 0e passe peut Gtre 0"%%. $uccess< .access. . $uccess< Cleaning up.S 52 'oli)ier'T'localhost' R I:6M5I4I6: 8@ 'mot.*r I:6M5I4I6: b# 'mot.. 2racle is a registered trademar.. .usr. $uccess< 7eloading the pri)ilege tables >ill ensure that all changes made so *ar >ill ta-e e**ect immediatel#. .er un ut"!"sateur toto -u" n4aura accCs -u4? !a base test avec certa"nes %onct"ons c"t.sent on va entrer !4ut"!"sateur oli)ier -u" sera un super ut"!"sateur avec !es +G+es 0ro"ts -ue root.p m#sql 6nter pass>ord? 9elcome to the "#$%& monitor. All rights reser)ed.passe'A Apache+PHP+MySQL 9 http...o* 2racle Corporation and.S 52 totoTasteri(. 2ther names ma# be trademar-s o* their respecti)e o>ners.es c"A0essous ? part"r 0e !a +ach"ne aster"&.. 7emo)ing pri)ileges on test database.passe' 9I5H N7AM5 2P5I2MA pour cr. m#sqlR N7AM5 A&& P7IOI&6N6$ 2M S.. 5his is also intended onl# *or testing= and should be remo)ed be*ore mo)ing into a production en)ironment.. 7eload pri)ilege tables no>P E@.bin.de. 7emo)e test database and access to itP E@..de..u root . 5#pe 'helpA' or 'Qh' *or help.local.!.or its a**iliates.m#sql . Ma"ntenant on va cr..%r on tapera m#sqlR N7AM5 $6&6C5=IM$675=..66www.e m#sql contenant !es "n%os sur !es ut"!"sateurs et !eurs 0ro"ts.or' . @our "#$%& connection id is 1 $er)er )ersion? !.%un"&.

U V in*ormation/schema V V m#sql V V per*ormance/schema V V test V Apache+PHP+MySQL 1. http.. /! 0o"t 04abor0 se connecter.m#sql....66www.u oli)ier . ..o* 2racle Corporation and.2' $ource distribution Cop#right KcL 2III= 2I12= 2racle and.'a!e+ent 0e pr...usr....s" vous tape= m#sqlR $6&6C5 S 472" userA vous voye= chacun 0es 0ro"ts attr"bu...... Création de tables Ma"ntenant notre ut"!"sateur o!"v"er va cr..or its a**iliates..IJ secL Pour -u"tter m#sqlRquit .II secL Le no+bre 0e cha+p var"e en %onct"on 0e !a vers"on 0e m#sql......er une tab!e -u" nous serv"ra p!us tar0 pour nos e&p.. m#sqlR Pour vo"r !a !"ste 0es bases 0e 0onn..1....es 0"spon"b!es* on tapera...U V :atabase V U.c"ser !es 0ro"ts en %onct"on 0e ces co!onnes avec cette co++an0e m#sqlR IM$675 IM52 user .%un"&.m#sql ... 5#pe 'Qc' to clear the current input statement.R OA&...bin. 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&. Commands end >ith A or Qg.. .passe'L= .$H P7IOI&6N6$A %uer# 23= I ro>s a**ected KI.or its a**iliates..local.p 6nter pass>ord? 9elcome to the "#$%& monitor.R '@'='@'='@'='@'='@'='@'=' #.!.( @'='@'='@'='@'='@'='@'='@'= @'='@'='@'='@'='@'=' '=' '=' '=' '='I'='I'='I'='I'LA %uer# 23= 1 ro> a**ected KI. 2ther names ma# be trademar-s o* their respecti)e o>ners. 5#pe 'helpA' or 'Qh' *or help. All rights reser)ed....or' .s ? vos ut"!"sateurs* vous ave= !a poss"b"!"t.de. m#sqlR $H29 :A5A8A$6$A U..r"+entat"ons avec Apache. @our "#$%& connection id is 2 $er)er )ersion? !.6$K'localhost'='oli)ier'=PA$$927:K'mot. 2racle is a registered trademar.

.II secL n va ut"!"ser +a"ntenant cette base 0e 0onn...........$6 essai :atabase changed 1o++e !a base v"ent 04Gtre cr.U....II secL La tab!e nouve!!e+ent cr.........es essai..U..............................R LA %uer# 23= I ro>s a**ected KI.......U.U............&& V V V prenom V )archarK2IL V @6$ V V M..U....&& V V U.....U V 4ield V 5#pe V Mull V 3e# V :e*ault V6(tra V U.R date OA7CHA7K2IL= ...II secL Pour notre pre+"Cre e&e+p!e ApacheUPHPU"#$%&* on va cr.U.....II secL Pour notre 0eu&"C+e e&e+p!e ApacheUPHPU"#$%&* on cr..... m#sqlR C76A56 5A8&6 re* K ......or' ...................R os OA7CHA7K2IL= Apache+PHP+MySQL 11 http..U....U..U.era !a tab!e su"vante...U V nom V )archarK2IL V @6$ V V M......R host OA7CHA7K2IL= ..U ro>s in set KI=II secL n va +a"ntenant cr..U V coord V U.....R nom OA7CHA7K2IL= .......... m#sqlR :6$C7I86 coordA U. m#sqlR $H29 5A8&6$A 6mpt# set KI...............66www.....U.....R prenom OA7CHA7K2IL= .. m#sqlR C76A56 :A5A8A$6 essaiA %uer# 23= 1 ro> a**ected KI..U.U V 5ables in essai V U.........%un"&..U.....e apparaNt b"en... Pour avo"r !e 0..............R email OA7CHA7K3IL ....e* e!!e ne cont"ent aucune tab!e* pour s4en conva"ncre "! su%%"t 0e taper......&& V V V email V )archarK3IL V @6$ V V M....I3 secL Metons un coup 04oe"! +a"ntenant sur !es tab!es 0"spon"b!es.....U...U 1 ro> in set KI.R ip OA7CHA7K1!L= ......U... m#sqlR $H29 5A8&6$A U.U....er !a tab!e su"vante.er une base 0e 0onn...... m#sqlR C76A56 5A8&6 coord K ........ta"! 0e cette tab!e* on tapera.U 3 ro>s in set KI.U..e m#sqlR ..

.m#sqld restart .bin.d.g+ 1e!a va cr.etc. Commands end >ith A or Qg.R LA %uer# 23= I ro>s a**ected KI.2 Installation d'Apache Pour Apache* on 0.+arre !e 0ae+on en 0.s-ip.u root 9elcome to the "#$%& monitor. 2racle is a registered trademar.$H P7IOI&6N6$A %uer# 23= I ro>s a**ected KI=I secL on re!ance ensu"te !e 0ae+on m#sqld . tar ()*+ httpd..user0m#sql .m#sql.3.v"ter 04Gtre p"rat.m#sql m#sql .qa V grep .I! secL K!!e cont"en0ra !es "n%or+at"ons sur !es v"s"teurs 0u s"te.sarch"ve en tapant. m#sqlR 4&.or its a**iliates.de.passe'L 9H676 user0CrootCA %uer# 23= ro>s a**ected KI=IH secL 7o>s matched? Changed? 9arnings? I n pren0 en co+pte !es chan'e+ent en tapant !a co++an0e su"vante .init.2'.2..P:A56 user $65 pass>ord0PA$$927:K'nou)eau.usr.net>or-ing B Ma"ntenant on +o0"%"e !e +ot 0e passe en se connectant ? !a base m#sql .3.or its a**iliates.66www. 5#pe 'helpA' or 'Qh' *or help. sur votre systC+e on va !e suppr"+er* on va 04abor0 suppr"+er !es +o0u!es PHP* pour v.log $ource distribution Cop#right KcL 2III= 2I12= 2racle and. .1.bin.. rpm .i php S" vous obtene= par e&e+p!e Apache+PHP+MySQL 12 http. 2ther names ma# be trademar-s o* their respecti)e o>ners.er !e r."n"t"a!"ser "! %aut stopper !e serveur . A pr.usr. .m#sqld stop n re0.rab!e( .%un"&.d.coute 0u r. .local.! Perte du mot de passe d'administrateur m#sqld S" vous ave= per0u !e +ot 0e passe root pour !e r.!.s-ip.etc.2.tables .init.local.@? "nsta!!. m#sqlR.m#sqld .m#sql.or' .tar.seau #a%"n 04.R page OA7CHA7K3IL . All rights reser)ed.o* 2racle Corporation and.sent pour -u"tter tape= s"+p!e+ent quit .sact"vant !4"0ent"%"cat"on et !4.r"%"er .mot. @our "#$%& connection id is 1 $er)er )ersion? !. 5#pe 'Qc' to clear the current input statement.perto"re httpd.grant. ? ce +o+ent oO "#$%& est vu!n. Avant 04a!!er p!us !o"n* s" Apache est 0.

util.)ersion apache.)ersion php.sent .a!ab!e+ent "nsta!!er !es out"!s apr et apr.apache. /! est poss"b!e -ue pour 0es ra"sons 0e 0.%un"&.66www.or' .perto"re apr.1.log.local. .or'..util -u4on t.>ith.char'era sur !e s"te apr.lib on 0.tar.)ersion php.!.con*igure .)ar. rpm . n 0. .php.g+ ce!a 0onne !e r..qa V grep .con*.1.usr. Suppr"+e= .du.co+presse !a pre+"Cre arch"ve en tapant tar ()*+ apr.etc.apr0/chemin-absolu/apr.ventue!!e+ent !es r.common.pac-age Ma"ntenant on va suppr"+er Apache* pour v.)ersion mod/php.apr.H.)ersion php.0"te +a"ntenant !e %"ch"er .tar.i apache S" on obt"ent par e&e+p!e apache.1.con*igure ma-e pu"s en tant -ue root ma-e install on .gd..e nom.)ersion apache.)ersion apache.httpd.1.)ersion so"t au +o"ns suppr"+.g+ ce!a 0onne !e r.pen0ances -ue vous aye= un re%us 0e 0.1.H 0ans !e-ue! on tape success"ve+ent .con* et on ra@oute !a !"'ne su"vante .ldap.common. pour -u4"! n4y a"t pas 0e con%!"t.so.r"%"er s4"! est pr.httpd et .etc.)ar.>>>* .!.)ersion Suppr"+e= !es.perto"re apr.1 on y tape success"ve+ent . /! %au0ra pr.!.co+presse !a 0eu&"C+e arch"ve en tapant tar ()*+ apr.H ma-e pu"s en tant -ue root ma-e install ldcon*ig Apache+PHP+MySQL 13 http.1.perto"res su"vants . .modules.)ersion n suppr"+e en tapant rpm .util.ld.s"nsta!!at"on* ce n4est pas 'rave* !4"+portant est -ue !e pacBa'e apache.

bin..-erberos sont ut"!es pour !4ut"!"sat"on 0es +o0s %reep!ayer 0e !a %reebo& A !es opt"ons .apache2.cessa"res pour php"#Admin e!!es re-u"Crent !4"nsta!!at"on 0u pacBa'e libH mcr#pt.*tp Motes A )ous ave= beso"n 0u pacBa'e *le( contenant le( A !es opt"ons .local.>ith.local.modules0most Par pre*i( on "n0"-ue -ue !es r.>ith. ma-e Kt en%"n en tant -ue root.debug0no .%un"&.cras.gd .*ile.>ith.s. .11. M256 S" vous up'ra0e= 04une anc"enne vers"on* vos %"ch"ers 0e con% ne seront pas .con* pu"s tape= ldcon*ig Pour !ancer +a"ntenant Apache* "! %aut taper.>ith.con*igure .sent 0ans !e r.perto"re php.>ith..perto"re 04Apache httpd.usr. n tape +a"ntenant.htdocs. ma-e install Fa@oute= !a !"'ne ..apache2 .gd .enable.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. mbstring .apache2.bcmath0#es .path0. 0ans !e cha+p >FL taper http?.!..2.ap(s20. .de) avec ses 0. ...local.r.tar.enable..usr.-erberos ...b+2 1e!a va cr.usr..enable.>ith.:ans !e r.bin..usr.ap(s .local.enable.enable.local.>ith.enable.etc.con*ig.3 Installation de PHP Pour php!* on tapera 04abor0 tar ()*1 php.66www..usr.apache2. ...perto"res 04Apache contenant entre autre !e %"ch"er 0e con% se trouveront sous .local.or' ..usr.+lib .so.mcr#pt ..local.localhost ou http?. A pr.pre*i(0.>ith..>ith.>ith.!..%..usr. .perto"re 0e php* vous tapere= .apache2 c4est ut"!e 0ans !e cas oO vous vou!e= %a"re coe&"ster 0eu& vers"ons 04 Apache sur votre systC+e..>ith. .lib 0ans !e %"ch"er .m#sql .con*igure .mbstring .con* .11.er un r.nomdelamachine et !? !a pa'e 04accue"! 04Apache apparaNt #ou 0u +o"ns un /t EorBs PP(* pour "n%o ce!!eAc" se trouve sous .+lib .3* on tape a!ors.apachectl start Ma"ntenant votre nav"'ateur pr.mcr#pt sont n..pen0ances #ou libmcr#pt.ld.apache2.apache2..

usr.r.(. Apache+PHP+MySQL 15 http.php3 .perto"re .perto"re 0e PHP php.htm inde(.sent on va cop"er !e %"ch"er php. :ans !e r.* taper http?.php.htdocs on trouve !es %"ch"ers -u" seront access"b!es ? part"r 0e !a pa'e 04accue"! 0e votre serveur Apache.so n +o0"%"era +a"ntenant +anue!!e+ent !e %"ch"er httpd.php contenant XPphp phpin*oKLA PR Que vous p!acere= sous .nommachine.phtml Add5#pe application.local.php3 inde(.phps Par a"!!eurs ? !a !"'ne :irector#Inde( inde(.php! A pr.tg+ n ra@oute Add5#pe application.%.or' .!.11.production .11 pour !e +ettre sous .compress .local.local.(.dist.con*.libphp!.local.con* et en !e reno++ant php.usr..g+ .apachectl restart 1r.g+ip .rGt ? repart"r 0u nouveau %"ch"er php.ini cp .. .apache.production se trouvant 0ans !e r.php inde(.local.apache2.php.66www.usr.usr.!. .(.in*ophp.httpd.(.%un"&.ini %ourn" et 0e !e re+o0"%"er.apache2.php ou http?.php .php.con* pour -u4Apache prenne en co+pte PHP* ? !a su"te 0es !"'nes Add5#pe application.php.apache2..usr.local.php .modules et +o0"%"er !e %"ch"er httpd.html n ra@outera :irector#Inde( inde(.1ette 0ern"Cre co++an0e va "nsta!!er !e +o0u!e PHP sous .usr.W Add5#pe application.php inde(.ini.htdocs* 0ans !4>FL 0e votre nav"'ateur pr.er +a"ntenant !e %"ch"er in*ophp.bin. n re!ance Apache .localhost.apache2.html inde(.php! .source .ini :ans !e cas 04une anc"enne "nsta!!at"on 0e php* vous ave= tout "nt.httpd.php .php et !? +a'"-ue 0evra"t s4a%%"cher 0es "n%o sur !a con%"'urat"on 0e PHP sur votre systC+e.apache2.ini.in*ophp.con* en ra@outant &oad"odule php!/module modules.

perto"re htdocs cont"ent !a pa'e 04accue"! 04Apache . r.perto"re bin cont"ent !es e&.de*ault/soc-et 0 .or' .socs"non avec php"#Admin vous pourr"e= avo"r une erreur 0u sty!e G2II2 .ini m#sql. Kou l'inter*ace de conne(ion KCsoc-etCL )ers le ser)eur "#$%& local n'est pas correctement con*iguréeL ! Con*iguration basique !. 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.apache2 contenant.lib.perto"re cgi.perto"re lib cont"ent 0es b"b!"othC-ues A r.usr.66www.perto"re icons cont"ent 0es "c7nes -u" servent nota++ent pour "0ent"%"er !es types 0e %"ch"er.m#sql. Apache+PHP+MySQL 15 http.perto"re con* cont"ent !es %"ch"ers 0e con%"'urat"on 04Apache .1 Présentation de l'arborescence d'Apache L4"nsta!!at"on va cr.A99KQ9/ Q pour un %onct"onne+ent opt"+a! 0e m#sql avec php* "! %au0ra ra@outer pr.cutab!es 04Apache A r.%un"&.perto"re . r.bin cont"ent !es scr"pts 18/ A r. A r.local. &e ser)eur ne répond pas.er un r.c"ser !a pos"t"on 0u %"ch"er socBet 0e m#sql 0ans !e %"ch"er php.perto"re build A r.)ar.m#sql.

(* La per+et au c!"ent -u" se connecte sur !e serveur* 0e savo"r co++ent "nterpr.apache2.ter !e %"ch"er su"vant son e&tens"on.usr.I.apache2 et se no++e httpd.... A access/log !"stant !es accCs au serveur A error/log !"stant !es erreurs en tout 'enre Le r. G G Change this to &isten on speci*ic IP addresses as sho>n belo> to G pre)ent Apache *rom glomming onto all bound IP addresses KI. 1e ne sont -ue !es +o0u!es char'.3 . docR+swor0* .66www.perto"re ... $ee also the XOirtualHostR G directi)e.s 0yna+"-ue+ent -u" sont 0ans ce r.perto"re..( G 7épertoire racine d'Apache $er)er7oot C.( G 2n lance initialement httpd en tant que root= puis immédiatement G c'est l'utilisateur nobod# Kgroupe nobod#L qui en de)ient le proprio G ainsi s'il # a une *aille dans Apache= le hac-er au lieu de de)enir root G de)ient daemon a)ec les droits qui )ont a)ec G pour )éri*ier que daemon est bien le proprio G ps au( V grep httpd .DJ?JI G a)ec un deu(iYme ser)eur apache= )ous pou)e+ indiquer un port JIJI G dans l'url du na)igateur il *audra mettre http?.ter !e PHP #+o0u!e libphp!.'a!e+ent un tas 04autres %"ch"ers 0e con%"' %ourn"s co++e e&e+p!e 0ans !e 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.perto"re 0e !o' cont"ent essent"e!!e+ent 0eu& %"ch"ers.psRpostscr"pt* . A magic sert pour !e +o0u!e mod/mime/magic )ous trouvere= . r.local.%un"&.local.perto"re con*.perto"re man cont"ent !es +ans 04Apache Le r.!H.( G dé*inition de l'adresse IP du port du ser)eur G &isten? Allo>s #ou to bind Apache to speci*ic IP addresses and.ser daemon Nroup dameon Apache+PHP+MySQL 12 http.or G ports= in addition to the de*ault.url?JIJI &isten JI #.apacheC #.I.con* A mime.IL G G&isten 12.or' ..perto"re include cont"ent !es "nc!u0es 04Apache .so(. r.perto"re modules cont"ent !es +o0u!es 04Apache .. #.con* cont"ent.e(tra !.t#pes %"&e !e type 0e %"ch"er su"vant !4e&tens"on 0u 0"t %"ch"er #.. r.local.2 &e *ichier de con*iguration d'Apache Le %"ch"er 0e con% 04 Apache se trouve sous .con** vo"c" !es po"nts -ue @e @u'e "+portant 0ans !e %"ch"er. r.usr. Le r..usr.perto"re logs cont"ent !es %"ch"ers 0e !o' 04Apache . A !e %"ch"er 0e con%"'urat"on 04Apache http.

.( G nom du *ichier d'erreur 6rror&og logs.html inde(..sh G<.d* et on !e reno++era httpd2 cp .mailed.d.etc..htdocsC #.3.( 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.apachectl . 9e ha)e G more or less alphabeti+ed them here.apache2.-er)ao.php #.usr..)ar inde(.apache2.init. G &og&e)el >arn #.bin.apache.rc.rc.bin. @ou probabl# >ant to change this.%un"&.error/log G ni)eau de log G &og&e)el? Control the number o* messages logged to the error/log. G G Zust list the languages in decreasing order o* pre*erence.d.usr.66www. G Possible )alues include? debug= in*o= notice= >arn= error= crit= G alert= emerg.bin et on !e p!acera sous .html. 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..d.httpd2 n ra@outera en 0.local. G &anguagePriorit# *r en da nl et de el it 1a -r no pl pt pt.php inde(.generated pages= such G as error documents.*r #.. 5his address appears on some ser)er.( G :ocument7oot? 5he director# out o* >hich #ou >ill ser)e #our G documents.etc.1 $ous "andri)a.php inde(.htm inde(.usr.local.. G C'est dans ce répertoire qu'on )a trou)er la page d'accueil d'Apache :ocument7oot C.sh Apache+PHP+MySQL 13 http.or' .bin.br lt+ ca es s) t> !.but 0e %"ch"er @uste aprCs G<.( G :é*inition des *ichiers d'entrée :irector#Inde( inde(.local.3 &ancement automatique de l'application !.init.. 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(.G $er)erAdmin? @our address= >here problems >ith the ser)er should be G e."ageia Pour un !ance+ent auto+at"-ue on pren0ra !e %"ch"er apachectl se trouvant sous .

i C_EE?space?FFS$er)er5#peEE?space?FFUinetC [C2M4 then e(it I *i test/con*igKL \ i* E < .( [APACH6C5& FA then echo C[APACH6C5& is not e(ecutable= e(itingC e(it I *i G ensure >e don't lea.init.stop.tat 0e +arche 3*4 et 5 on 0o"t nor+a!e+ent taper.httpd.tat 0e +arche .apache2. ch-con*ig .66www.usr.bin?.[\MA"6]ctl G note? $$: is required onl# at startup o* the daemon.local.en)ironment )ars into apachectl APACH6C5&0C[6MO [APACH6C5&C i* < [APACH6C5& con*igtest 2R .i &AMN0C PA5H0. It is used to ser)e Q G H5"& *iles and CNI.d.binC trap CC 1 G Chec. MA"60apache :A6"2M0.local.bin.apache2.d.le)el 3 ! httpd2 on Kt pour un arrGt ? !4.bin.apache2.or' .bin?.local.httpd.usr.usr. G G 5he )ariables belo> are M25 to be changed.local.rc. .pid C2M40.null then print* CCon*iguration s#nta( error detected.2 $ous ubuntu )o"!? un scr"pt 0e !ance+ent* "! %aut !4appe!er httpd2 et !e p!acer sous .de). G processname? httpd Pour un !ance+ent auto+at"-ue ? !4.httpd2 start !.3. Mot reloading.con* APACH6C5&0.le)el I12H httpd2 o** Pour !ancer !e serveur* "! su%%"ra +a"ntenant 0e taper.bin.apache2.usr.local.daemon^ 6MO0Cen) .that >e're not being started b# inetd i* egrep .usr.* 1* 2 et 5 ch-con*ig .etc.logs.init.etc..bash G G apache $tart the apache2 H55P ser)er. 5he# are there to ma-e the G script more readable.%un"&.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.httpd PI:4I&60.q .d G<. $$:0^>hich start.usr..con*.QnQnC [APACH6C5& con*igtest Apache+PHP+MySQL 19 http.

*i ] e(it 1 should/startKL \ i* E < ..66www.[MA"6 \startVstopVreloadV*orce.httpd2 Pour !e !ancer auto+at"-ue au 0. http.stop .null AA stopL echo ...n C$topping >eb ser)er? [MA"6C start.pid*ile [PI:4I&6 .stop .lin-..sage? .d httpd2 de*aults Apache+PHP+MySQL 2.rc.( [: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 C7estarting [MA"6C i* < start.init.reloadL test/con*ig echo ..+arra'e "! %au0ra taper update.. e(it I else echo C *ailedC e(it 1 *i n 0onne !es 0ro"ts 04e&.de).e(ec [:A6"2M R .r* .lib.signal H.pid*ile [PI:4I&6 .signal .$71 AA restartL test/con*ig echo .daemon .eq I FA then echo ..pid*ile [PI:4I&6 .daemon .n C$tarting >eb ser)er? [MA"6C [6MO [$$: .apache.reloadVrestart]C e(it 1 AA esac i* E [P .%un"&..cut"on chmod D!! .etc.n C7eloading [MA"6 con*igurationC start.de).null *i AA SL echo C.d..pid*ile [PI:4I&6 .or' .o-nodo rm ..etc.daemon ..mod.e(ec [:A6"2M R .d.PA then [6MO [$$: ..q .start .S AA reload V *orce.init.pid*ile [PI:4I&6 ...)ar.start ..stop.stop.stop.band>idth.stop .

perto"re public/html 0es ut"!"sateurs et -u4"! %aut +ettre 255 au n"veau 0e !a ho+e 0"rectory* ce -u" est part"cu!"Cre+ent '.ser:ir public/html X:irector# C.home.htm sous .html !.htaccess Apache+PHP+MySQL 21 http.cr"vant.httpd.icons.usr.!.http.%.66serveurAapache6Sut"!"sateur Le prob!C+e avec !e r.%un"&.home.r. 0ans !eur ho+e0"rectory.:irector#R M256 S" vous +ettre .httpd A"ns" pour !4ut"!"sateur toto -uan0 vous tapere= co++e >FL http?.utilisateur en .= vous aure= une erreur.local.htmlCR 2ptions Inde(es 4ollo>$#m&in-s Includes 6(ecCNI Allo>2)erride All 7equire all granted X..usr.ser:ir . Pour ce!a 0ans votre %"ch"er .apache.! &es alias S" vous ne vou!e= pas +ettre en p!ace un serveur :QS* vous ave= un +oyen p!us s"+p!e* !es a!"as.doc. )ous pouve= sp. Alias .apache.home.public/htmlCR 2ptions Inde(es 4ollo>$#m&in-s Includes 6(ecCNI Allo>2)erride All 7equire all granted X.con** vous a!!e= ra@outer.home.doc 0ans !4>FL "! %au0ra taper http?.html * !es ut"!"sateurs 0evront taper 0ans !eur nav"'ateur pr.doc.ser)eur.`toto * apache "ra chercher !e %"ch"er inde(. . H Con*iguration a)ancée H.S.usr..cr"vant pour !a var"ab!e . C.login.* s" vous o+ette= !e 0ern"er .obeli(. &es pages >ebs utilisateurs :ans !e %"ch"er httpd.doc.perto"re public/html p!ac.C on ra@oute ensu"te pour chacun 0es r.c"%"ant un r.html.ser:ir .httpd. ? !a p!ace 0e .:irector#R et re!ance= httpd* !es ut"!"sateurs -u" veu!ent avo"r une ho+epa'e perso 0evront p!acer !eurs %"ch"ers 0ans un r.doc.doc C.C Alias .doc.er ses pa'es sous .cur"t. 1oncrCte+ent* votre serveur s4appe!!e obeli( * vous vou!e= ren0re access"b!e !es %"ch"ers ht+! se trouvant sous .ser:ir .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 G dé*inition des *ichiers de protection des pages Access4ileMame .etc.httpd.obeli(. n peut a!!er p!us !o"n en sp.doc.or' .httpd.perto"res X:irector# C.toto.con*.home.con* on 0o"t ra@outer .nant au n"veau s. Les pa'es seront access"b!es ? part"r 0e !4>FL http.S.icons.66www.toto. http?..html par e&e+p!e* en .c"%"er -ue cha-ue ut"!"sateur 0o"t cr.home...perto"re part"cu!"er* .httpd.usr.

usr.local.usr.auth #.t.users va conten"r une !"ste 04ut"!"sateurs* "! va se trouver sous !e r.`oli)ier.4ilesR Apache+PHP+MySQL 22 http.home.er(* pour "n%o vous pouve= chan'er !e che+"n .perto"re . Qote= -ue pour -ue -ue!-u4un ne pu"sse @etter un coup 04oe"! 0ans !es %"ch"ers .oli)ier.cutab!e se trouve 0ans !e r.perto"re .group correspon0 ? une !"ste 0es 'roupes 0e personnes* ces +G+es personnes ayant .t#pe ne> pass>ord? Adding pass>ord *or user oli)ier Pour cr.etc.group -u" cont"en0ra !a !"ste 0es personnes autor"s. htpass>d .%un"&.apache2. 9ous !es %"ch"ers ? accCs !"+"t.66www.oli)ier.group AuthMame CAcces 7estreintC Auth5#pe 8asic require group autorise Le %"ch"er oli)ier.perto"re 04"nsta!!at"on 04apache pr.auth.s 0ans un +G+e r.e.a!ab!e+ent rentr.er 0ans ce!u"Ac" un %"ch"er -u4on 0evra no++er .obeli(. Auth.apache2.er un 'roupe 0e personnes autor"s.usr. Me> pass>ord? n con%"r+e 7e.htCR 2rder allo>=den# :en# *rom all $atis*# All X.er ces %"ch"ers "! su%%"t* en tant -ue root* 04une part 0e cr.serv.%"n" 0ans !e %"ch"er oli)ier. Pour cr.httpd.es .oli)ier.users. -uan0 vous a!!e= rentrer co++e >FL http?.apache2.c correspon0 ? !a cr. 2.con* 0o"t conten"r !a 0"rect"ve su"vante.ser4ile auth.er !e %"ch"er .er un autre ut"!"sateur )eronique vous tapere= !a +G+e co++an0e sans !4opt"on 0e cr.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.3.con*.users.es ? acc. 0..es et ? !eur attr"buer un +ot 0e passe ? chacune* seu! ce 'roupe pourra acc.local.at"on . n va a!ors avo"r ? rentrer un +ot 0e passe pour !4ut"!"sateur oli)ier.ventue!!e+ent ? cr.at"on 0u %"ch"er oli)ier.oli)ier.public/html.auth* pu"s 0e taper.local.perto"re .+ent sous httpd. Le pr"nc"pe cons"ste ? cr.r. X4iles ` C_Q.local.users )eronique 9ou@ours en tant -ue root* cr. 0o"vent Gtre concentr."! %aut b"en .auth.%.0er au& pa'es r.htaccess contenant. .apache2.users AuthNroup4ile auth.or' .support.c .reser)e par e&e+p!e* "! su%%"t 0e cr.0er ? !a sect"on r. Le %"ch"er oli)ier. htpass>d .er !e r.auth.c"s.htaccess 0e vos ut"!"sateurs= !e %"ch"er httpd. L4opt"on .users oli)ier Pour "n%o cet e&. autorise? oli)ier )eronique Ma"tenant -uan0 ? part"r 0e votre nav"'ateur pr.oli)ier.oli)ier.serv.v"0e++ent re!ancer apache.usr.apache2 en +o0"%"ant !a va!eur 0e !a var"ab!e $er)er7oot -u4on trouve 0ans !e %"ch"er httpd..usr.local.

H.2 &es hates )irtuels
n peut +ettre en p!ace 0es h7tes v"rtue!s* en 04autres ter+es un ut"!"sateur pour un +G+e serveur Apache cro"ra en vo"r p!us"eurs. K&e+p!e* so"t votre serveur Apache obeli( #a0resse /P 1'2.1HJ.13.11(* votre 0o+a"ne brei+land.b+* on va cr.er !es h7tes v"rtue!s >>>.asteri(.brei+land.b+ et >>>.ide*i(.brei+land.b+ -u" vont po"nter chacun vers un en0ro"t 0"%%.rent 0u 0"s-ue #respect"ve+ent .usr.local.asteri( et .usr.local.ide*i( chacun contenant 0es pa'es ht+!(. n va ra@outer tout ? !a %"n 0u %"ch"er; XOirtualHost 1'2.1HJ.13.11R $er)erMame obeli(.brei+land.b+ :ocument7oot .usr.local.apache.htdocs 6rror&og logs.obeli(,error/log 5rans*er&og logs.obeli(,access/log X.OirtualHostR XOirtualHost 1'2.1HJ.13.11R $er)erMame >>>.asteri(.brei+land.b+ :ocument7oot .usr.local.asteri( 6rror&og logs.asteri(,error/log 5rans*er&og logs.asteri(,access/log X.OirtualHostR XOirtualHost 1'2.1HJ.13.11R $er)erMame >>>.ide*i(.brei+land.b+ :ocument7oot .usr.local.ide*i( 6rror&og logs.ide*i(,error/log 5rans*er&og logs.ide*i(,access/log X.OirtualHostR pour chacun 0es r.perto"res @e 0o"s cr.er ensu"te !es "nstruct"ons su"vantes X:irector# C.usr.local.asteri(CR 2ptions Inde(es 4ollo>$#m&in-s Includes 6(ecCNI Allo>2)erride All 7equire all granted X.:irector#R Fe!ance= Apache en tapant; .etc.rc.d.init.d.httpd restart Ma"ntenant nous a!!ons cr.er nos h7tes asteri( et ide*i(* pour ce!a vous ave= 0eu& +.tho0es; A ra@outer >>>.asteri(.brei+land.b+ et >>>.ide*i(.brei+land.b+ 0ans .etc.hosts sur !a +G+e !"'ne -ue votre serveur Apache #obeli( 0ans notre e&e+p!e(. 1'2.1HJ.13.11 obeli( obeli(.brei+land.b+ >>>.asteri(.brei+land.b+ >>>.ide*i(.brei+land.b+ Qor+a!e+ent s" vous %a"tes un p"n' sur >>>.ide*i(.brei+land.b+ La 0evra"t +archer* pour !es postes c!"ents "! %au0ra ra@outer !a +G+e !"'ne 0ans !e %"ch"er hosts #non n.cessa"re(. A s" vous 0"spose= 04un serveur :QS sur votre +ach"ne* au n"veau 0e votre con%"' :QS 0ans votre %"ch"er brei+land.b+ -u" se trouve sous .)ar.named vous 0eve= ra@outer tout ? !a %"n; >>>.asteri( A 1'2.1HJ.13.11 >>>.ide*i( A 1'2.1HJ.13.11

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

D Nestion de bases de données a)ec "#$%&
D.1 5ests de *onctionnement a)ec "#$%&
n suppose -ue vous ave= "nsta!!.* con%"'ur. "#$%& et cr.. !es 0eu& e&e+p!es 0u para'raphe "nsta!!at"on "#$%&. n suppose auss" -ue !e serveur s4appe!!e obeli( et !4ut"!"sateur oli)ier. )o"c" une pa'e .cr"te en PHP -u" va acc.0er ? !a base 0e 0onn.e essai et ? sa tab!e coord. XP [ser)eur0ClocalhostCA [login0Coli)ierCA [pass0Cmot,de,passeCA [base0CessaiCA [table0CcoordCA [id0"@$%&/C2MM6C5K[ser)eur=[login=[passLA m#sql/select/dbK[baseLA [nom0ChoarauCA [prenom0Coli)ierCA [email0Coli)ier.hoarauT*nac.netCA [quer#0CIM$675 IM52 [table OA&;6$K'[nom'='[prenom'='[email'LCA [result0m#sql/quer#K[quer#=[idLA echo C$aisie terminéeCA PR P!acer ce scr"pt 0ans `.public/html et appe!er !e bd1.php :ans votre nav"'ateur pr.%.r.* 0ans !e cha+p >FL sa"s"sse= ; http?..obeli(.`oli)ier.bd1.php A pr"or" y a pas 'ran0 chose -u" s4est pass.* +a"ntenant connecte= vous ? votre base essai 0ans un she!!

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'

2' $ource distribution Cop#right KcL 2III= 2I12= 2racle and.rer !es c!...U..U.....all. [c*gE'blo>*ish/secret'F 0 '1e suis toto'A .. . ".er et suppr"+er 0es bases 0e 0onn.. !es va!eurs par 0.tar.cup....ta"! phpMyA0+"n per+et 0e.. pr"s en co+pte.s 0e cha+ps* A ..perto"re vous ave= un %"ch"er con*ig.....U..php* 0ans ce %"ch"er "! %aut +o0"%"er !es cha+ps su"vants .b+2 1e!a va cr. )ous pouve= !e r....inc..U V 2 .. 2ther names ma# be trademar-s o* their respecti)e o>ners.....U V date V host V ip V os V page V U....co+presse en tapant .. tar ()*1 php"#Admin....U.U.u oli)ier .....3..or' ....p essai 6nter pass>ord? 9elcome to the "#$%& monitor......or its a**iliates..... A pr..... @our "#$%& connection id is 1 $er)er )ersion? !....!..sent connectons nous ? !a base..H1 EenF Kb V U. A cr.... 5#pe 'helpA' or 'Qh' *or help..... :ans ce r.o* 2racle Corporation and...1HJ..U.perto"re 0e trava"! un r....b+ V 1'2........languages... L4arch"ve se pr.. All rights reser)ed..net.66www.... 2racle is a registered trademar...es* A .U. 5#pe 'Qc' to clear the current input statement..S @2.D.....D.ato"re..2III IJ?3 ?I! V asteri(...inc..rer ? !4>FL www.armoric......all........... Commands end >ith A or Qg..sample....U..5HP T6 pour !e reste @4a" !a"ss.!........0"ter* a@outer ou suppr"+er 0es cha+ps* A taper 0es co++an0es SQL* A '.%aut ? savo"r Apache+PHP+MySQL 25 http...%un"&.perto"re php"#Admin... Pour cette var"ab!e on peut +ettre un peu n4"+porte -uo"* La sert ensu"te pour ch"%%rer 0e +an"Cre a!.or its a**iliates.languages.3......sente sous !a %or+e 04un tarba!! -u4on 0...php* "! %aut !e cop"er en con*ig.. Kn 0.U....U.)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.$5 4I&& IM 5HI$ 427 C223I6 A...php+ya0+"n.......2 Administration des bases "#$%& a)ec php"#Admin php"#Admin est un ense+b!e 0e scr"pts PHP -u" per+et 04a0+"n"strer 0es bases "#$%& ? part"r 04un nav"'ateur.t.U 1 ro> in set KI.er 0ans !e r..U... oli)ierTobeli( oli)ierF[ m#sql .11 V "o+illa.II secL 14est bon !e v"s"teur a b"en ..I ..!..U...... D........... V Ma"ntenant -ue vous save= co++ent Apache %onct"onne avec "#$%& et PHP* !a"sse= !"bre cours ? votre "+a'"nat"on. S et votre m#sqlR $6&6C5 S 472" re*A U..13...

brei+land. [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.. [c*gE'$er)ers'FE[iFE'auth/t#pe'F 0 'coo-ie'A .rou!ant ? 'auche* on retrouve 04a"!!eurs notre base essai* pour en cr.er un h7te v"rtue! po"ntant vers .languages -u4on appe!era >>>.php"#Admin.S $elect m#sqli i* #our ser)er has it S.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.e(* cr.php"#Admin.all.usr. Pour trava"!!er sur une base 0e 0onn.!ect"onner 0ans !e cho"& 0.brei+land.3.htdocs.sql.or' .D.es 0"spon"b!es et ? 0ro"te* !e +enu su"vant.languages.all.66www.S Authentication t#pe S.usr.local.perto"re php"#Admin* +ette= y 0es restr"ct"ons 04accCs avec un %"ch"er .htaccess.. A #so!ut"on s"+p!e( p!acer php"#Admin 0ans .S $er)er parameters S.er une autre "! su%%"t 0e cho"s"r 8ases de données pu"s Créer une base de données.sql.b+ . M256 S" La vous 'Cne -ue n4"+porte -u" 04un nav"'ateur pu"sse a!!er 0ans !e r.3.inde(.apache.es part"cu!"Cres "! su%%"t 0e !a s.apache. [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 .D.htdocs et au n"veau 0e !a pa'e 04accue"! 04apache %a"re un !"en vers .!.!ect"onne >>>. S" on s.local.!.!ect"onne essai par e&e+p!e on obt"ent Apache+PHP+MySQL 22 http. Avec !a so!ut"on h7te v"rtue!* ? part"r 04un nav"'ateur -uan0 on s.con"s.php A #so!ut"on pr.perto"re php"#Admin 04une pa'e web* pour ce!a 0eu& so!ut"ons.%un"&.

perto"re te+pora"re -ue vous vou!e= J $cripts CNI Pour act"ver !es scr"pts 18/* !e %"ch"er httpd.usr.0"ter !e %"ch"er .H5"&RQnCA :onner !es 0ro"ts -u" vont b"en avec ce %"ch"er.cgi.bin. G<.er un scr"pt per! 18/ -u" va tra"ter un %or+u!a"re -ue!con-ue 04une pa'e H9ML.con* est 0.RparamK'comment'LA print CX.5I5&6RQnCA print CX.er 0es nouve!!es tab!es* %a"re 0es re-uGtes $%&* etc.con*.*orm.usr.%un"&.66www.RheaderA print CXH5"&RQnCA print CXH6A:RQnCA print CX5I5&6RPremier script CNI perlX.bin.cgi.RparamK'email'LA print CXpRQnCA print CCommentaire?CA print [html.82:@RQnCA print CX.local.usr..H1RQnCA print CMom ?CA print [html.H6A:RQnCA print CX82:@RQnCA print CXH1R5raitement du *ormulaireX.or' .sa)e/path 0 C.)ous pouve= 0onc cr.er votre scr"pt per! sous . 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 .bin.htm XhtmlR Xbod#R Xh2R4ormulaireX.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.local.RparamK'nom'LA print CXpRQnCA print C6mail ?CA print [html.er +a"ntenant !e %"ch"er H9ML su"vant -ue vous appe!ere= *ormulaire.tmpC vous +ette= !e r.apache2.local.cgi.ini et +o0"%"er !a !"'ne su"vante session.*ormR Apache+PHP+MySQL 23 http.bin* et !e no++er *orm.pl* vo"c" son contenu.php. chmod D!! *orm. )ous a!!e= cr.pl Kn tant -u4ut"!"sateur stan0ar0 # oli)ier 0ans notre e&e+p!e(* cr. .usr.cgi. Le but 0e !4e&erc"ce est 0e cr.apache2.bin. $criptAlias .obeli(.@? con%"'ur.h2R X*orm action0Chttp?.apache2. pour* on y trouve nota++ent !a !"'ne -u" "n0"-ue oO trouver !es scr"pts.perl use CNIA [html0ne> CNIA print [html.

init.ldap 0evant Gtre re+p!ac. identi*ication de l'administrateur de la base [rootdn0Ccn0"anager= dc0brei+land= dc0b+CA .d.conne(ion à la base [result0ldap/connectK[ser)erLA i* K[result001L \ ldap/bindK[result=[rootdn=[rootp>LA ] . ' PHP et &:AP n peut co+p"!er PHP pour pouvo"r ut"!"ser 0es co++an0es '.lib.[prenomA [in*oECmailCF0[mailA [in*oECob1ectclassCF0CpersonCA Apache+PHP+MySQL 29 http. Haut du formulaire Qo+. par !e che+"n oO se trouve votre base &:AP.htm * vous a!!e= avo"r une pa'e 0u sty!e.ldap . 1o++enta"re.ldap0.c!encher !4e&..66www. ma-e Kt en tant -ue root ma-e install Fe!ance= Apache .obeli(.rant une base L:AP* pour ce!a au para'raphe 0e co+p"!at"on 0e PHP on ra@outera au& opt"ons 0e con*igure !4opt"on .>ith.bod#R X.c.C C.X.htmlR )o"!? +a"ntenant -uan0 vous a!!e= acc..%un"&.lib.)ar..hoarauT*uni(.6nregistrement d'une entrée dans la base echoC6nregistrement de 8en1amin HoarauQnCA [dn0Cdc0brei+land= dc0b+CA [nom0CHoarauCA [prenom0C8en1aminCA [mail0Cben1amin..httpd restart )o"!? un pet"t pro'ra++e -u" va nous per+ettre 0e ra@outer une entr. K+a"!.0e++ent sa"s"es.cut"on 0u scr"pt CNI per!* -u" va provo-uer !4a%%"cha'e 0es va!eurs pr. Envoyer remettre à zéro Bas du formulaire Kn appuyant sur 6n)o#er La va 0.orgCA [in*oECcnCF0[nom.mot de passe administrateur [rootp>0CsecretCA .etc.*ormulaire. nom du ser)eur &:AP [ser)er0Casteri(CA . .."nsta!!e= !e +o0u!e -u" va b"en .`oli)ier. XP . Feco+p"!e= pu"s r..0er ? http?.or' .d..e 0ans !a base* !"bre ? vous +a"ntenant 0e cr.rc.)ar.er 0es %or+u!a"res 0e sa"s"e* 0e 0estruct"on* et 0e recherche.

!.e !e r.11 et "#$%& !.tmp.3 avec PHP!.soc.2.perto"re m#sql. 23 5o start m#sqld at boot time #ou ha)e to cop# support. ? base 0e chroot.ldap/addK[result=Ccn0[nom [prenom=[dnC=[in*oLA ldap/closeK[resultLA echo C&'enregistement a réussiCA PR Appe!e= ce %"ch"er ldap.66www..m#sql.!.$67 < Apache+PHP+MySQL 3. cma-e .!.local.sente !4"nsta!!at"on et !a con%"'urat"on 04 Apache 2.m#sql/install/db )o"!? !e r..:C"A36/IM$5A&&/P764Ib0.t.2Installation de "#$%& 1I. n tape +a"ntenant en te+ps -ue root.m#sql.1Présentation 1ette pa'e pr. 1I.2'* sur +a Man0r"va @4a" 0u "nsta!!er !e pacBa'e libncurses. 14est ? 0"re -ue s" un hacBer arr"ve ? pro%"ter 04un %a"!!e 0ans !e pro'ra++e* "! restera !"+"t. http.%aut sous .php3* vous pouve= !e tester et v. .chroot.co+presse !4arch"ve.. tar ()*+ m#sql.m#sql.cur"s. @a"! ou pr"son(. ? une arborescence restre"nte avec un no+bre trCs !"+"t.!.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.g+ 1e!a cr. . ma-e install Les e&. 1hroot per+et 04"so!er !4e&. :ans !e r.local.su!tat obtenu Installing "#$%& s#stem tables.:"@$%&/. 0e co++an0es.MIb/A::70.e en tapant . sa"s"e 0ans !a base.libe(ec.ser)er to the right place *or #our s#stem P&6A$6 76"6"867 52 $65 A PA$$927: 427 5H6 "#$%& root .de)el.or' . .r"%"er -ue !4entr.. #souvent appe!.perto"re 0e trava"!* on 0.2'. /nsta!!e= +a"ntenant !a base 0e 0onn.2' 0ans un env"ronne+ent s.cut"on 04un pro'ra++e 0ans un espace c"rconscr"t et !"+"t.!.s par 0. .tar.usr.perto"re 0e "#$%&* on tape a!ors.scripts.%un"&.!.usr.2'.bin et !e serveur m#sqld sous .1 Installation de "#$%& a)ec les sources :ans !e r.!.m#sql. 23 4illing help tables. 1I $écuriser Apache et PHP dans un en)ironnement chrooté 1I.e a b"en .cutab!es sont "nsta!!.*iles.local..usr.

p .cn* .local.usr.m#sqld/sa*e B @ou can test the "#$%& daemon >ith m#sql.null .p .cn* 1I.a!ab!e+ent !es r.chroot.m#sqladmin .p .medium.usr. $ee the manual *or more instructions.usr.bin.m#sql.)ar.bin m-dir .m#sql.m#.bin.english Apache+PHP+MySQL 31 http.test.m#sql. m-dir .m#.@? %a"t cr.m#sqladmin .2 Chrooter "#$%& n 0o"t cr.usr.de).7 m#sql?m#sql .data m-dir .nologin Les bases se trouvent par 0.local.local.data* m#sql 0o"t en Gtre propr".local.run.m#sql.usr.cn* on 0onne !es 0ro"ts -u" vont b"en cho>n root?s#s .p .or' .de) m-dir .chroot.local.m#sql.data n "nsta!!e +a"ntenant !e %"ch"er 0e con%"'urat"on cp support. @ou can start the "#$%& daemon >ith? cd .chroot.m#sql.libH m-dir .usr m-dir .chroot.chroot.run.5o do so= start the ser)er= then issue the *ollo>ing commands? .usr.usr.p .er pr.cn* chmod H .m#sql.ta"re cho>n .h po>er.m#sql.etc.m#sql.*r pass>ord 'ne>.chroot.-er)ao.local.chroot.66www.usr.2.local.local.%un"&.m#sql.m#.%aut sous .m#sql.m#sql.m#sql.usr.share.m#sql.p .chroot.p .chroot.sbin.test.usr.m#sql.etc m-dir .m#.etc.usr.local.m#sql.local.m#sqlbug script< S" ce n4est pas 0.p .m#sql A .p .)ar m-dir . 5his is strongl# recommended *or production ser)ers.p .d .chroot.bin.usr.test A perl m#sql.m#sql.g m#sql .local.etc.bin.m#sql.local.*iles.p .s .libH m-dir .usr.u root pass>ord 'ne>.m#sql.local.data >hich >ill also gi)e #ou the option o* remo)ing the test databases and anon#mous user created b# de*ault.pl cd .p .u root .m#sql.m#sql.m#sql.local.perto"res su"vants .m#sql.tmp m-dir .chroot.tmp m-dir .m#sql.bin.pass>ord' .m#sql/secure/installationm-dir .usr.pl Please report an# problems >ith the .m#sql.m#sql.c C"#$%& $er)erC .chroot.er !e 'roupe m#sql groupadd m#sql Pu"s !4ut"!"sateur m#sql 0u 'roupe m#sql useradd m#sql .usr.pass>ord' Alternati)el# #ou can run? .

m#sql.libH .libH "! %au0ra .usr.H .libdl.1 0R .H 0R .m#sql.m#sql.so.p .libnsl.m#sql.hosts .so.libcr#pt.chroot.2 0R .libH cp .)dso.etc.chroot.libH cp .m#sql. 0ans !es %"ch"ers .share.so.etc.local.group .1 0R KI(IIIID***2a*cIIIIL libpthread.usr.chroot.libH cp .etc.libH cp .libH .1 0R .bin.usr.1 .chroot.*rench.so.1 .m#sql.ld.libstdcUU.m#sql.m#sql.so.ld.1 KI(IIIID*edeDe 1IIIL libcr#pt. cp .lib+.66www.%un"&.con* .m#sql.etc.libH cp .english.libH cp .libgcc/s.httpd. cp .so.H 0R .su!tat linu(.so.libH .m#sql.share.so.so.H KI(IIIID*edeD HIIIIL libgcc/s.tmp Apache+PHP+MySQL 32 http.chroot.libm.*rench.1 0R .libH .chroot.m#sql.cessa"res au %onct"onne+ent 0u serveur m#sqld cp .7 root?s#s .H KI(IIIID*edeHedeIIIL .errmsg.chroot.chroot.share.chroot.chroot.so.m#sql.m#sql.so.so.I .so.etc.so.usr.m#sql.H 0R .m#sql.libH .chroot.con* .so.m#sql.m#sql.so.libH .1 KI(IIIID*edeJI 'IIIL librt.chroot.chroot.english.so.m-dir .m#sql.libpthread.charsets . cp .usr.m#sql chmod 1DDD .m#sql.etc.so.m#sql.etc.so.libgcc/s.so.etc.librt.usr.usr.(JH.2 .m#sql.so.lib+.2 .7* .m#sql.1 .7 D!! .bin.host.libH .usr. cp .perto"re .H KI(IIIID*edeDHe2IIIL libm.m#sql.so.so.libH .m#sql.so.chroot.1 0R .so.I KI(IIIID*edeJ2!eIIIL lib+.so.usr. cp .libH .2 .local.linu(.libH cp .libH cp .libH .2 KI(IIIID*edeD'e*IIIL libstdcUU.(JH.so.usr.chroot.cessa"res 0ans !4env"ronne+ent chroot.libH .m#sql et ce!u" 0u r.H .usr.2 KI(IIIID*edeJ DaIIIL on cop"e !es b"b!"othC-ues n.libH cp .group on ve"!!era ? !a"sser seu!e+ent !4ut"!"sateur et !e 'roup m#sql +a"ntenant on v.m#sqld vo"!? !e r.libnss/mdns /minimal.m#sql.libstdcUU.perto"re te+pora"re cho>n .I 0R .m#sql.m#sql.m#sqld .libH .local.1 .so.so.'a!e+ent cop"er !es 0eu& b"b!"othC-ues su"vantes cp .libdl.chroot.chroot.m#sql.m#sql.libH .usr.H .libH .resol).libH +a"ntenant on +o0"%"e !es 0ro"ts 0u r.etc.cn* .pass>d .m#sql.chroot.chroot. cp .chroot.m#sql.so.local.libcr#pt.or' . cp .local.usr. cp .libH .etc.2 .libc.H .1 KI(IIIID*edeD2 aIIIL libc.etc.*rench on cop"e ensu"te !es %"ch"ers n.m#.share.libc.local.linu(.libH cp .m#sql.libH .local.bin cp .local.etc.so.libH .1 .so.usr.chroot.httpd.local.share.1 KI(IIIID*edeDb*3IIIL libdl.libpthread.chroot.m#sql chmod .so.pass>d et .libH cp .chroot.pen0ance 0u 0ae+on m#sqld en tapant ldd .s#s .chroot.libH .local.share cp .errmsg.usr.chroot.r"%"e !a 0.chroot.libm.usr.chroot.libnss/*iles.libH .libH .share.librt.m#sql.etc.m#sql.etc.libH .chroot.m#sql.chroot.s#s .chroot.libH .libH .H .

tmp.cup.J startedA log sequence number 1!'!HD! 13I3I1 '?22?22 EMoteF $er)er hostname Kbind.chroot.7 .m#sql.I' resol)es to 'I.m#.I.I'A 13I3I1 '?22?22 EMoteF $er)er soc-et created on IP? 'I.I" 13I3I1 '?22?21 Inno:8? Completed initiali+ation o* bu**er pool 13I3I1 '?22?21 Inno:8? highest supported *ile *ormat is 8arracuda.m#.3 Con*iguration de "#$%& n .chroot.m#sqld? read# *or connections.usr.etc on !ance +a"ntenant !e 0ae+on chroot.m#sql.de).m#sql.net>or-ing on !a"sse !e reste par 0.null chmod HHH .chroot.or' .m#sql.I.cn* vous 0eve= au +o"ns avo"r !es !"'nes su"vantes EclientF port 0 33IH soc-et 0 .de).m#sql. .* on r.m#sql.bin.local. en tapant chrootuid .local. 13I3I1 '?22?22 EMoteF 6)ent $cheduler? &oaded I e)ents 13I3I1 '?22?22 EMoteF .data.chroot.m#sql.m#sql. 'I.etc. 1op"e= +a"ntenant .bin.66www.local.null on cop"e ensu"te !a base et on +et m#sql propr".m#sql.e un %"ch"er poube!!e .usr.m#sql.I'.m#sql.loc-ing pid.I.chroot.etc.tmp.null 0ans !4env"ronne+ent chroot m-nod .data cho>n .chroot.local.chroot.!.I.socs-ip.cn* .m#sql.I'A port? 33IH 13I3I1 '?22?22 EMoteF .su!tat 13I3I1 '?22?21 Inno:8? 5he Inno:8 memor# heap is disabled 13I3I1 '?22?21 Inno:8? "ute(es and r>/loc-s use NCC atomic builtins 13I3I1 '?22?21 Inno:8? Compressed tables use +lib 1.local.I.ta"re cp .2.chroot.e(ternal.re !e P/: 0u process m#sqld en tapant ps au(Vgrep m#sql vo"!? !e r.m#sql.etc cp .m#sql m#sql .I.pid s-ip.2.soc-' port? 33IH $ource distribution Pour v.usr.7 m#sql?m#sql .data Pour ter+"ner on "nsta!!e !e pacBa'e su"vant urpmi chrootuid 1I.de).usr.0"te !e %"ch"er .m#sqld.m#sql.I. 13I3I1 '?22?21 Inno:8? 9aiting *or the bac-ground threads to start 13I3I1 '?22?22 Inno:8? 1.tmp.%un"&.3 13I3I1 '?22?21 Inno:8? Initiali+ing bu**er pool= si+e 0 12J.de).I.null c 2 2 cho>n root?s#s .*ile0.1.on cr.tmp.su!tat Apache+PHP+MySQL 33 http.m#sql.r"%"er -u4on est b"en 0ans un env"ronne+ent chroot. Oersion? '!.etc.m#.chroot.usr.m#sql.addressL? 'I.m#sqld B vo"!? !e r.%aut.socEm#sqldF port 0 33IH soc-et 0 .2'.cn* sous .log' soc-et? '.

5#pe 'Qc' to clear the current input statement.bin.su!tat 9elcome to the "#$%& monitor.local.ro* "! %aut +o0"%"er !e +ot 0e passe 04a0+"n"strateur 0e !a base en tapant .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. 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 +.u root vo"!? !e r.local.o* 2racle Corporation and. 2ther names ma# be trademar-s o* their respecti)e o>ners.m#sql S" vous 0"spose= 0. 2racle is a registered trademar.66www.chroot.2'.I 3.usr.m#sql 21 '! I.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.m#sql/upgrade .log $ource distribution Cop#right KcL 2III= 2I12= 2racle and. @our "#$%& connection id is 1 $er)er )ersion? !.or its a**iliates.D 3JJ2'2 3JH2I pts..or its a**iliates.21 '!.p S"non* on part 0e =.m#sqld en tapant ll . Commands end >ith A or Qg. All rights reser)ed.@? 04une base s-! ? up'ra0er "! %au0ra taper .bin.proc.m#sql.m#sql .!.root on vo"t b"en un !"en vers . 5#pe 'helpA' or 'Qh' *or help.%un"&.m#sql.usr.2 $lU 1I?22 I?II .or' .

co+presse !a pre+"Cre arch"ve en tapant tar ()*+ apr.perto"re apr.con*igure ma-e pu"s en tant -ue root ma-e install on .>ith.a!ab!e+ent "nsta!!er !es out"!s apr et apr.de).2.ant un ut"!"sateur et un 'roupe apache en tapant groupadd apache useradd apache .apr.1.or'.tar.1..c CApache $er)erC . n 0.g apache .sarch"ve en tapant.d .er !e r.3.so.H 0ans !e-ue! on tape success"ve+ent . ..de).s . /! %au0ra pr.H ma-e pu"s en tant -ue root ma-e install ldcon*ig :ans ce r. Apache+PHP+MySQL 35 http.0"te +a"ntenant !e %"ch"er .perto"re httpd.H. .char'era sur !e s"te apr.g+ ce!a 0onne !e r.apr0/chemin-absolu/apr.!.3Installation d'Apache 1I.1.etc.g+ 1e!a va cr.tar. .lib on 0.1.con*igure . tar ()*+ httpd.util.1.or' .con* et on ra@oute !a !"'ne su"vante .%un"&.2.usr..tar.local.co+presse !a 0eu&"C+e arch"ve en tapant tar ()*+ apr.1.sbin.null R `.!..apache.null .perto"re apr.util.m#sql/histor# 1I.on peut -u"tter !a base m#sqlRquit pour ter+"ner on suppr"+e toutes traces 0e nos +an"ps cat .g+ ce!a 0onne !e r.!.perto"re on tape a!ors.3.1 on y tape success"ve+ent .nologin Pour Apache* on 0.66www.ld.3.util -u4on t. . .1 Installation d'Apache n co++ence en cr.

"nsta!!.con* .disable.chroot.httpd.perto"res 04Apache contenant entre autre !e %"ch"er 0e con% se trouveront sous .>ith.chroot.con*.hosts ..enable.usr.en) .ponse Compiled in modules? core.l vo"!? !a r. 0ans !4e&.httpd..c pre*or-.p .con* .perto"res su"vants m-dir .local.local.apache2.imap .libH m-dir .disable.%un"&.httpd.disable.. cp .logs.chroot.usr..disable.p .apache2. 0yna+"-ue+ent 'rUce au +o0u!e :S #0yna+"c share0 ob@ect(.httpd.usr..p .httpd.apache2..local.local.httpd..chroot.con* m-dir .etc m-dir .chroot.httpd..usr.cgi .httpd.chroot.bin.con*igure ..p .p .c mod/so.httpd.httpd.disable.usr.disable. ma-e install Pour avo"r !a !"ste 0es +o0u!es pr.lib m-dir .chroot.libe(ec m-dir .httpd.usr.de) m-dir ..bin.local.chroot..disable.con*.)ar.p ..local.chroot.usr.local.p .con*..so .c http/core.autoinde( .cutab!e 04apache* ? !4e&cept"on 0u +o0u!e php -u" sera char'.p .disable.hoarau.usr.er pr.chroot.con*.lib. cp .apache2.pre*i(0..cessa"res au %onct"onne+ent 0u 0ae+on httpd cp .lena.>>> on cop"e +a"ntenant !es %"ch"ers n.uni(d Par pre*i( on "n0"-ue -ue !es r.run m-dir .66www.usr.enable.usr.httpd.apache2.etc.lib m-dir .asis .alias .usr.chroot.lite .etc.status .local.local.apache2. negotiation .seten)i* .local.libH m-dir .or' .chroot..httpd .httpd.usr.bin.local. ma-e Kt en%"n en tant -ue root.httpd.p .chroot.apache2.mpm0pre*or.. n tape +a"ntenant.p .t#pes .chroot. m-dir . cp .chroot.etc.httpd.httpd.s taper !a co++an0e .apache2 c4est ut"!e 0ans !e cas oO vous vou!e= %a"re coe&"ster 0eu& vers"ons 04 Apache sur votre systC+e.apr.mime.apache2. 1I.p .include .disable..usr.chroot..usr.apache2.httpd.c 1hacun 0e ces +o0u!es est 0"recte+ent "nt.httpd. Apache+PHP+MySQL 35 http.p .lib m-dir ..apache2.local.charset.usr.chroot.local.org m-dir .nss>itch.usr. cp .disable.etc.disable.p .a!ab!e+ent !es r.usr.httpd.httpd.chroot.p .apache2.local.disable. Chrooter Apache n 0o"t cr.userdir .disable.'r.chroot.bin m-dir .local..usr.actions .apache2 .httpd .

usr.libH .libH .con*.chroot.libpcre.1 6M26M5 KMo such *ile or director#L Apache+PHP+MySQL 32 http.H KI(IIIID*b'I1aeDIIIL .libphp!.so.IC= 2/7:2M&@L 0 .S .trace .libH .so.H .1.usr.so.modules 0ans !es %"ch"ers .pass>d .apache2.tmp.pass>d et .apache2.apr.H .httpd.etc.group on ve"!!era ? !a"sser seu!e+ent !4ut"!"sateur et !e 'roup apache n v.local.usr.local.1.)dso.local.usr.1 0R .so.linu(.I 0R .libaprutil.so.chroot.local.H .httpd.client.httpd.gai.usr.1 .I KI(IIIID*b'I2d2!IIIL libe(pat.apache2.su!tat linu(.usr.usr.etc.chroot.H .usr.httpd.apr.libcr#pt.so.so.urandomC= 2/7:2M&@L 03 openKC.libH .libm.%un"&.2 KI(IIIID*b'I1e!3IIIL libc.libpthread.so.modules.linu(.1 0R .chroot.(JH/H .so.pen0ances 0u 0ae+on en tapant ldd .lib cp .1 KI(IIIID*b'I2 c1IIIL libcr#pt.apr.so.modules.libH cp .etc.libH .libuuid.libH .cesa"res en tapant cp .httpd.libH .etc.libe(pat.so.I .httpd.tmp.so.libapr.so.local.group .httpd.libH .etc.resol).cp .usr.so.apache2.r"%"e !es 0.libpcre.1.I .lib.lib cp .I 0R .chroot.etc.lib.httpd.etc.local.o .libH cp .I KI(IIIID*b'I2* 'IIIL libaprutil.chroot.or' . cp .2 KI(IIIID*b'I31DaIIIL on cop"era 0onc !es b"b!"othC-ues n.lib.chroot.(JH.libc.1 6M26M5 KMo such *ile or director#L openKC.1 KI(IIIID*b'I22D3IIIL libpthread.local.usr.so.libH cp .so.libc.libH n !ance !e 0ae+on httpd en traLant !es appe!s ? 04autres %"ch"ers ou b"b!"othC-ues en tapant strace .so.libdl.chroot.1 .usr.usr.libe(pat.libapr.libH .usr.1 0R .so.libH .so.etc on cop"e !es +o0u!es ? !4en0ro"t -u" va b"en cp .chroot.chroot.httpd.chroot.1 .usr.etc.libaprutil.m#sql.1.libc.trace V grep open openKC.librt.chroot.libH .chroot.libH cp .so.httpd.httpd vo"!? ce -ue La 0onne 0ans !e %"ch"er cat .chroot.libH .libH .I .usr.1 0R .ld.2 0R .so.libe(pat.libH cp .so.lib.so.local.libH .I .libH .usr.so.chroot.httpd.m#sql.libH .libH .con*C= 2/7:2M&@L 0 .libH cp .con* .local.so.bin.local.2 .httpd.libH . cp .so.chroot.httpd.66www.local.1 KI(IIIID*b'I2Hc'IIIL librt.1 KI(IIIID*b'I2a*cIIIL libapr.httpd.bin.apr.apache2.so.usr.chroot.libH .libdl.libH cp .local.local.so.1 0R KI(IIIID***e'*JbIIIL libpcre.librt.httpd.so.H 0R .apache2.libcr#pt.(JH.so.so.I KI(IIIID*b'I2I!DIIIL libdl.I KI(IIIID*b'I2JceIIIL libuuid.1 .apr.libH cp .chroot.so.httpd.de).2 .usr.httpd.so.httpd.1.libpthread.usr.httpd vo"!? !e r.lib.1.ld.libH .chroot.libuuid.libH cp .I .so.I 0R .so.so.apache2.usr.libH cp .I 0R .apr.usr.con*C= 2/7:2M&@V2/C&26b6CL 0 3 openKC.soC= 2/7:2M&@L 0 openKC.tls.

so.lib.client.usr.etc.con*C= 2/7:2M&@L 0 openKC.libc.HC= 2/7:2M&@L 0 openKC.libpam.libnss/*iles.libc.apr.etc.libH cp .etc.httpd Apache+PHP+MySQL 33 http.usr.HC= 2/7:2M&@L 0 .1 6M26M5 KMo such *ile or director#L openKC.2 .local.local.libH .libm.libresol).error/logC= 2/972M&@V2/C76A5V2/APP6M:V2/C&26b6C= IHHHL 0 H openKC.perto"re chroot.apr.so.libnss/*iles.66www.nss>itch.local.apr.etc.apr.libH .1 6M26M5 KMo such *ile or director#L openKC.IC= 2/7:2M&@L 0 .libH on +o0"%"e +a"ntenant !es 0ro"ts et propr".I.2 .usr.libH .openKC.libH .apache2.libnss/mdns /minimal.1C= 2/7:2M&@L 0 openKC.1 6M26M5 KMo such *ile or director#L openKC.usr.libnsl.usr.usr.lib.1 6M26M5 KMo such *ile or director#L openKC.2 .lena.usr.libresol).httpd chmod .1 6M26M5 KMo such *ile or director#L openKC.httpd.apr.apache2.1 6M26M5 KMo such *ile or director#L openKC.1C= 2/7:2M&@L 0 .2C= 2/7:2M&@L 0 .so.libm.libresol).1.logs.apr.libH .usr.IC= 2/7:2M&@L 0 openKC.so.libH cp .libH .libresol).ta"re 0u r.libnsl.usr.IC= 2/7:2M&@L 0 .so.client.so.local.2C= 2/7:2M&@L 0 openKC.so.so.so.usr.I.local.so.usr.so.usr.libH .libH .libH .local.libnsl.logs.lib.org.usr.libH .local.or' .lib(ml2.1 6M26M5 KMo such *ile or director#L openKC.2C= 2/7:2M&@L 0 openKC.local.httpd.so.lib.usr. 04 Apache cho>n .so.2C= 2/7:2M&@L 0 .so.IC= 2/7:2M&@L 0 .chroot.so.so.libltdl.con*C= 2/7:2M&@L 0 openKC.HC= 2/7:2M&@L 0 .so.libintl.usr.libH .libpam.so.usr.libnss/*iles.httpd.lib.lib.hostsC= 2/7:2M&@V2/C&26b6CL 0 openKC.libnsl.1 6M26M5 KMo such *ile or director#L openKC.(JH/H .host.libH .1 6M26M5 KMo such *ile or director#L openKC.1 .chroot.so.chroot.libH .libH . C= 2/7:2M&@L 0 openKC.apache2.2C= 2/7:2M&@L 0 openKC.libm.usr.ld.hostsC= 2/7:2M&@V2/C&26b6CL 0 openKC.1 6M26M5 KMo such *ile or director#L openKC.%un"&.pidC= 2/7:2M&@V2/C&26b6CL 0 .libH cp .usr.libssl.error/logC= 2/972M&@V2/C76A5V2/APP6M:V 2/C&26b6C= IHHHL 0 H openKC.local.usr.1 6M26M5 KMo such *ile or director#L openKC.local.libH .so.libH .1 6M26M5 KMo such *ile or director#L openKC.tls.JC= 2/7:2M&@L 0 .libH cp .libpam.IC= 2/7:2M&@L 0 openKC.1 6M26M5 KMo such *ile or director#L openKC.libc.1C= 2/7:2M&@L 0 openKC.hoarau.resol).usr.1 6M26M5 KMo such *ile or director#L openKC.usr.1 .libH .usr.so.libintl.chroot.1 6M26M5 KMo such *ile or director#L openKC.httpd.libH .1C= 2/7:2M&@L 0 . n !es cop"era en tapant cp .so.libH .libintl.httpd.chroot.usr.libaudit.1.IC= 2/7:2M&@L 0 openKC.so.libmcr#pt.usr.ld.etc.lib+.so.libaudit.etc.libH .so.lib.so.apr.so.so.2 .etc.so.1C= 2/7:2M&@L 0 .usr.cacheC= 2/7:2M&@L 0 openKC.so.apr.libH .so.libnss/mdns /minimal.2C= 2/7:2M&@L 0 openKC.chroot.DC= 2/7:2M&@L 0 openKC.con*C= 2/7:2M&@L 0 openKC.logs.libH .so.usr.etc.httpd.7 ID!! .libaudit.lib+.IC= 2/7:2M&@L 0 openKC.so.libnss/mdns /minimal.1C= 2/7:2M&@L 0 .usr.chroot.libH .so.1 6M26M5 KMo such *ile or director#L openKC.so.libH .so.2C= 2/7:2M&@L 0 .libH .local.so.httpd.libH .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.client.chroot.libH .libH .usr.ld.so.cacheC= 2/7:2M&@L 0 openKC.lib(ml2.IC= 2/7:2M&@L 0 .usr.usr.JC= 2/7:2M&@L 0 openKC.1 6M26M5 KMo such *ile or director#L openKC.so.so.lib.2C= 2/7:2M&@L 0 .libcr#pto.libH .libH cp .1C= 2/7:2M&@L 0 openKC.cacheC= 2/7:2M&@L 0 openKC.etc.7 root?s#s .JC= 2/7:2M&@L 0 .

chroot.cR :irector#Inde( inde(.mod/log/con*ig.httpd.so XI*"odule mod/dir.urandom .seCanonicalMame 2** $er)er$ignature 2** Hostname&oo-ups 2** $er)er5o-ens Prod $er)er7oot C.or' .con*.local.>>>.httpd.so &oad"odule mime/module modules.mod/headers.so &oad"odule )host/alias/module modules.mod/dir.usr.chroot.so &oad"odule *ilter/module modules.ser apache Nroup apache $er)erAdmin >ebmasterT*uni(.apache2C :ocument7oot C.mod/auth+/host.de).chroot.mod/auth+/group*ile.local.so &oad"odule headers/module modules.org 1I.libphp!.mod/mime.de).null c 1 3 cho>n root?s#s .so &oad"odule uni(d/module modules.I.html X.on cr.so &oad"odule auth+/core/module modules.httpd.chroot.>>>.so &oad"odule access/compat/module modules.so &oad"odule dir/module modules.so &oad"odule )ersion/module modules.apache2.httpd.httpd.httpd.de).rer !e s"te pr"nc"pa! p!ac.mod/auth+/user.chroot.scoreboard &oad"odule php!/module modules.>>>.I*"oduleR G 0000000000000000000000000000000000000000000000000 G H55P and per*ormance settings Apache+PHP+MySQL 39 http.I?JI .httpd.66www.mod/auth/basic.I.so &oad"odule auth/basic/module modules.httpd.org et un secon0a"re sous .mod/auth+/core.urandom p!acer +a"ntenant vos %"ch"ers ht+! sous .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 .pid $core8oard4ile .%un"&.mod/)host/alias.de).1 Con*iguration d'Apache )o"!? !e %"ch"er .usr. .so &oad"odule log/con*ig/module modules.local.so &oad"odule authn/core/module modules.usr.chroot.chroot.e +a"ntenant un %"ch"er poube!!e .apache2.logs.null chmod HHH .mod/authn/core.mod/reqtimeout.so &oad"odule auth+/user/module modules.local.httpd.mod/*ilter.so &oad"odule authn/*ile/module modules.so &oad"odule reqtimeout/module modules.*uni(. sous .con* G 0000000000000000000000000000000000000000000000000 G 8asic settings G 0000000000000000000000000000000000000000000000000 &isten I.usr.mod/access/compat.de).httpd.>>> on va cons"0.-er)ao.httpd.apache2.chroot.so &oad"odule auth+/group*ile/module modules.-er)ao.httpd.>>>C Pid4ile .logs.mod/)ersion.chroot.so &oad"odule auth+/host/module modules.mod/authn/*ile.org .mod/uni(d.null en tapant m-nod .de).

W Add5#pe application.compress .-er)ao.cR "in$pare$er)ers ! "a($pare$er)ers 1I $tart$er)ers ! "a(Clients 1!I "a(7equestsPerChild I X.(.-er)ao.logs.g+ .tg+ Add5#pe application.I*"oduleR :e*ault5#pe te(t.usr.access/log combined G 0000000000000000000000000000000000000000000000000 G Oirtual hosts G 0000000000000000000000000000000000000000000000000 XOirtualHost SR :ocument7oot C.orgC Apache+PHP+MySQL 4.usr.agent]iC agent 6rror&og .t#pes X.tg+ Add5#pe application.ser.orgC $er)erMame C>>>.>>>.apache2.mime.g+ip .compress .local.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\.>>>.:irector#R G 0000000000000000000000000000000000000000000000000 G "I"6 encoding G 0000000000000000000000000000000000000000000000000 XI*"odule mod/mime.G 0000000000000000000000000000000000000000000000000 5imeout 3II 3eepAli)e 2n "a(3eepAli)e7equests 1II 3eepAli)e5imeout 1! XI*"odule pre*or-.cR Add6ncoding (.ser.local.66www.orgCR 2rder allo>=den# Allo> *rom all X.:irector#R X:irector# C.apache2.tg+ X.-er)ao.>>>.*uni(.orgCR 2rder allo>=den# Allo> *rom all X.or' .W Add6ncoding (.plain XI*"odule mod/mime.R 2ptions Mone Allo>2)erride Mone 2rder den#=allo> :en# *rom all X.tar .>>>.error/log Custom&og .g+ .R c.con*.C re*erer &og4ormat Cc\.logs.usr.g+ip .-er)ao.(.apache2.orgC $er)erAlias C>>>.:irector#R X:irector# C.Agent]iQCC combined &og4ormat Cch cl cu ct QCcrQC cRs cbC common &og4ormat Cc\7e*erer]i .local.>>>. http.(.cR 5#pesCon*ig .-er)ao.%un"&.I*"oduleR G 0000000000000000000000000000000000000000000000000 G Access control G 0000000000000000000000000000000000000000000000000 X:irector# .

*ile.153. A pr.usr..ssl on '.org cr.local.org et vous 0evr"e= retrouver vos pa'es.logs..>>>. 1I.enable..e sur 0"s-ue #pour .de)el et libH c.*uni(..>ith.%un"&.hosts pour vos h7tes v"rtue!s* c4est ? 0"re -ue s" votre serveur a !4a0resse /P !oca!e 192. .-er)ao.*uni(.local.apache2.sent 0ans !e r.con* .openssl .>>>.*r vous 0eve= avo"r 1'2.e(i* A noter -ue !4opt"on sa*e/mode n4est p!us pr"se en co+pte 0epu"s !a vers"on 5. non ch"%%r.access/log combined X.>>>.-er)ao.etc.imap.1I mana.orgC $er)erAlias C*uni(..+arra'e 04Apache( .org.>ith. Pour !ancer +a"ntenant Apache* "! %aut taper.perto"res pour stocBer !es !o's 0e vos s"tes m-dir .apache2.org vous 0eve= %a"re 0e +G+e pour tous vos c!"ents.con*ig.logs. n "nsta!!era pr.a!ab!e+ent !es r..imap . .OirtualHostR XOirtualHost SR :ocument7oot C.-er)ao.usr.>>>..>ith..-er)ao..*uni(.orgC 6rror&og logs.6rror&og logs.con*igure .>ith.httpd.>ith.-er)ao.%.apache2.*uni(.error/log Custom&og logs.-er)ao.chroot.debug0no .11.!.-er)ao.chroot.'a!e+ent !es a!"as -u" vont b"en au n"veau 0e .ap(s20.-er)ao.m#sql .org.etc.usr.er un r.local.access/log combined X..bin.error/log Custom&og logs.org *uni(.ssl .66www.1.local.-er)ao.perto"re 0e php* vous tapere= .perto"re php.>ith.apache2.de)el on tape ensu"te ma-e Pu"s en tant -ue root ma-e install cd .b+2 1e!a va cr.httpd .!.r.usr.path0..-er)ao. !es pacBa'es su"vants libH mcr#pt.>ith.>ith. libdir0libH .local..-er)ao.er pr.3.org.!Installation de PHP 1I.or' .OirtualHostR vous 0eve= cr.1.enable.-er)ao..*r >>>.chroot..1.gette(t .mcr#pt .bin.orgC $er)erMame C*uni(.>ith.org.httpd Ma"ntenant votre nav"'ateur pr.1HJ.-er)ao.-er)ao.>>>.a!ab!e+ent Apache+PHP+MySQL 41 http.usr. 0ans !e cha+p >FL taper http?.11.tar.1 Installation a)ec les sources de PHP Pour php!* on tapera 04abor0 tar ()*1 php.org m-dir .!.v"ter 04avo"r ? sa"s"r un +ot 0e passe ? cha-ue re0..httpd.nCre une c!.apache2.client.er . et a pour no+ !oca! mana. chroot .ap(s .

usr.local.2 0R .so..libH .local.php .usr. .pecl ..phar .so.include.include cp .chroot..hoarauT*uni(.apache2.chroot..phpS .su!tat linu(.1 KI(IIIID*d D!*eHIIIL libmcr#pt.. openssl req .bin.%un"&.ini..1 0R .so .apache2.. .D 0R .-e# ser)er.httpd.bin cp .ne> ..local.chroot.chroot.or' .chroot.libc.httpd..production .libH .I KI(IIIID*d DH I!IIIL libresol).apache2.UUUUUU .'= the *ield >ill be le*t blan-...httpd..usr. 0R ..con* et en !e reno++ant php.usr.local. 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 '.1 KI(IIIID*d DHD1eIIIL libc.1 0R .chroot..so.7* ..apache2.so.php. 9hat #ou are about to enter is >hat is called a :istinguished Mame or a :M.7* ..org 6mail Address EF?oli)ier.modules.usr.usr.php...usr.2 KI(IIIID*d DH1eeIIIL librt..libphp!.httpd..bin.libcr#pt..7* .apache2.66www.nit Mame Keg= sectionL EF? Common Mame Keg= #our name or #our ser)er's hostnameL EF?horde.local.so.out ser)er.bin cp ..libmcr#pt ..1 0R KI(IIIID***!1'**IIIL libcr#pt.libresol).php.lib cp .modules.!..libltdl.usr...libH . KI(IIIID*d D!ddeIIIL libltdl.so..lib.D KI(IIIID*d D!bd3IIIL Apache+PHP+MySQL 42 http.!. ..local.usr.chroot.httpd.so.usr.httpd..-e# .usr...-e# 1I2 Nenerating 7$A pri)ate -e#= 1I2 bit long modulus ..local..local.11.local.modules cp .so vo"!? !e r.client.usr.libH .libH .so.httpd.libH .libphp!.3.bin cp .I 0R .UUUUUU e is H!!3D KI(1III1L Knsu"te on cr.usr.httpd..librt..out ser)er.. 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 .local...passe An optional compan# name EF?*uni( 1I.bin.-er)ao.so.2 Chrooter PHP A pr...usr..local.3 pour !e +ettre sous .org Please enter the *ollo>ing 'e(tra' attributes to be sent >ith #our certi*icate request A challenge pass>ord EF?mot..local.local....!..libH . +a"ntenant on v.local..so.client..sent on va cop"er !e %"ch"er php.usr.openssl genrsa .libH .local.so.r"%"e !es 0..con*. avec cette c!.ini cp .usr.ini n cop"e .de.'a!e+ent !e +o0u!e php en tapant cp .chroot.pen0ances 0e b"b!"othC-ues 0u +o0u!e en tapant ldd .php.csr @ou are about to be as-ed to enter in*ormation that >ill be incorporated into #our certi*icate request.ini.usr.production se trouvant 0ans !e r. ...perto"re 0e PHP php.usr.so.libmcr#pt.usr..so.)dso..usr...e un cert"%"cat s"'n.

libH .so.I KI(IIIID*d D3**2IIIL .so.1 0R .httpd.libphp!.so.2 KI(IIIID*d D!33!IIIL libnsl.@? .so.libH cp .so.* taper http?.H KI(IIIID*d D!!3'IIIL libdl.or' .usr.I. su"te ? !4"nsta!!at"on 04 apache* "! %aut @uste taper cp .httpd.so.httpd.g+ip .so.1.so.(.source .so Apache+PHP+MySQL 43 http.1.libc.libcr#pto.1.so.libH .er +a"ntenant !e %"ch"er in*ophp.I.httpd.libH .m#sql. modules.php .libpthread.I .libH .so.libH .2 KI(IIIID*d D !DaIIIL libc.libH .tg+ n ra@oute Add5#pe application.1.php ou http?.localhost.so.H KI(IIIID*d D 2IeIIIL libpthread.php .httpd.nommachine.usr.lib+.html inde(.chroot.libH .usr.chroot.%un"&.(.libH cp .local.libH .in*ophp.libnsl.s 0ans !4env"ronne+ent chroot.2 KI(IIIID*d DD3e IIIL libaudit.libpam.I .2 0R ..1J .libH .m#sql.httpd.I 0R .3 Con*iguration de PHP n va +o0"%"er +a"ntenant !e %"ch"er .client.httpd.libH .chroot.chroot.so.(.usr.libH .usr.libcr#pto.so.con* en ve"!!ant ? ra@outer &oad"odule php!/module ? !a su"te 0es !"'nes Add5#pe application.libssl.libaudit.I.php contenant XPphp phpin*oKLA PR Que vous p!acere= sous .libH .httpd.chroot.r.1 0R .usr.local.so.1 KI(IIIID*d D *IDIIIL libssl.php! .1 .php et !? +a'"-ue 0evra"t s4a%%"cher 0es "n%o sur !a con%"'urat"on 0e PHP sur votre systC+e.I.H 0R .1 KI(IIIID*d D!11dIIIL lib+.so.lib.so.so.libH 1I.libH .%.1 KI(IIIID*d D3dd'IIIL !a p!upart 0es b"b!"othC-ues ont 0.H .so.>>>* 0ans !4>FL 0e votre nav"'ateur pr.chroot.so.chroot.chroot.libH .local.php.so.con*.usr.J KI(IIIID*d D!DbcIIIL libm.so. cop".phtml Add5#pe application.so.so.libpam.httpd.chroot.httpd.libc.so.in*ophp.libH .2 0R .g+ .so.libaudit.usr.lib(ml2..!.W Add5#pe application.H 0R .libssl. .usr.libH cp .I .libH .linu(.libpam.libH .compress .66www.J 0R .html n ra@outera :irector#Inde( inde(.1.I.php .I.1.libH cp .httpd.so.apache2.usr.(.libdl.httpd.usr.so.1 0R .(JH.libH cp .so.ld.so.so.usr.I 0R .usr.so.I KI(IIIID*d D!'cHIIIL libintl.t.libm#sqlclient.I KI(IIIID*d D Jc'IIIL lib(ml2.libH .lib cp .libm.I 0R .libH .I KI(IIIID*d D caJIIIL libcr#pto.libmcr#pt.php n re!ance Apache cr.I 0R .usr.libintl.php3 .phps Par a"!!eurs ? !a !"'ne :irector#Inde( inde(.so.I .usr.

log s.php.etc.sact"vat"on 0e !4up!oa0 Kn +ettant ? n !es var"ab!es 04env"ronne+ent* 8K9* P S9* etc.socn va .local.H.%"n"t"on 0u %"ch"er 0e !o' .ponse au& re-uGtes %a"tes par 0es c!"ents.!"vrera pas 04"n%or+at"on en r.tmp. e(pose/php02** PHP ne 0.A99KQ9/ Q pour un %onct"onne+ent opt"+a! 0e m#sql avec php* "! %au0ra pr.66www.apache.H&ancement automatique 1I.at"on 04un %"ch"er 0e !ance+ent m#sqld -u4on p!acera sous .ini m#sql.c"ser !a pos"t"on 0u %"ch"er socBet 0e m#sql 0ans !e %"ch"er php.m#sql.bin.usr.sact"ver ce para+Ctre 1I. 0e 0.log *ile/uploads 0 2** :. displa#/errors 0 2** PHP ne 0. log/errors 0 2n Les erreurs et warn"n's seront "nscr"ts 0ans un %"ch"er 0e !o' error/log 0 :.d G<. 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.or' .de*ault/soc-et 0 .'a!e+ent +o0"%"er !es para+Ctres su"vants.1 &ancement automatique de "#sql Qous pouvons passer ? !a cr.sh Apache+PHP+MySQL 44 http.%un"&.!"vrera ? !4a%%"cha'e #0ans !e nav"'ateur( aucune erreur et warn"n'.init.-uence "! est %orte+ent conse"!!.

or' .pid CH7225.chroot [CH7225 [H55P: AA stopL -ill ^cat [\CH7225].de).usr.m#sql.tat 0e +arche 3*4 et 5 on 0o"t nor+a!e+ent taper.tat 0e +arche 3* 4 et 5* on tapera ensu"te ch-con*ig .usr.* [\CH7225/PHP].chrootuid echo .tmp.bin.apache2.pid echo .[\$2C365] nohup [\CH7225. CH7225/"@$%&0.init.chroot.[\PI:4I&6]^ rm .at"on 04un %"ch"er 0e !ance+ent apache -u4on p!acera sous .httpd $2C3650.null 2RB1 B sleep ! BB ln [\CH7225/"@$%&].66www.local.m#sql.m#sqld PI:4I&60. G processname? httpd CH72250.httpd H55P:0.m#sqld.[\$2C365] AA stopL -ill ^cat [\CH7225/"@$%&].sbin.H.sbin.[\$2C365] [\CH7225/PHP ].local.usr. Apache+PHP+MySQL 45 http..* 1* 2 et 5 ch-con*ig .sh 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.usr.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.le)el 3 ! m#sql on Kt un arrGt ? !4.bin.httpd.2 &ancement automatique d'Apache nous pouvons passer ? !a cr.soc"@$%&:0.usr.chroot.le)el I12H m#sql o** 1I.I:] [\CH7225/"@$%&] m#sql [\"@$%&:] R .I:0.etc.[\$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.bin.sage? ^basename [I^ \startVstop]C RB2 esac e(it I e(it H AA Pour un !ance+ent auto+at"-ue ? !4.local.n C apacheC case C[1C in startL .d G<.[\PI:4I&6]^ AA SL echo CC echo C.apache2.n C m#sqlC case C[1C in startL rm ..%un"&.logs.r* [\CH7225/"@$%&].tmp.tat 0e +arche .httpd PI:4I&60.m#sql CH7225/PHP0.chroot. It is used to ser)e Q G H5"& *iles and CNI.

orgCR 2rder allo>=den# Allo> *rom all X.-er)ao.m#sql .!. @our "#$%& connection id is 3 $er)er )ersion? !.u adm#sql .er une base >ordpress et un ut"!"sateur admin>p -u" va pouvo"r acc.httpd.log $ource distribution Cop#right KcL 2III= 2I12= 2racle and.blog.+ip on reno++e !e r..bin.p 6nter pass>ord? 9elcome to the "#$%& monitor. La pa'e 0e t.!.or its a**iliates.m#sql.ch-con*ig .!.66www.le)el I12H apache o** 1I..org +a"ntenant on va cr.>>>.httpd.-er)ao.usr. m) >ordpress blog.wor0pressA%r.net6te!echar'e+ents n y r. 2ther names ma# be trademar-s o* their respecti)e o>ners. un+ip >ordpress.usr. All rights reser)ed. 5#pe 'Qc' to clear the current input statement.char'e+ent 0e !a vers"on %ranLa"se se trouve sur ce s"te http.S 52 Cadmin>pCTClocalhostC .apache2.DInstallation d'un blog >ordpress en local 9ordpress vous per+et 0e cr.cupCre !4arch"ve -u4on 0.er un b!o'.R I:6M5I4I6: 8@ CmotpasseCA %uer# 23= I ro>s a**ected KI=II secL m#sqlR 4&.chroot.perto"re appropr". 2racle is a registered trademar.1.or' .0er ? !a base .66www. m#sqlR C76A56 :A5A8A$6 >ordpressA %uer# 23= 1 ro> a**ected KI=I1 secL m#sqlR N7AM5 A&& P7IOI&6N6$ 2M >ordpress.tat 0e +arche .o* 2racle Corporation and.or its a**iliates.perto"re .:irector#R et Apache+PHP+MySQL 45 http.local.chroot.local.*r/47.co+presse 0"recte+ent sous !e r.le)el 3 ! apache on Kt pour un arrGt ? !4.3.%un"&. 5#pe 'helpA' or 'Qh' *or help.$H P7IOI&6N6$A %uer# 23= I ro>s a**ected KI=II secL m#sqlR quit 8#e Ma"ntenant 0ans !e %"ch"er .perto"re >ordpress 0ans un no+ 0e r.2'.>>>.con* on ve"!!era ? ra@outer X:irector# C.* 1* 2 et 5 ch-con*ig .con*.httpd. Commands end >ith A or Qg.

2.or' .es !oca!host A Pr.org.%"&e 0e tab!e >pblog1/ /! su%%"t ensu"te 0e su"vre !es "n0"cat"ons.es >ordpress A /0ent"%"ant admin>p A Mot 0e passe J!e +ot 0e passe pr. A>stats %a"t appe! ? un scr"pt 18/* ce -u" n4est pas !e cas 0e >ebali+er -u" pourra serv"r pour un s"te web s.etc.usr.I!.1 Présentation 9ebali+er est un out"! -u" per+et 0e pr.-er)ao.init.orgC $er)erMame Cblog.>>>.apache2.local. Pour !4up!oa0 0es photos "! %au0ra +o0"%"er .-er)ao.admin.blog.hosts.src.-er)ao. 04a%%"cher !eurs r. Apache+PHP+MySQL 42 http.-er)ao. Pour !e reste vous pouve= consu!ter !es no+breu& s"tes sur >ordpress -u4on peut trouver sur !e net.a!ab!e+ent %"&.blog.content.-er)ao.d.66www.blog.php.or' 0ans !e %"ch"er .install.d.J A H7te 0e !a base 0e 0onn.org.net6weba!"=er6 sous !a %or+e 04une arch"ve tarba!! >ebali+er.org.php Lors 0e !a con%"'urat"on 0e !a base* !es para+Ctres ? sa"s"r sont A Qo+ 0e !a base 0e 0onn. Les 0eu& out"!s ont !a part"cu!ar"t.org.>>>.access/log combined X. Le pre+"er >ebali+er est sVre+ent !e p!us connu* !e 0eu&"C+e a>stats est !e nouveau venu 0ans !e 0o+a"ne* "! 'a'ne ? Gtre connu car "! %ourn"t une "n%or+at"on p!us r"che -ue >ebali+er. .sente 0eu& out"!s pour ana!yser !es !o's 04Apache.-er)ao.orgC 6rror&og logs.2.+run"&.con*.OirtualHostR on re!ance apache.apache start n ra@oute !4>FL b!o'.( access"b!e sur "nternet.etc.httpd. #18/ 0.>p..%un"&.ini en +ettant *ile/uploads 0 2n upload/tmp/dir 0 .blog.su!tats 0ans une pa'e web.error/log Custom&og logs. Ma"ntenant on !ance !4"nter%ace 04a0+"n"strat"on 0e wor0press en +ettant 0ans votre nav"'ateur !4>FL su"vant http?.cup.senter 0e +an"Cre synth.etc.cur"s.chroot.Bervao.init. )ous pouve= !e r.23.XOirtualHost SR :ocument7oot C.>p.sact"v. 11.tg+ .2 Anal#ser les logs d'Apache a)ec >ebali+er 11.blog.1 Présentation 1ette pa'e pr.rer ? !4>FL www.uploads re!ance= apache 11 Anal#ser les logs ddApache 11.t"-ue !es !o's 04 apache sous %or+e 0e pa'es ht+! avec 'raph"-ue.'a!e+ent !e %"ch"er .apache stop .

bin.e !e r.install .1 .perto"re su"vant m-dir .1 .2I1I1II1.m H >ebali+er. .install .bin. n tape +a"ntenant ma-e et en%"n en tant -ue root ma-e install )o"!? !e r.man.bin.>eba+ol)er.enable.+run"&.usr.>ith.local.local.src.Neo:8 0ans !e-ue! on 0.usr.language0*rench .usr.66www.de)el* +lib1.logs tar ()*+ >ebali+er.>ebali+er ..share.m H sample.de)el* lib1pegH2.s >ebali+er .bin.bin. sur !e s"te p!ut7t -ue son a0resse /P* c4est -uan0 +G+e p!us par!ant* enable.co+presser !4arch"ve pr"nc"pa!e* on tapera.>cmgr.usr.usr.23..man1.local.apache2.m H >cmgr.etc .usr.etc.local.usr.c >cmgr .c .usr.tg+ 1e!a va nous cr.geoip per+et 04avo"r sa pos"t"on '.man1.11.perto"re 0e trava"! pour 0.>eba+ol)er ln .er un r..or' .%un"&.share.install .usr.1 .usr.man.usr.usr.o'raph"-ue.share. tar ()*+ >ebali+er.bin.* .I!. de)el et db1.'a!e+ent !a base 0e %tp.2.usr.local.usr.local.>cmgr rm .net6pub6weba!"=er6'eo0b6 en tant -ue root on cr.bin m-dir .co+presse 0ans !e r.ta"re en tapant cho>n .local.sarch"ve !e tarba!! tar ()*+ >ebali+er.geodb.man1.a!ab!e+ent on "nsta!!era !es pacBa'es su"vants gd.dns per+et 04avo"r !e no+ 0e !a +ach"ne -u" s4est connect.share.tg+ Ma"ntenant on r.I! 0ans !e-ue! on tape en tant -ue s"+p!e ut"!"sateur.bin.perto"re su"vant cd .man.install .man.usr.*lags. :ans un r.local.66%tp.>ebali+er.man.7 root?root *lags.sample 1o++e tou@ours s" !es che+"ns ne vous p!a"sent pas.con* .usr.enable.c ..su!tat m-dir .2 Installation Pr.>ebali+er.2.c >ebali+er .es 0e '.tg+ ce!a va 0onner un r.usr.s >ebali+er.usr.p .cupCre !es 0rapeau&* on !e 0.>eba+ol)er .p .23.man1.dns .share.share.1 rm .geoip L4opt"on enable.de)el n "nsta!!era .de)el* geopip.* .1 .o!oca!"sat"on -u4on peut trouver par "c" Apache+PHP+MySQL 43 http.perto"re *lags= on chan'e !e propr".local.local.man1 m-dir .p .de)el* libpng.bin.bin. 0onn.local.usr.local.local.perto"re >ebali+er.con*igure .1 ln .install .c .>eba+ol)er.2.1 .con*.

hoarau.Neo:8.r.usr.s par >ebali+er 2utput:ir .>ebali+er.local.2.org.o!oca!"sat"on Neo:8 #es e+p!ace+ent 0e !a base Neo:8:atabase . sous .org !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 !4e+p!ace+ent oO se trouvera !a base 0e 0onn.access/log !4e+p!ace+ent 0es %"ch"ers '.3 Con*iguration Ma"ntenant on cr.apache2. "nsta!!.>ebali+er.es 0e '.lena.%un"&.share.-er)ao.logs.n.66www.con*igure .NeoIP..dat on act"ve !es "n%or+at"ons '.usr.NeoIP.con* :ans ce %"ch"er on 0o"t 0.help 11.local.t.e n.usr.share.>ebali+er !e no+ 0u s"te ? ana!yser HostMame lena.so!ut"on :QS :M$Cache dns/cache.usr.es au& a0resses /P NeoIP #es e+p!ace+ent 0e !a base NeoIP:atabase .usr.cessa"re ? !a r.logs.apache2.o'raph"-ues !".con*.usr.e !e %"ch"er 0e con%"'urat"on en partant 04un %"ch"er e&e+p!e -u" a .%"n"r !es para+Ctres su"vants* !e no+ 0u %"ch"er 0e !o' 04 apache ? ana!yser &og4ile .etc cp .db !e no+bre 0e process :M$Children ! on act"ve !a base 0e 0onn.local.or' .dat on act"ve !4a%%"cha'e 0es 0rapeau& Apache+PHP+MySQL 49 http.usr.local.etc.sample .local.Neo:8.etc.

e ? !4en0ro"t oO vous ave= tap.sing 9ebali+er Neo:8 2I1I1II1.org' Histor# *ile not *ound.des-top.sing :M$ cache *ile dns/cache.>ebali+er.dacces.tilisation /! su%%"t 0e taper >ebali+er* par 0.chemin.etc.*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.23.org.usr.%aut "! !"ra !es para+Ctres pr.access/log Kcl*L :M$ &oo-up K!L? 12 addresses in H seconds= 2.Countr#4lags #es e+p!ace+ent 0u r.lena.apache2. Nenerating report *or $eptembre 2I1I Nenerating report *or 2ctobre 2I1I $a)ing histor# in*ormation.html Apache+PHP+MySQL 5.sing log*ile .H.>ebali+er Hostname *or reports is 'lena.con* 9ebali+er O2.*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.apache2.%un"&.2mnb (JH/H L 4rench . Nenerating summar# report 231 records in 1 seconds= 231.html usage/2II111.or' .local. http.!.local.hoarau.usr.I! K&inu( 2.perto"re 0es 0rapeau& 4lag:ir .apache2.logs.db ..1 Creating output in . .sec S"non !a synta&e est !a su"vante >ebali+er .sents 0ans !e %"ch"er .33.*r Pour !es accCs 0"rects Hide7e*errer :irect 7equest pour cacher !es !"ens ? part"r 0e votre s"te Hide7e*errer >>>..*uni(.local.usr. inde(...local.access/log 1e!a nous cr.2.sec .logs. !a co++an0e !es %"ch"ers ht+! su"vants.-er)ao.usr.66www.org pour cacher !es !"ens ? part"r 0e 'oo'!e Hide7e*errer google 11.logs.

ctr#/usage/2II111.Kt !es 'raph"-ues su"vants.or' .png hourl#/usage/2II111.png dail#/usage/2II111.66www.png vo"!? ce -ue La 0onne Apache+PHP+MySQL 51 http.png usage.%un"&.

$tatistiques d'accYs à asteri(.Zun.2II2 ID? 3 5AH5 7ésumé par mois "ois Mu"n 2..or' .%un"&..1 Apache+PHP+MySQL 52 http.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 8enerate0 by Eeba!"=er )ers"on 2.-er)ao.66www.*r Période du résumé? 12 derniers mois Nénéré le 23.

-er)ao. I 3 2 2 1 3 2 2 1 1 2 "a( 3 3 2 2 1 Apache+PHP+MySQL 53 http. A Z 1o0e 3.66www.4 A Qot Mo0"%"e0 2 1 "o#..2II2 ID? 3 5AH5 WStat"st"-ues @ourna!"CresX WStat"st"-ues hora"resX W>FLsX WPa'es 04entr.Kt en c!"-uant sur Mu"n 2. H"ts par Heure H"ts par Mour Y"ch"ers par Mour Pa'es par Mour )"s"tes par Mour Z ctets par Mour Hits par code de réponse 1o0e 2.%un"&.eX WPa'es 0e sort"eX WS"tesX WPaysX $tatistiques mensuelles pour Zuin 2II2 9ota! 0es H"ts 9ota! 0es Y"ch"ers 9ota! Pa'es 9ota! )"s"tes 9ota! 0es Zo 9ota! 0es S"tes un"-ues 9ota! 0es >FLs un"-ues .Zun.*r Période du résumé? Zuin 2II2 Nénéré le 23..or' .2 on obt"ent $tatistiques d'accYs à asteri(.

.... .or' ...[ Oisites 1 1.[ 4ichiers 2 1...[ 3o 1.[ 3o 5otal I I I I I I I I ....[ Apache+PHP+MySQL 54 http...[ Pages 5otal "o#.[ 4ichiers 5otal "o#......$tatistiques 1ournaliYres pour Zuin 2II2 Zour 22 3 Hits 1.[ $tatistiques horaires pour Zuin 2II2 Heure I Hits "o#...[ $ites 1 1. .[ Pages 2 1.. .. 5otal "o#.......66www.......%un"&...

[ 5op 2 sur un total de 2 .[ ....[ 6apacheDpb.[ ...[ 6 ....[ ......[ .[ .[ 1.......[ ...7& 5op 2 sur un total de 2 ..[ .[ 6 51...........[ ....[ ......7& 5op 1 sur un total de 1 sites G Hits 4ichiers 3o Oisites Mom d'hate Apache+PHP+MySQL 55 http..66www........or' ..[ ....[ 1..[ ..[ ....7&s G 1 2 2 1 Hits 55.[ ...[ .52[ 3o 2 1 51.[ .[ ..[ 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 ...[ .[ 6 ....[ .[ 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 ..[ ..[ .7& 5op 1 sur un total de 1 pages d'entrée G 1 2 Hits 55.[ ......[ .[ .......[ ...[ ....[ ........[ .............[ ..[ ...[ .[ .[ .....52[ 33....[ .[ ....[ ...[ .......5.[ ..5.....[ ....[ ..[ .[ ...........[ ..[ ....[ .33[ 3o 1 2 33.[ .[ ..[ 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......52[ Oisites 1 1.[ .[ ...5.[ .[ ...5..[ ...[ ..[ ......[ ...[ ........'"% ...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 .....'"% 33....[ ....[ ...[ ......[ .[ .[ ......[ .[ .........7&s par 3o G 1 2 1 2 Hits 33...[ ........[ ....%un"&.....[ ..[ .......[ .[ .[ 6apacheDpb....[ ..........[ ..[ .[ ...[ ....[ .33[ 55.[ .[ ..[ .......[ ....[ ..[ .......

ohoarau .bash cd .66www.local.cut"on( sous .[ 3o Pa#s 1.online.[ 192..apache.usr..>ebali+er ..access/log cd ...[ QonAreso!u6/nconnu 8enerate0 by Eeba!"=er )ers"on 2..25....usr..usr.>ebali+er .153.cron.[ 192.%un"&.[ 1 1.apache..1 3 1.etc.. M256 s" au !ance+ent 0e vous obtene= co++e erreur Apache+PHP+MySQL 55 http.usr.local.dail# G<..logs...apache.ohoarau.. !e %"ch"er >ebali+er #avec 0es 0ro"ts en e&.bin.bin.apache.help >ebali+er peut +a"ntenant Gtre appe!.[ 4ichiers 2 1..local.....1 S" La ne vous conv"ent pas* vous pouve= rentrer 0es opt"ons ? >ebali+er* pour en avo"r !a !"ste.or' .online ..local......logs..153.usr.access/log Les stats seront 0onc +"s ? @our tous !es @ours. >ebali+er .[ Oisites 1 Mom d'hate 1.local..local....usr.... r.[ 2 1.25 5op 1 sur un total de 1 pa#s G 1 3 Hits 1..[ 4ichiers 2 1.....[ 1...25.'u!"Cre+ent avec cron* sur +a Man0r"va* @4a" ra@out.25 5op 1 sur un total de 1 sites par 3o G 1 3 Hits 1.>ebali+er..>ebali+er.bin...[ 3o 1.

tg+ 1e!a va nous 0onner !e r.online.OirtualHostR n 0o"t +ettre combined pour !e para+Ctre Custom&og.rc.3Anal#ser les logs d'Apache a)ec a>stats 11.homepage.con*ig0*uni(.con* 0ans !e cas oO vous ut"!"se= 0es h7tes v"rtue!s* vo"c" un e&e+p!e 0e con%"'urat"on XOirtualHost 1'2.1.a>stats.perto"re oO se trouve !es %"ch"ers 0e con%"'urat"on 0e vos serveurs.update .homelinu(.etc.perto"re .org?123 .a>stats Pour !a con%"'urat"on 04a>stats on "ra 0ans !e r.cgi.absolu.7eading histor# *ile.>>>root.chemin.D.org :ocument7oot .13.cgi.tools :ans !e cas 04une +"se ? @our on tapera perl a>stats/updateall.homelinu(.a>stats m-dir .3.net * c4est une arch"ve au %or+at tarba!! a>stats.D.online 6rror&og logs.etc. :ans un pre+"er te+ps on va 0evo"r +o0"%"er !.a>statsprog0.1HJ.con*igdir0C.D.absolu.a>stats.co+presse !4arch"ve en tapant .>>>root.bin.online. 11.roger. 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. >ebali+er.d.access/log combined X.a>stats.a>stats est !e r.pl .etc.er !e r.3.d.init.1.C' to update con*ig *uni(.1.online. 11.1.perto"re tools cd a>stats.chemin. Q4oub!"e= pas 0e re!ancer apache en cas 0e +o0"%"cat"on .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.a>stats.D.1.D.1.httpd restart Ma"ntenant on 0o"t cr.bin.tg+ -u4on r.plC .etc. 9ebali+er se contente 04"'norer ce 'enre 0e stats..cup.D..a>stats.source%or'e.rera.or' .%un"&. tar ()*+ a>stats.access/log Custom&og logs.1 Présentation A>stat est un out"! pour ana!yser !es !o's 04 apache* "! est p!us r"che -ue >ebali+er* vous pouve= !e trouver ? !4>FL awstats.'Cre+ent !e %"ch"er 0e con%"' 04apache httpd.pl . )o"!? !e r.org?123 Apache+PHP+MySQL 52 http. no> .etc.perto"re a>stats.error/log 5rans*er&og logs.a>stats.su!tat 7unning 'C.11?123 R $er)erMame *uni(.etc.66www.homelinu(.2 Installation et con*iguration n 0.con*igdir0.

>>>...homelinu(.etc.access/logC.!.>>>root.a>stats. :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? I 4ound I dropped records= 4ound I corrupted records= 4ound I old records= 4ound I ne> quali*ied records update .*uni(.oli)ier.con*ig0ohoarau. Phase 1 ? 4irst b#pass old records= searching ne> record.org?123 et http?.chemin.con*C 9ith data in log *ile C. 7unning 'C.cgi.a>stats.homelinu(.logC.update .apache.chemin.*uni(.a>stats. :irect access a*ter last parsed record Ka*ter line HI3 L Zumped lines in *ile? HI3 4ound HI3 alread# parsed records.etc.pdate *or con*ig C.*uni(.a>stats.a>stats.con*C 9ith data in log *ile C.a>stats.org .local.a>stats.plC .org?123 .oli)ier.H.a>stats.etc.con*ig0>>>.etc... Phase 1 ? 4irst b#pass old records= searching ne> record.logs.H.*uni(.66www. :irect access a*ter last parsed record Ka*ter line 13'JDL Zumped lines in *ile? 13'JD 4ound 13'JD alread# parsed records.ohoarau.. Phase 1 ? 4irst b#pass old records= searching ne> record.org.org?123 .online.H...apache. Parsed lines in *ile? I 4ound I dropped records= 4ound I corrupted records= 4ound I old records= 4ound I ne> quali*ied records.bin.*uni(.homelinu(.apache.con*C 9ith data in log *ile C.3 et 2( avec !es serveurs web v"rtue!s http?.logC.chemin.pdate *or con*ig C.*uni(.>>>root.con*C 9ith data in log *ile C.a>stats.usr.*uni(.*uni(.!.>>>.local.plC ..org .*uni(.logs.bin.!.homelinu(.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.local.a>stats.. Phase 1 ? 4irst b#pass old records= searching ne> record.a>stats.con*ig0oli)ier.usr.org?123 .con*igdir0C.pdate *or con*ig C.org?123 .C' to update con*ig >>>.%un"&..cgi.a>stats.a>stats.absolu.a>stats..homelinu(.a>stats.>>>root.apache.*uni(.usr..pdate *or con*ig C.update ...ohoarau.absolu.C' to update con*ig oli)ier... Parsed lines in *ile? I 4ound I dropped records= 4ound I corrupted records= 4ound I old records= 4ound I ne> quali*ied records.a>stats.usr.con*igdir0C.bin.ohoarau.logs.local.oli)ier.absolu.org.plC .homelinu(.etc.org?123 ( en tant -ue root perl a>stats/con*igure.. 7unning 'C.etc. :irect access a*ter last parsed record Ka*ter line 11D HL Zumped lines in *ile? 11D H 4ound 11D H alread# parsed records.con*igdir0C.org.etc.org.. 7unning 'C..update con*ig .cgi.C' to ohoarau.logs.or' .org .a>stats.access/logC.*uni(. Parsed lines in *ile? 13I 4ound !2 dropped records= 4ound H! corrupted records= 4ound I old records= 4ound 13 ne> quali*ied records.pl Apache+PHP+MySQL 53 http.

pro*ile *ile Krequired i* *irst installL E#.a>stats'.usr.>eb.model.a>statsclasses C.usr.1.D... @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..usr.local.a>stats.local.a>stats.linu(.apache.*or >eb ser)er install 4ound 9eb ser)er Apache con*ig *ile '.or' .pdate model con*ig *ile '. @ou >ant to 'understand' all possible >a#s to use A9$tats.con*.httpd.pdate model con*ig *ile '.linu(.R ..C' Add '$criptAlias .con*. @ou are not an administrator user= .bin..con*' 9arning? @ou Apache con*ig *ile contains directi)es to >rite 'common' log *iles 5his means that some *eatures can't >or.>>>root.local..con*' 4ound 9eb ser)er Apache con*ig *ile '. :o #ou >ant me to setup Apache to >rite 'combined' log *iles E#..linu(.su!tat .1..cgi. .>eb.local.ni( 9arning? A9$tats standard director# on &inu( 2$ is '.a>statscss C..a>stats. .1.htmlL.>>>root.a>stats.inde(.usr.con*.icon.a>stats..66www.C' Add 'X:irector#R' directi)e A9$tats directi)es added to Apache con*ig *ile. 5his tool >ill help #ou to con*igure A9$tats to anal#+e statistics *or one >eb ser)er.model. @ou need to anal#+e load balanced ser)ers log *iles= .local.D..local.con*' 4ile a>stats.. /! +et ? @our son propre %"ch"er 0e con%"'urat"on .usr.and complete >eb ser)er con*ig *ile '.a>stats And then= run con*igure.linu(.'a!e+ent !es %"ch"ers pour +ettre ? @our !e %or+at 04arch"va'e 0es !o's . ..con*.cgi...usr.con*' Add 'X:irector#R' directi)e A9$tats directi)es added to Apache con*ig *ile...usr..>>>root....css.local.R Meed to create a ne> con*ig *ile P :o #ou >ant me to build a ne> A9$tats con*ig.usr.a>stats...D.1..con* updated.R 7unning 2$ detected? &inu(= 8$: or .%un"&.MF P Apache+PHP+MySQL 59 http.>>>root.httpd.D.htmlL is o*ten a better idea. @ou >ant to anal#+e mail or *tp log *iles instead o* >eb log *iles= .apache2.D. :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 .D.1 to standard director#? ..Kos= bro>sers and -e#>ords detectionL.linu(.and complete >eb ser)er con*ig *ile '.1.classes.R .model.MF P # Add 'Alias .bin..linu(.local.a>stats.con* updated.usr.local..httpd.D...bin... Abo)e all i*? .I Kbuild 1.a>stats.local.R Chec..>>>root.usr..usr.a>stats.local.usr. 7ead the A9$tats documentation Kdocs.. A9$tats a>stats/con*igure 1.R Chec.C' Add 'Alias ..pl *rom this location.1. I* #ou >ant to use standard director#= #ou should *irst mo)e all content o* A9$tats distribution *rom current director#? .apache2.a>statsicons C.con*' 4ile a>stats.a>stats.cgi.local.>>>root... @ou >ant to anal#+e do>nloaded log *iles >ithout >eb ser)er= .linu(.usr.>eb.>eb. .httpd.>eb.apache.inde(.R Chec.C' Add 'Alias .>eb.>eb.con*' /! +o0"%"e !es 0eu& %"ch"ers 0e con%"'urat"on* "! +o0"%"e .model.vo"!? !e r.. C.local.JL KcL &aurent :estailleur .

a>stats.a>stats :irector# path to store con*ig *ileKsL K6nter *or de*aultL? R 1r.homelinu(.ser)ice httpd restart' . A 1e!u" -u" "n0"-ue !e che+"n 0u %"ch"er 0e !o' brut ? ana!yser &og4ile0C.init.a>stats.*uni(.plPcon*ig0*uni(.localhost.... .org?123 2r i* #ou ha)e se)eral con*ig *iles and pre*er ha)ing onl# one command? .org?123 .etc.a>stats/updateall.*uni(.homelinu(.so!ut"on 0e no+ :QS :M$&oo-up01 A 1e!u" -u" cont"en0ra !es 0onn.etc.local.tools.%"n"t"on 0u che+"n pour stocBer !es %"ch"ers 0e con%"'urat"on pour cha-ue serveur ? ana!yser .usr.66www.homelinu(. p!us haut .org?123 :.org?123 ' >ith .inside to chec.%un"&..a>stats.etc.homelinu(.con* created.con*' Con*ig *ile .httpd restart? httpd restarted .. A $I"P&6 con*ig *ile has been created? ..at"on 0u %"ch"er 0e con%"'urat"on 0u serveur +ent"onn...org?123 Press 6M567 to *inish.homelinu(.and change manuall# main parameters.D.org?123 .R 7estart 9eb ser)er >ith '.a>stats..linu(...pl no> Press 6M567 to continue.a>stats.D..*uni(.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? >>>.org?123 .pl does not support automatic add to cron #et.R Create con*ig *ile '. /! a cr.es obtenues Apache+PHP+MySQL 5.etc...R :e*ine con*ig *ile path In >hich director# do #ou plan to store #our con*ig *ileKsL P :e*ault? .update .logs..homelinu(.a>stats.homelinu(.a>stats. Apache est re!anc.>>>root.pl . !es para+Ctres su"vants.d.etc.>eb..port( .bin.org?123 . @ou can do it manuall# b# adding the *ollo>ing command to #our cron? ..*uni(.org?123 ' >ith command? R perl a>stats.pl .... @ou can then manuall# update #our statistics *or '*uni(.update .cgi.com 6(ample? demo @our >eb site= )irtual ser)er or pro*ile name? R *uni(.con* @ou should ha)e a loo.apache.con*ig0*uni(.homelinu(.usr.a>stats.a>stats.R Add update process inside a scheduler $orr#= con*igure.con* 0ans ce %"ch"er @4a" +o0"%".1.m#site.con*ig0*uni(..access/logC A pour act"ver !a r.linu(.on "n0"-ue "c" !4>FL 0u serveur web ? ana!yser #a0resse.local..local.a>stats.a>stats. http. un %"ch"er 0e con%"'urat"on pour !e s"te concern..7&? R http?.sbin.homelinu(.a>stats. auto+at"-ue+ent ..1.usr.online.>eb.or' .a>stats.homelinu(.etc...org?123 @ou can also read #our statistics *or '*uni(.

org?123 .*r[FC A S" votre s"te est "0ent"%".inde(.org?123 .>>>. Sur !es vers"ons pr.local. $earching ne> records *rom beginning o* log *ile.homelinu(.local.:ir:ata0C.1HJ.*r.pl .homelinu(.' 3L 4rom data in log *ile C.org?123 .or' .4eb.1C 2II 1D '3 A 0..con* Apache+PHP+MySQL 51 http.domaine.D.usr.!.I. Phase 2 ? Mo> process ne> records K4lush histor# on dis..I.logs.a>stats.parateur( HostAliases0C*uni(.. S" vous ave= un 0eu&"C+e s"te v"rtue!* cr.1.2II ?1I?!J?2 UI1IIF CN65 .*r.phpC A Pour "'norer !es +arch"nes 0e votre 0o+a"ne $-ipHosts0C12D.c.1.%aut 04"n%or+at"on "! !a"sse 0es cha+ps v"0es et a>stats n4appr.ohoarau.a>stats. L Nec-o.I.a>stats.etc.47A r)?1.etc.)ar.(.c...local.gi* H55P.con* . E1'. 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.-er)aoQ.homelinu(.cgi.usr.con*C b# A9$tats )ersion D.-er)ao.images.bin et on tape . par une autre >FL "! %aut !a ra@outer "c" #+ettre un espace co++e cha+p s.access/logC.usr. H55P. Chttp?..a>stats..homelinu(.a!ab!e+ent ce r.phpPre*0tipsBpage0menuC C"o+illa.con* sur !e +G+e +o0C!e -ue pr.a>stats.*uni(. Me n4a" pas !e recu! su%%"sant pour savo"r s" La .online..0e++ent.66www.3. Phase 1 ? 4irst b#pass old records= searching ne> record.4eb.2II ?1I?!J?1D UI1IIF CN65 .'er bu'* vo"!? une !"'ne typ"-ue 0e !o' 1'2..F 76N6bEQ.a>statsC A Pour "n0"-uer !e %"ch"er "n0e& 0e votre s"te :e*ault4ile0Cinde(.linu(.pdate database *or con*ig C.11 .etc.)ar.a>stats.update )o"!? !e r.org?123 C Pense= ? cr.homelinu(.c"e 'uCre #"! n4ana!yse pas !es !o's.etc.0entes "! y ava"t un !.a>stats Pour vo"r s" tout +arche on se p!ace +a"ntenant en tant -ue root sous a>stats.a*ter 2IIII hostsL.I.1. .1ournal.>>>root.apache2.ta"t corr"'.a>stats.online.A &inu( iHJHA *r..1HJ.su!tat Create.perto"re m-dir .2I I3IH3IC r par%o"s Apache arch"ve cec" 1'2.*uni(.a>stats.1 76N6bE_1'2Q.I Kb11A .%un"&.)irtuel.er pr..a>stats.1 Kbuild 1..13Q.con*ig0*uni(..11 .1C 3I .er un autre %"ch"er . :ans +on cas "! su%%"t 0e taper cp .1HJQ. .org?123 .mon. avec !a 5. E1'.

lang0*r .usr.cron.H.staticlin-s .a>stats/buildstaticpages.staticlin-s .perto"re 04a>stats chmod D!! a>stats.>eb.plC Apache+PHP+MySQL 52 http.local.cgi.con*ig0ohoarau.lang0*r .>eb.a>stats.local.usr.update .local.homelinu(.linu(.a>stats.D.usr.linu(.con*ig0ohoarau.con*ig0ohoarau.a>stats.1.1.linu(.usr.local.a>statsprog0. A noter -ue vu !a +. !es 0"rect"ves su"vantes Alias .>>>root.a>stats.1.a>stats.local.homelinu(.usr.bin.3.con*ig0ohoarau.a>stats.>eb.a>stats.local.cron.output0lasthosts C.staticlin-s .update .con*ig0ohoarau.plC . Pour ter+"ner !e r.linu(.linu(.lang0*r .>eb.a>stats.>eb.:ans ce %"ch"er pense= ? +o0"%"er !es para+Ctres pour !4>FL et !e %"ch"er 0e !o's 04Apache ? ana!yser.>eb.tools.dir per+et 0e sauve'ar0er sous %or+e ht+! !es stat"st"-ues obtenus.cgi.local.lang0*r .linu(.D.>>>root.lang0*r .a>stats.cgi.usr.>eb.pl .a>stats.D.con*ig0ohoarau..>>>root.lang0*r .>>>root.3 .org?123 8uild lastrobots page? .tilisation )o"!? co++ent @4ut"!"se a>stats* @4a" cr.htdocs.D. )o"!? ce -ue La 0onne 0ans @e !ance +on scr"pt .a>stats.D.1.online . H.a>stats.cgi.local.staticlin-s .!.usr.cgi.a>stats.staticlin-s .D.htdocs.homelinu(.local.output0lastrobots C.bin.a>stats.>>>root. S" vous vou!e= ut"!"ser a>stats en tant -ue c'"Ab"n access"b!e 04Apache* vous 0eve= !a"sser ces !"'nes.bin.con*ig0*uni(.org?123 8uild lasthosts page? .output0allrobots C.lang0*r .usr.a>stats.a!"ser !es stats pour +es 0eu& a0resses web v"rtue!!es G<.plC .cgi.linu(.org?123 8uild urldetail page? .a>stats.linu(.org?123 8uild allrobots page? .plC .linu(.a>stats.a>stats.bin.1.1.>eb.pl .local.homelinu(.>>>root.linu(.ohoarau .plC .homelinu(.usr.usr.linu(.homelinu(.con*ig0ohoarau. 11.a>stats.dir0.>>>root.local.usr.>>>root.con*ig0ohoarau.cute 0onc tous !es @ours et per+et 0e r.a>stats.cgi.usr.a>stats.staticlin-s .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.plC .:irector#R )ous re+p!acere= b"en sVr par !e che+"n en abso!u 04 a>stats.D.1.bin.plC .output0allhosts C.1.D.a>stats.>>>root. !es !"'nes -u4a>stats ? ra@outer 0ans +es %"ch"ers 0e con%"'urat"on 04Apache. un %"ch"er a>stats #0ro"t e&.%un"&.lang0*r .homelinu(.plC .a>stats &aunch update process .66www.>eb.bin.linu(.update .lang0*r .dir0.output0alldomains C.1.local.usr.bin.icon.linu(.D.!.1.staticlin-s .dail#.>>>root.bin.>eb.linu(.org?123 8uild allhosts page? .usr.etc.D.a>statsicons.a>stats.bin.bin.usr.local.e #vo"r chap"tre su"vant( pour ut"!"ser a>stats* @4a" suppr"+.cgi.>eb.C X:irector# C.linu(.a>stats.con*ig0ohoarau.>>>root.apache2.local.plC .etc.homelinu(.usr.cutab!e( sous .output C.pl L4opt"on .D.org?123 .bin.tools.homelinu(.>eb.1.con*igdir0 C.lang0*r .org?123 8uild urlentr# page? ? C.D.apache2.local.con*ig0ohoarau.org?123 8uild session page? .D.linu(.local.1.con*ig0ohoarau.>eb.a>stats.a>statsprog0.a>stats.staticlin-s .org?123 8uild main page? .cgi.D.output0session C.1.bin.lang0*r .cgi.cgi.a>stats.dail# -u" s4e&.org?123 8uild un-no>nip page? .>eb.>>>root.a>stats.>>>root.org?123 .a>stats.staticlin-s .or' .1.a>stats.pl .local. C.cgi.org?123 8uild alldomains page? .bin.>eb.linu(.cgi.homelinu(.homelinu(.>>>root.usr.local.iconCR 2ptions Inde(es "ultiOie>s Allo>2)erride Mone 2rder allo>=den# Allo> *rom all X.output0urldetail C.local.>>>root.a>stats.D.D.bin.output0un-no>nip C.plC .1.plC .a>stats/buildstaticpages.1.>eb. Par a"!!eurs @4a" +"s !es 0ro"ts -u" a!!a"ent b"en pour !e r.a>stats.usr.usr.bash .>eb.homelinu(.tho0e e+p!oy.

>>>root.output0re*ererse 8uild re*ererpages page? C.bin.D.lang0*r .con*ig0*uni(.>eb.output0bro>serdetail 8uild un-no>nbro>ser page? C.con*ig0*uni(.D.lang0*r .>>>root.D.local.1.staticlin-s .org?123 .staticlin-s .org?123 .a>stats.con*ig0ohoarau.con*ig0*uni(.local.linu(.D.local.linu(.1.plC .D.1.>>>root.org?123 .a>stats.>eb.local.>eb.1.cgi.usr.local.1.staticlin-s .linu(.org?123 .D.ohoarau.homelinu(.output 8uild alldomains page? C.>eb.>>>root.a>stats.homelinu(.con*ig0ohoarau.>eb.a>stats.lang0*r .homelinu(.cgi.lang0*r .bin.a>stats.linu(.linu(.a>stats.>eb.staticlin-s .a>stats.plC .staticlin-s .linu(.D.a>stats.output0re*ererpages 8uild -e#phrases page? C.staticlin-s .staticlin-s .1.linu(.D.D.usr.output0session 8uild urldetail page? C.a>stats.1.staticlin-s .a>stats.con*ig0ohoarau.con*ig0*uni(.lang0*r .cgi.a>stats.bin.org?123 .bin.a>stats.local.plC .org?123 .linu(.con*ig0*uni(.org?123 .bin.lang0*r .a>stats.usr.output0-e#phrases 8uild -e#>ords page? C.a>stats.a>stats.linu(.1.output0re*ererse 8uild re*ererpages page? C.local.output0urldetail 8uild urlentr# page? C.cgi.bin.D.>eb.%un"&.>eb.1.homelinu(.output0lasthosts 8uild un-no>nip page? C.a>stats.usr.plC .a>stats.homelinu(.a>stats.local.local.plC .bin.homelinu(.staticlin-s .D.plC .homelinu(. &aunch update process ? C.>eb.D.linu(.local.local.1.>eb.>>>root.cgi.lang0*r .>>>root.>>>root.output0allrobots 8uild lastrobots page? C.con*ig0ohoarau.1.local.>eb.bin.staticlin-s .usr.bin.a>stats.org?123 .a>stats.output0bro>serdetail 8uild un-no>nbro>ser page? C.con*ig0*uni(.output0osdetail 8uild un-no>nos page? C.linu(.output0un-no>nbro>ser 8uild re*ererse page? C.plC .homelinu(.usr.a>stats.bin.org?123 .local.>>>root.a>stats.lang0*r .output0allhosts 8uild lasthosts page? C.D.local.staticlin-s .>>>root.>>>root.homelinu(.lang0*r .plC .usr.>eb.a>stats.linu(.cgi.cgi.bin.usr.a>stats.con*ig0*uni(.org?123 .output0alldomains 8uild allhosts page? C.linu(.D.con*ig0ohoarau.homelinu(.cgi.a>stats.output0osdetail 8uild un-no>nos page? C.con*ig0*uni(.output0errors I 2I *iles built.cgi.org?123 .local.lang0*r .org?123 .a>stats.>>>root.1.D.lang0*r .>eb.lang0*r .D.>>>root.plC .cgi.usr.a>stats.cgi.lang0*r .local.usr.staticlin-s .linu(.usr.bin.usr.homelinu(.usr.con*ig0*uni(.D.plC .org?123 .output0re*ererpages 8uild -e#phrases page? C.D.org?123 .lang0*r .linu(.linu(.org?123 .>eb.>>>root.con*ig0*uni(.output0-e#phrases Apache+PHP+MySQL 53 http.>eb.>eb.bin.linu(.local.homelinu(.local.bin.lang0*r .1.>eb.org?123 .con*ig0ohoarau.homelinu(.con*ig0ohoarau.con*ig0ohoarau.staticlin-s .cgi.org?123 ..homelinu(.66www.lang0*r .linu(.con*ig0*uni(.>>>root.staticlin-s .local.lang0*r .cgi.cgi.a>stats.linu(.plC .usr.usr.1.a>stats.a>stats.homelinu(.a>stats.con*ig0*uni(.a>stats.>>>root.>>>root.plC .1.staticlin-s .local.usr.bin.homelinu(.linu(.output0urlentr# 8uild urle(it page? C.local.plC .usr.staticlin-s .plC .homelinu(.>>>root.org?123 .>>>root.lang0*r .a>stats.output0un-no>nos 8uild bro>serdetail page? C.a>stats.usr.local.1.usr.>eb.bin.linu(.org?123 .1.con*ig0ohoarau.>>>root.homelinu(.local.lang0*r .homelinu(.org?123 .>>>root.con*ig0*uni(.org?123 .cgi.a>stats.usr.D.local.D.linu(.a>stats.homelinu(.bin.lang0*r .cgi.plC .a>stats.1.lang0*r .>eb.plC .a>stats.>eb.>>>root. "ain H5"& page is 'a>stats.D.a>stats.con*ig0*uni(.1.con*ig0*uni(.usr.homelinu(.1.output0urlentr# 8uild urle(it page? C.plC .>eb.staticlin-s .a>stats.plC .a>stats.plC .org?123 .bin.>>>root.>eb.homelinu(.plC .homelinu(.linu(.cgi.staticlin-s .a>stats.bin.linu(.output0-e#>ords 8uild errors I page? C.a>stats.D.cgi.local.bin.staticlin-s .org?123 .D.>>>root.>>>root.lang0*r .cgi.1.bin.lang0*r .local.con*ig0*uni(.>>>root.output0un-no>nos 8uild bro>serdetail page? C.con*ig0*uni(.lang0*r .cgi.a>stats.1.con*ig0ohoarau.homelinu(.html'.cgi.local.D.D.>>>root.1.a>stats.bin.bin.usr.1.cgi.>eb.usr.a>stats.linu(.linu(.update .1.bin.homelinu(.org?123 .>eb.output0un-no>nip 8uild allrobots page? C.usr.output0un-no>nbro>ser 8uild re*ererse page? C.con*ig0ohoarau.bin.cgi.plC .>>>root.plC .D.a>stats.linu(.staticlin-s .>eb.plC .cgi.bin.a>stats.lang0*r .plC .output0lastrobots 8uild session page? C.usr.a>stats.cgi.staticlin-s .a>stats.plC .org?123 .plC .>>>root.D.staticlin-s .lang0*r .homelinu(.con*ig0*uni(.org?123 .>eb.staticlin-s .con*igdir0 8uild main page? C.a>stats.cgi.bin.homelinu(.staticlin-s .usr.org?123 .usr.>eb.staticlin-s .a>stats.plC .a>stats.cgi.1.lang0*r .org?123 .usr.1.local.a>stats.linu(.lang0*r .a>stats.usr.or' .plC .homelinu(.D.org?123 .lang0*r .local.plC .1.cgi.linu(.homelinu(.org?123 .staticlin-s .homelinu(.output0urle(it 8uild osdetail page? C.D.homelinu(.bin.>>>root.a>stats.org?123 .staticlin-s .a>stats.>eb.staticlin-s .1.staticlin-s .a>stats.output0urle(it 8uild osdetail page? C.cgi.bin.>eb.con*ig0*uni(.

)o"!? -ue!-ues aperLus #non e&haust"%s( Apache+PHP+MySQL 54 http.usr.cgi.ventue!!e+ent ra@outer !e r.linu(.>>>root.*uni(.ohoarau @e +e retrouve avec 0es %"ch"ers ht+!* pour !e pre+"er !e %"ch"er 04entr.bin.lang0*r .online et .1.tools.htdocs.homelinu(.local.a>stats.66www.a>stats. Ma"ntenant sous !es r.homelinu(.local.staticlin-s .*uni(.output0-e#>ords 8uild errors I page? C.usr.local.html et pour !4autre a>stats.linu(.a>stats.a>stats.homelinu(.homelinu(.usr.a>stats.org?123 .org?123 .0"ter !e %"ch"er a>stats/buildstaticpages.perto"res .ohoarau.D.1.local.perl_"? bad interpreter? Aucun *ichier ou répertoire de ce t#pe "! su%%"t 04.8uild -e#>ords page? C.bin.con* s" n.homelinu(.a>stats.output0errors I 2I *iles built.>>>root.linu(. /! %au0ra .a>stats/buildstaticpages.a>stats.plC .local.html'.usr. "ain H5"& page is 'a>stats.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.>eb.%un"&.D.plC .perto"re .org?123 .apache2.online 0ans une 0"rect"ve :irector# 0ans !e %"ch"er httpd.local.pl? .>eb.htdocs.lang0*r .D.con*ig0*uni(.usr.cgi.bin.org?123 .usr.pl et 0e v"rer !e \M aprCs perl #avec mcedit par e&e+p!e(.1.e est a>stats.staticlin-s .a>stats.con*ig0*uni(.cessa"re.apache2.>eb.apache2.usr. s" vous ave= une erreur 0u sty!e bash? .or' .htdocs.

Apache+PHP+MySQL 55 http.66www.%un"&.or' .

11.e* ++ +o"s* @@ @our(* ce %"ch"er se trouve 0ans !e r.66www.apache.perto"re log/apache -u" se trouve au n"veau 0e !a rac"ne. S" avec cron* @e 0e+an0e une +"se ? @our 0es stats -uot"0"enne* @e !e 0e+an0e pour !a ve"!!e.rer !es !o's 04Apache bruts* cha-ue @our un %"ch"er !o' est cr. Anal#se+ les logs d'un site hébergé non localement Pour Gtre concret* @4a" +on s"te %un"&.ber'.log.perto"re .s* c4est ? +o" 0e !es suppr"+er !oca!e+ent.*uni( G<.bash G construction du *ormat de la date 1our0^date Uce^ mois310C1an)ier mars mai 1uillet aoet octobre décembreC mois3I0Ca)ril 1uin septembre no)embreC i* E [1our .org/AAAAmm11.or' -u" est h. )o"!? !e scr"pt -u" per+et 0e r.g+ #AAAA ann.cup. 9ant -ue !a ta"!!e +a& n4est pas atte"nte* !es %"ch"ers !o's sont cr.cup.local. et -u" a pour synta&e >>>.or' .logs.usr. che= on!"ne* @4a" +oyen 0e r.*uni(.bin.eq C1C FA then mois0^date Uc8^ G ca c'est le mois de *é)rier= à modi*ier é)entuellement hier0C2JC *or mois31 do i* E [mois00 CE[mois31FCF then hier031 *i done *or mois3I do i* E [mois00 CE[mois3IFCF then hier03I *i Apache+PHP+MySQL 55 http..%un"&..rer !es stats 0e !a ve"!!e* et -u" !e p!ace 0ans !e r.

>>>. !es para+Ctres su"vants &og4ile0C.org.linu(.orgC HostAliases0C>>>.local.*uni(.apache.org/[)eille.D.usr.org/[)eille.*uni(.apache2.log G récupération des logs par *tp >get .local.su!tats vont se retrouver sous .S.net.org .log.a>stats..pl Les %"ch"ers r. tous !es @ours #? 4h 0u +at pour une Man0r"va par 0.usr.*uni( rm .a>stats.1.g+ .a>stats..1. un %"ch"er .*uni(.a>stats.*uni(..orgC )o"!? !a co++an0e ? ra@outer ? !a %"n 0u scr"pt pour !ancer une ana!yse par a>stats .org.pass>ord0motdepasse G 1e décompresse l'archi)e et la renomme gun+ip >>>.local.local.local.*uni(.con* 0ans !e-ue! @4a" +o0"%".usr.usr.a>stats.logs.apache.org/[)eille.apache.*uni(.>ebali+er .apache2.eq C1C FA then hier0I[hier *i anneemois0^date UcNcm^ )eille0[anneemois[hier G 1e me déplace dans le répertoire qui )a bien et 1e supprime les )ieu( *ichiers log cd .con*ig0>>>.log >>>.htdocs.*uni(.local.usr.usr.logs.log Pour r.pro(ad.org/[)eille.htdocs.*uni(.cgi.usr.pro(ad.g+ m) >>>.update .local. Apache+PHP+MySQL 52 http.66www.*uni(.logs.*uni(.local.etc. bin.%un"&.n XXla*in open pri)*tp.local.log.a>statsprog0.org.D.usr.*uni(.*uni(.local.pro.c *tp?.apache.>eb.logs.>>>.usr.user0login .a!"ser 0es stats avec a>stats* @4a" cr.>>>.apache.done else hier0^e(pr [1our .*uni( P!acer +a"ntenant ce scr"pt sous .lang0*r .a>stats/buildstaticpages.linu(.a>stats.usr.tools.or' .pro.*uni( .etc.net user login motdepasse cd log/apache binar# delete >>>.>>>root.org.logC $ite:omain0C>>>.%aut(.g+ b#e la*in G 1e lance l'anal#se des logs par >ebali+er G les résultats se retrou)eront dans .pl .logs.>eb.dail# pour -u4"! so"t appe!.log.* .log G pour ne pas a)oir à *aire le ménage des *ichiers logs sur le ser)eur *tp= on le réalise automatiquement *tp .log/apache.a>stats.>>>.cron.*uni(. 1^ *i longueur0^e(pr length [hier^ i* E [longueur .*uni(.*uni( .pri)*tp..bin.dir0.

2.bin.contenant.cgi.es sous .er un r.local.co+pressera en tapant..apache..cup.cgi.bin 04apache et ra@oute= un scr"pt 0e recherche sous !e r.ventue!!e+ent G dé*inition de l'emplacement of se trou)eront les bases de données sur le site intranet G attention= elles peu)ent gtre asse+ grosses= pour in*o pour mon site intranet contenant mes pages G >>>.7& de )otre intranet G )ous pou)e+ é)entuellement mettre l'.search. n va r.a!ab!e+ent !e r.dir0. 3.htdig.local.search..7& de n'importe quel site sur internet start/url? http?.usr.1.usr.sente sous !a %or+e 04un tarba!! htdig.apache .bin .5 -u4on peut trouver sur !e s"te o%%"c"e! 0e Ht?. Les b"na"res sont sous .:ig access"b!e ? part"r 0e ce +G+e s"te. G )otre site peut contenir des liens )ers des sites e(térieurs= 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?.12Installer un moteur de recherche a)ec Ht?..chemin.d.3.*r et tournant sous Apache.htdig.ta"!!e toutes !es subt"!"t.script.66www..g+ 0e 2Mo* -u4on 0.3.H.>>>. %ourn"ssent !a vers"on 3.e avec !e pacBa'e -u" 0.*uni(.H 0ans !e-ue! on tapera con*igure avec !es opt"ons su"vantes .local.local. dir0.dir0répertoire.pre*i(0.1 pour une so+bre h"sto"re 0e hea0ers 1++. /! +arche sur p!us"eurs p!ate %or+es* 0ont .cgi.ht0"'.2 et !a 9.3Con*iguration n trouvera !e %"ch"er 0e con%"'urat"on sous .bin* !e %"ch"er 0e con% sous .htdig Me ne passa"s pas cette .*uni(.htdocs.perto"re cgi.or'* e!!e se pr.lib.bin.htdig .image.:ig* !a Man0raBe 3.)ar.dir0.*r.%un"&.htdig 04apache 0ont on verra !4ut"!"t...>ith.sente un s"te "ntranet ayant pour a0resse >>>.local.tape avec !a Man0raBe 2.dir0répertoire.local. contenant..2Installation a)ec tarball n r.-er)ao. tap.htdig.>ith.H.apache.1.>ith.htdig .htdocs. 12.dig 12..v"0e++ent !"nu&.66www. :ans !a su"te 0e +a pa'e @e pr.e che= +o" aprCs avo"r cr.org les bases *ont un total de 12"o < G a)ec une install par rpm le chemin est .usr. 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 htdocs.local.tar.an+o"ns consu!ter !a 0oc !"vr. 12.tar.s 0e !a con%"'urat"on.con* #..*uni(.cgi.apache.local..usr.htdig database/dir? .con* et !es bases 0e 0onn.a!"ser un +oteur 0e recherche pour ce s"te ? !4a"0e 0e Ht?.:ig est un +oteur 0e recherche per%or+ant pour votre s"te "ntranet* "! peut +ettre en "n0e& vos s"tes web "nternes +a"s auss" ceu& se trouvant sur !e net.*r.db. La 0ern"Cre vers"on stab!e est !a 3. ..usr. La con%"'urat"on par 0.usr.>ith.htdig.apache.1.perto"re htdig.bin par e(emple ici Apache+PHP+MySQL 53 http.dir0chemin. pr..image.1. tar ()*+ htdig..1Présentation Ht?..install .con** vo"c" !es !"'nes ? +o0"%"er .or' .htdig..local.db G :é*inition de l'adresse à partir de laquelle htdig doit construire ses bases de données G mette+ ici l'. 1ette pa'e pr.pre*i(0.cgi.%aut est trCs sat"s%a"sante* vous pouve= n.>ith.recherche )o"!? !a co++an0e -ue @4a" .g+ 1e!a va cr..sente !a pre+"Cre vers"on.>ith.usr..local.usr.*uni(.con*igure .htdig pour une "nsta!!at"on par rp+(* "! se no++e htdig.-er)ao.usr.etc. -u" est une vers"on "nstab!e.usr.rera !es sources ? !4a0resse http.con*igure .-er)ao..htdocs. p!us tar0.htdig .perto"re .image .>>>.

G $ee Xhttp?.g+ .html *or more details.com .htdig.hq( .gi* Q .>a) . 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.e(e . Ho>e)er= uncommenting these lines ma-es it G )er# eas# to change the *ormat o* search results.hts/templates. K4eel *ree to do >hate)er= thoughL G ne(t/page/te(t? Ximg src0C.map .rpm .bin .org.gi*C border0CIC align0CmiddleC >idth0C3IC height0C3IC alt0Cne(tCR Apache+PHP+MySQL 59 http.html Q G $hort short [\common/dir].buttonr.+ip .66www.tg+ .mo) . 5hese images spice G up the result pages quite a bit. G search/algorithm? e(act?1 s#non#ms?I. 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.mpg .au .+ .sit .%un"&. Mote that the >eights onl# a**ect the ran-ing o* G the results= not the actual searching.>>>.cgi G *ichiers qui seront ignorés pendant l'inde(ation bad/e(tensions? .short.or' .tar . 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.L G 5his attribute instead >ill sho> the top o* the e(cerpt. G G template/map? &ong long [\common/dir].ai** . 5here are se)eral to choose *rom and #ou can use them in an# G combination #ou *eel com*ortable >ith.a)i G adresse email de l'administrateur maintainer? oli)ierT-er)ao.html G template/name? long G G 5he *ollo>ing are used to change the te(t *or the page inde(.ram .class .1pg .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. G 5he de*aults are 1ust boring te(t numbers.! endings?I.cgi.e(clude/urls?cL . 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. .htdig.*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 récupére+ des pages sur internet Kinde(ation de sites sur internetL )ous pou)e+ aussi G limiter la taille des pages à récupérer ma(/doc/si+e?cL 2IIIII G G "ost people e(pect some sort o* e(cerpt in results.1peg ..long.bin. 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.

loc-.-e#>ords Klist 'KC_G.gi*C border0C2C align0CmiddleC >idth0C3IC height0C3IC alt0C!CR' Q 'Ximg src0C.gi*C border0C2C align0CmiddleC >idth0C3IC height0C3IC alt0C2CR' Q 'Ximg src0C.htdig.attrs. Apache+PHP+MySQL 2.buttonJ.htdig.htdig.htdig.usr.gi*C border0C2C align0CmiddleC >idth0C3IC height0C3IC alt0CJCR' Q 'Ximg src0C.gi*C border0CIC align0CmiddleC >idth0C3IC height0C3IC alt0C'CR' Q 'Ximg src0C.htdig. n trouvera en %"n 0e %"ch"er G Automaticall# set up b# htdig 7P"= *rom #our current Apache httpd.+A.htdig.buttonl.66www.button1.%un"&.htdig.htdigS.htdig.rundig.gi*C border0C2C align0CmiddleC >idth0C3IC height0C3IC alt0CHCR' Q 'Ximg src0C.button'.doc.. G $ee .gi*C border0C2C align0CmiddleC >idth0C3IC height0C3IC alt0C CR' Q 'Ximg src0C.htdig.WFE_ ?FUC .htdig.s#stem '(L Kprogn Ksetq *ont.htdig.button!.htdig.gi*C border0CIC align0CmiddleC >idth0C3IC height0C3IC alt0C3CR' Q 'Ximg src0C.button2. *ont.buttonH. modeLLL G end? A noter -u4avec une "nsta!!at"on par rp+ !e %"ch"er est auto+at"-ue+ent rense"'n. *ont.button!.gi*C border0CIC align0CmiddleC >idth0C3IC height0C3IC alt0C CR' Q 'Ximg src0C.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.gi*C border0CIC align0CmiddleC >idth0C3IC height0C3IC alt0C1CR' Q 'Ximg src0C.htdig.*unction.gi*C border0C2C align0CmiddleC >idth0C3IC height0C3IC alt0C1CR' Q 'Ximg src0C.loc-. http.gi*C border0C2C align0CmiddleC >idth0C3IC height0C3IC alt0C3CR' Q 'Ximg src0C.button1I.name.gi*C border0CIC align0CmiddleC >idth0C3IC height0C3IC alt0Cpre)CR no/pre)/page/te(t? page/number/te(t? 'Ximg src0C.button1.*aceL 'KC_Ea.htdig.gi*C border0C2C align0CmiddleC >idth0C3IC height0C3IC alt0C1ICR' G local )ariables? G mode? te(t G e)al? Ki* Keq >indo>.buttonD.or' .buttonD.htdig.gi*C border0CIC align0CmiddleC >idth0C3IC height0C3IC alt0CHCR' Q 'Ximg src0C.gi*C border0CIC align0CmiddleC >idth0C3IC height0C3IC alt0CJCR' Q 'Ximg src0C.button .html *or descriptions o* attributes..no/ne(t/page/te(t? pre)/page/te(t? Ximg src0C.gi*C border0C2C align0CmiddleC >idth0C3IC height0C3IC alt0C'CR' Q 'Ximg src0C.loc-.button3.gi*C border0CIC align0CmiddleC >idth0C3IC height0C3IC alt0CDCR' Q 'Ximg src0C. G Oeri*# and con*igure these= and set maintainer abo)e= be*ore running G .buttonJ.comment.htdig.gi*C border0CIC align0CmiddleC >idth0C3IC height0C3IC alt0C2CR' Q 'Ximg src0C.button1I.htdig.htdig.htdig.gi*C border0CIC align0CmiddleC >idth0C3IC height0C3IC alt0C!CR' Q 'Ximg src0C.bin.loc-.buttonH.*aceL LL K*ont. G no/page/number/te(t? 'Ximg src0C.htdig. 04aprCs !e %"ch"er 0e con%"'urat"on 04Apache. *ont.htdig.gi*C border0C2C align0CmiddleC >idth0C3IC height0C3IC alt0CDCR' Q 'Ximg src0C.*aceL 'KCEU[FS?C .con*.button'.SC .button3.loc-.button2.-e#>ord.usr.button .

*r..rer !es pa'es en tapant .etc.r.htmerge .. .html. . au n"veau 0e !4>FL tape=.ro* !4opt"on .htdig.html #Pour une "nsta!! avec rp+* vous pouve= o+ettre !e search.)ar.-er)ao.cr"t en PHP* La +arche auss" trCs b"en.te= pas s" votre s"te est .*r. n va +a"ntenant e&p!orer !e s"te web et r.%.>>>.usr.7&KsL >here htdig >ill start.html( )o"!? !e r.bin.htdig .rente* vous 0eve= taper. $ee also limit/urls/to abo)e.i per+et 04e%%acer !es recherches pr.bin.asteri(.tilisation A part"r 0e votre nav"'ateur pr.htdig.*r.local. .usr. .asteri(.i)s pour une "nsta!! par rp+ Qe vous "n-u".>>>.m !es tab!es sont s"+p!e+ent +"ses ? n"veau.htdig.htdig .usr.or' .m .con* 1e sera !a +G+e co++an0e ? taper pour une +"se ? @our.66www.=. local/urls? http?.htmerge .e ? pr.) est !4opt"on JverbeuseJ.sent !4"n0e& en tapant .home.) . start/url? http?.bin.local.%un"&.0. local/user/urls? http?.G 5he .public/html.su!tat 0e !a recherche Apache+PHP+MySQL 21 http.*uni(.search.asteri(..htdig.)s Pour "n%o avec !4opt"on .c. L4opt"on .*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.bin.i)s Mote ? 9aper .-er)ao.7&? http?.usr.-er)ao. A +o0"%"er se!on votre convenance.cup. 12.0. Pour une "nsta!!at"on avec rp+ !a synta&e est un peu 0"%%.0entes et 0e repart"r 0e =.htdig.-er)ao.. n cr.

su!tats *ooter.Les pa'es sont c!ass.htdig. Pour "n%o on ut"!"se un +o0C!e 0e pr.usr.%un"&.su!tats nomatch.common #.or' .cC0e !a !"ste 0es r.su!tats se trouvant sous .html -u" su"t !a !"ste 0es r.share.66www.html -u" pr.es su"vant -u4e!!es co!!ent p!us ou +o"ns avec !a recherche* +a"s vous pouve= .htdig pour une "nsta!!at"on avec rp+( avec header.html -uan0 on ne trouve r"en s#nta(.sentat"on 0es r.html en cas 04erreur 0e synta&e >rapper.ventue!!e+ent +o0"%"er !e type 0e tr" # $ort b#(.local.usr.html entGte et p"e0 0e pa'e Apache+PHP+MySQL 22 http.