Documente Academic
Documente Profesional
Documente Cultură
Communit
CmoinstalarLinux,Apache,MQL,PHP(LAMP)enUuntu16.04?
Posted Decemer12,2016 46.3k LAMPTACK PHP MYQL APACH UUNTU16.04 1
Introduccin
edenomina"LAMP"aungrupodesoftwaredecdigolirequeseinstalanormalmenteenconjuntoparahailitarunservidorparaalojarsitios
aplicacioneswedinmicas.stetrminoenrealidadesunacrnimoquerepresentaunsistemaoperativoLinuxconunserviorApache.Losdatosdel
sitiosonalmacenadosenasededatosMQLelcontenidodinmicoesprocesadoconPHP.
nestagua,vamosainstalarLAMPenunDropletconUuntu16.04.Uuntucumplirconnuestroprimerrequisito:unsistemaoperativoLinux.
RequisitosPrevios
Antesdecomenzarconestagua,deetenerunacuentadeusuarioindependientequenosearoot,conprivilegiosde sudo configuradosensu
servidor.Puedeaprendercmohacerlocompletandolospasos1-4enlaconfiguracininicialdelservidordeUuntu16.04.
Paso1:InstalarApachePermitirelFirewall
lservidorWeApacheesactualmenteelmspopulardelmundo.stiendocumentado,hasidoampliamenteutilizadoenlahistoriadelawe,lo
quehacequeseaunagranopcinpordefectoparamontarunsitiowe.
Paranuestrospropsitos,podemosiniciarescriiendolossiguientescomandos:
$ sudoaptgetupdate
$ sudoaptgetinstallapache2
stalecererverNameparauprimirlosrroresdeintaxis
Acontinuacin,agregamosunasolalneaalarchivo /etc/apache2/apache2.conf parasuprimirunmensajedeadvertencia.inosedefine
ServerName gloalmente,reciirlasiguienteadvertenciacuandocomprueelaconfiguracindeApacheparaloserroresdesintaxis:
$ sudoapache2ctlconfigtest
Output
AH00558:apache2:Couldnotreliablydeterminetheserver'sfullyqualifieddomainname,using127.0.1.1.Setthe'ServerName'directivegloballyto
SyntaxOK
C R O L L TO TO P
Araelarchivodeconfiguracinprincipalconsueditordetexto:
$ sudonano/etc/apache2/apache2.conf
Nota:inoconocesudireccinIPdelservidor,vaaalaseccinsorecmoencontrarladireccinIPdesuservidorparaencontrarla.
/etc/apache2/apache2.conf
...
ServerNamedominio_del_servidor_o_IP
Guardecierreelarchivocuandotermine.
Despus,reviseloserroresdesintaxisescriiendo:
$ sudoapache2ctlconfigtest
Output
SyntaxOK
ReinicieApacheparaimplementarloscamios:
$ sudosystemctlrestartapache2
Ahorapuedecomenzaraajustarelfirewall.
AjustarelFirewallparaPermitirelTrficoWe
Ahora,asumiendoquehaseguidolasinstruccionesinicialesdeconfiguracindelservidorparahailitarelfirewallUFW,asegresedequeelfirewall
permitaeltrficoHTTPHTTP.PuedeasegurarsedequeUFWtieneunperfildeaplicacinparaApacheas:
$ sudoufwapplist
Output
Availableapplications:
Apache
ApacheFull
ApacheSecure
OpenSSH
$ sudoufwappinfo"ApacheFull"
C R O L L TO TO P
Output
Profile:ApacheFull
Title:WebServer(HTTP,HTTPS)
Description:Apachev2isthenextgenerationoftheomnipresentApacheweb
server.
Ports:
80,443/tcp
Permitireltrficoentranteparaeseperfil:
$ sudoufwallowin"ApacheFull"
UstedpuedehacerunchequeoinmediatoparaverificarquetodosalisegnloplaneadovisitandoladireccinIPplicadesuservidorensu
navegadorwe(vealanotaenelsiguienteencaezadoparaaveriguarculessudireccinIPplicasinotieneestainformacina):
http://la_ip_de_su_servidor
VerlapginawepredeterminadadeApacheUuntu16.04,queestdisponileparafinesinformativosdepruea.Deeseralgocomoesto:
C R O L L TO TO P
iustedveestapgina,entoncessuservidorweestcorrectamenteinstaladoaccesileatravsdelfirewall.
CmoncontrarlaDireccinIPPlicadetuervidor?
inoconocecualesladireccinIPplicadesuservidor,existenvariasformasdeaveriguarlo.Usualmenteestaesladireccinqueutilizapara
conectarseasuservidoratravsdeH.
$ ipaddrshoweth0|grepinet|awk'{print$2;}'|sed's/\/.*$//'
storegresar1o2lneas.Amassoncorrectas,peroelequiposlopuedesercapazdeusarunadeellas,asqueesliredeproarconcadaunade
ellas. C R O L L TO TO P
Unmtodoalternativoesutilizarlautilidad curl paraponerseencontactoconunaparteexternaqueledigacmosevesuservidor.Puedehacer
estopreguntandoaunservidorespecficoculessudireccinIP:
$ sudoaptgetinstallcurl
$ curlhttp://icanhazip.com
IndependientementedelmtodoqueutiliceparaotenersudireccinIP,puedeescriirlaenlaarradedireccionesdetunavegadorparaaccesara
suservidor.
Paso2:InstalarMQL
Ahoraqueatenemosnuestroservidorweconfiguradocorriendo,eselmomentodeinstalarMQL.MQLesunsistemadegestindeasede
datos.sicamente,seencargadeorganizarfacilitarelaccesoalasasesdedatosdondenuestrositiopuedealmacenarinformacin.
$ sudoaptgetinstallmysqlserverphp5mysql
Unavezms,selemostrarunalistadelospaquetesquesevanainstalar,juntoconlacantidaddeespacioendiscoqueocupar.IntroduzcaYpara
continuar.
Durantelainstalacin,elservidorlepedirqueseleccioneconfirmeunacontraseaparaelusuario"root"deMQL.staesunacuenta
administrativaenMQLquehaaumentadoprivilegios.Pienseenellocomoalgosimilaralacuentaderootparaelpropioservidor(laqueest
configurandoahoraesunacuentaespecficadeMQL).Asegresedequeseaunacontraseasegura,nica,nolodejeenlanco.
Cuandolainstalacinsehaacompletado,ejecutaremosunscriptsimpledeseguridadquenospermiteeliminaralgunasconfiguracionespeligrosas
loquearunpocoelaccesoanuestrosistemadeasededatos.Inicieelscriptinteractivoejecutando:
$ sudomysql_secure_installation
LepedirqueintroduzcalacontraseaqueestaleciparalacuentarootdeMQL.Acontinuacin,lepreguntarsideseaconfigurarel VALIDATE
PASSWORDPLUGIN (PlugindeValidacindeContraseas).
Advertencia:Laactivacindeestafuncinesalgoascomounacuestindecriterio.isehailita,lascontraseasquenocoincidenconloscriterios
especificadossernrechazadasporMQLconunerror.stocausarprolemassiseutilizaunacontraseadilenconjuncinconelsoftwareque
configuraautomticamentelascredencialesdeusuariodeMQL,comolospaquetesdeUuntuparaphpMAdmin.ssegurodejarlavalidacin
desactivado,perosiempresedeeutilizarcontraseasnicasfuertesparalascredencialesdeasededatos.
Ingreseparas,ocualquierotracosaparacontinuarsinhailitar.
VALIDATEPASSWORDPLUGINcanbeusedtotestpasswords
andimprovesecurity.Itchecksthestrengthofpassword
andallowstheuserstosetonlythosepasswordswhichare
secureenough.WouldyouliketosetupVALIDATEPASSWORDplugin?
Pressy|YforYes,anyotherkeyforNo:
C R O L L TO TO P
Lepedirqueseleccioneunniveldevalidacindecontrasea.Tengaencuentaquesiintroduce2,paraelnivelmsalto,reciirerroresalintentar
estalecercualquiercontraseaquenocontienenmeros,letrasmasculas,minsculascaracteresespeciales,oqueseasaenlaspalarasdel
diccionariocomunes.
Therearethreelevelsofpasswordvalidationpolicy:
LOWLength>=8
MEDIUMLength>=8,numeric,mixedcase,andspecialcharacters
STRONGLength>=8,numeric,mixedcase,specialcharactersanddictionaryfile
Pleaseenter0=LOW,1=MEDIUMand2=STRONG:1
ihahailitadolavalidacindecontrasea,semuestraunafuerzadecontraseaparalacontraseaderootexistente,lepreguntarsidesea
camiarlacontrasea.inoestsatisfechoconsucontraseaactual,introduzcanparael"no"enlaconsola:
Usingexistingpasswordforroot.
Estimatedstrengthofthepassword:100
Changethepasswordforroot?((Pressy|YforYes,anyotherkeyforNo):n
Paraelrestodelaspreguntas,haqueingresarYdespuspulsarnterencadapregunta.stoeliminaralgunosusuariosdeejemplolaasede
datosdepruea,desactivarlasconexionesrootremotas,cargarestasnuevasreglasparaqueMQLrespeteinmediatamenteloscamiosque
hemosrealizado.
nestepunto,elsistemadeasededatosaestconfiguradopodemosseguiradelante.
Paso3:InstalarPHP
PHPeselcomponentedenuestraconfiguracinqueprocesarcdigoparamostrarcontenidodinmico.Puedeejecutarsecuenciasdecomandos,
conectarseanuestrasasesdedatosMQLparaotenerinformacin,entregarelcontenidoprocesadoanuestroservidorweparamostrarlo.
$ sudoaptgetinstallphplibapache2modphpphpmcryptphpmysql
stodeerinstalarPHPsinningnprolema.Vamosaproarestoenunmomento.
nlamaoradeloscasos,vamosaquerermodificarlaformaenqueApachesirvearchivoscuandosesolicitaundirectorio.Actualmente,siunusuario
solicitaundirectoriodelservidor,Apacheuscarprimerounarchivollamado index.html .Nosotrosqueremosdecirleanuestroservidorweque
elijalosarchivosPHPdepreferencia,porloquevamosahacerApacheusqueunarchivo index.php primero.
$ sudonano/etc/apache2/modsenabled/dir.conf
everdeformasimilaraesto:
/etc/apache2/mods-enaled/dir.conf
<IfModulemod_dir.c>
DirectoryIndexindex.htmlindex.cgiindex.plindex.phpindex.xhtmlindex.htm
</IfModule>
C R O L L TO TO P
QueremosmoverelndicedelarchivoPHPdestacandoloalaprimeraposicindespusdelaespecificacindel DirectoryIndex ,as:
/etc/apache2/mods-enaled/dir.conf
<IfModulemod_dir.c>
DirectoryIndexindex.phpindex.htmlindex.cgiindex.plindex.xhtmlindex.htm
</IfModule>
Cuandohaaterminado,guardecierreelarchivopresionando"CTRL-X".Vaatenerqueconfirmarelguardadoingresando"Y"luegopulsando
"nter"paraconfirmarlauicacindealmacenamientodearchivos.
Despusdeesto,tenemosquereiniciarelservidorweApacheparaquenuestroscamiosseanreconocidos.Puedehacerlohacerloejecutandoesto:
$ sudosystemctlrestartapache2
sudosystemctlstatusapache2
SampleOutput
apache2.serviceLSB:Apache2webserver
Loaded:loaded(/etc/init.d/apache2;bad;vendorpreset:enabled)
DropIn:/lib/systemd/system/apache2.service.d
apache2systemd.conf
Active:active(running)sinceWed2016041314:28:43EDT;45sago
Docs:man:systemdsysvgenerator(8)
Process:13581ExecStop=/etc/init.d/apache2stop(code=exited,status=0/SUCCESS)
Process:13605ExecStart=/etc/init.d/apache2start(code=exited,status=0/SUCCESS)
Tasks:6(limit:512)
CGroup:/system.slice/apache2.service
13623/usr/sbin/apache2kstart
13626/usr/sbin/apache2kstart
13627/usr/sbin/apache2kstart
13628/usr/sbin/apache2kstart
13629/usr/sbin/apache2kstart
13630/usr/sbin/apache2kstart
Apr1314:28:42ubuntu16lampsystemd[1]:StoppedLSB:Apache2webserver.
Apr1314:28:42ubuntu16lampsystemd[1]:StartingLSB:Apache2webserver...
Apr1314:28:42ubuntu16lampapache2[13605]:*StartingApachehttpdwebserverapache2
Apr1314:28:42ubuntu16lampapache2[13605]:AH00558:apache2:Couldnotreliablydeterminetheserver'sfullyqualifieddomainname,using127.0.
Apr1314:28:43ubuntu16lampapache2[13605]:*
Apr1314:28:43ubuntu16lampsystemd[1]:StartedLSB:Apache2webserver.
InstalacindeMdulosdePHP
ParamejorarlafuncionalidaddePHP,podemosinstalaropcionalmentealgunosmdulosadicionales.
$ aptcachesearchphp|less
Uselasteclasdeflechaparadesplazarsehaciaarriahaciaaajo,qparasalir.
C R O L L TO TO P
Losresultadossontodosloscomponentesopcionalesquesepuedeninstalar.eledarunarevedescripcindecadauno:
libnetlibidnperlEnlacesdePerlparaGNULibidn
phpalldevPaquetequedependedetodoslospaquetesdedesarrollodePHPsoportados
phpcgiDelladodelservidor,lenguajedescriptingembebidoenHTML(CGIbinario)(Pordefecto)
phpcliIntrpretedelneadecomandosparaellenguajedescriptingPHP(Pordefecto)
phpcommonArchivoscomunesparapaquetesconstruidosdesdefuentePHP
phpcurlMduloCURLparaPHP[Pordefecto]
phpdevArchivosparaelmdulodedesarrolloPHP(Pordefecto)
phpgdMduloGDparaPHP[Pordefecto]
phpgmpMduloGMPparaPHP[Pordefecto]
Paraotenermsinformacinsoreloquehacecadamdulo,puedeuscarenInternet,osepuedeverenladescripcinlargadelpaquete
escriiendo:
$ aptcacheshownombre_del_paquete
$ aptcacheshowphpcli
Juntoconunagrancantidaddeotrainformacin,encontraralgoquesepareceaesto:
Output
Descriptionen:commandlineinterpreterforthePHPscriptinglanguage(default)
Thispackageprovidesthe/usr/bin/phpcommandinterpreter,usefulfor
testingPHPscriptsfromashellorperforminggeneralshellscriptingtasks.
.
PHP(recursiveacronymforPHP:HypertextPreprocessor)isawidelyused
opensourcegeneralpurposescriptinglanguagethatisespeciallysuited
forwebdevelopmentandcanbeembeddedintoHTML.
.
Thispackageisadependencypackage,whichdependsonDebian'sdefault
PHPversion(currently7.0).
sudoaptgetinstallphpcli
$ sudoaptgetinstallpaquete1paquete2...
C R O L L TO TO P
nestepunto,LAMPestinstaladoconfigurado.inemargo,todavadeemosproarnuestroPHP.
Paso4:PrueadelProcesadorPHPenelervidorWe
ConelfindeproarquenuestrosistemasehaconfiguradocorrectamenteparaPHP,podemoscrearunscriptPHPmusico.
$ sudonano/var/www/html/info.php
stoarirunarchivoenlanco.Queremosponereltextosiguiente,queeselcdigoPHPvlido,dentrodelarchivo:
info.php
<?php
phpinfo();
?>
Cuandohaaterminado,guardecierreelarchivo.
AhorapodemosproarsinuestroservidorwepuedevisualizarcorrectamenteelcontenidogeneradoporunscriptPHP.Paraproaresto,slo
tenemosquevisitarestapginaennuestronavegadorwe.DenuevonecesitarladireccinIPplicadelservidor.
Ladireccinquedeseavisitarser:
http://direccin_IP_del_servidor/info.php
Lapginaqueverdeeseralgocomoesto:
C R O L L TO TO P
stapginasicamenteledainformacinsoreelservidordesdelaperspectivadePHP.stilparaladepuracinparaasegurarsedequelos
ajustesseestnaplicandocorrectamente.
iestofueunxito,entoncessuPHPestfuncionandocomoseesperaa.
sposilequedeseeeliminarestearchivodespusdeestapruea,aqueenrealidadpodradarinformacinsoreelservidoralosusuariosno
autorizados.Paraello,puedeescriirlosiguiente:
$ sudorm/var/www/html/info.php
iempresepuedevolveracrearestapginasinecesitaaccederalainformacinnuevamente.
Conclusin
AhoraquetieneunLAMPinstalado,hamuchasopcionesparaprocederdespusdeesto.sicamentesehainstaladounaplataformaquepermitir
lainstalacindelamaoriadelossitioswesoftwareweentuservidor.
Comopasoinmediato,deesasegurartedequelasconexionesasuservidorweestnaseguradas,accediendoaellasatravsdeHTTP.Laopcin
msfcilenestecasoesutilizarLet'sncrptparaprotegersusitioconuncertificadoliredeTL/L.
Algunasotrasopcionespopularesson:
InstalarWordpresselsistemadegestindecontenidosmspopularenInternet.
ConfigurarphpMAdminparaaudaramanejartusasesdedatosMQLdesdetunavegadorwe.
MsinformacinsoreMQLparagestionartusasesdedatos.
AprendaausarFTPparatransferirarchivosdesdehaciaelservidor.
Nota:Actualizaremoslosenlacesamedidaqueseactualicelainformacinalaversin16.04.
Translation:
TonnORG
uildmulti-serversetupsfromthegroundup
Createamulti-serversetupcompletewithackups,monitoring,andcentralizedloggingsstemswiththeuildingforProduction:We
Applicationstutorialseries.
TARTHRRADTUTORIAL
RelatedTutorials C R O L L TO TO P
HowToInstallMoodleonUuntu16.04
ComoInstalaroWordPresscomLAMPnoUuntu16.04
HowToecureApachewithLet'sncrptonDeian8
ComoinstalarapilhaLinux,Apache,MQL,PHP(LAMP)noUuntu16.04
CmoinstalarWordPressconLAMPenUuntu16.04?
0Comments
Leaveacomment...
LogIntoComment
ThisworkislicensedunderaCreative
CommonsAttriution-NonCommercial-
hareAlike4.0InternationalLicense.
Copright2017DigitalOceanInc.
C R O L L TO TO P