Sunteți pe pagina 1din 12

Menu

Communit

:rennenearnes uscrie hare Contents

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.

PodemosinstalarApachefacilmentedesdeelgestordepaquetesdeUuntu, apt .Ungestordepaquetesnospermiteinstalarconmaorfacilidadun


softwaredesdeunrepositoriomantenidoporUuntu.Puedeaprendermssorecmoutilizar apt aqu.

Paranuestrospropsitos,podemosiniciarescriiendolossiguientescomandos:

$ sudoaptgetupdate
$ sudoaptgetinstallapache2

Yaqueestamosutilizandoelcomando sudo ,estasoperacionessonejecutadasconprivilegiosdeadministrador,porloquelepedirlacontrasea


paraverificarsusintenciones.

Unavezquehaaingresadosucontrasea, apt ledirqupaquetesplaneainstalarcuntoespacioadicionalocuparnensudisco.IngreseY


presionenterparacontinuar,lainstalacincontinuar.

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

Dentro,enlaparteinferiordelarchivo,agregueunadirectiva ServerName ,apuntandoasunomrededominioprincipal.inotieneunnomrede


dominioasociadoconsuservidor,puedeutilizarladireccinIPplicadesuservidor:

Nota:inoconocesudireccinIPdelservidor,vaaalaseccinsorecmoencontrarladireccinIPdesuservidorparaencontrarla.

/etc/apache2/apache2.conf

...
ServerNamedominio_del_servidor_o_IP

Guardecierreelarchivocuandotermine.

Despus,reviseloserroresdesintaxisescriiendo:

$ sudoapache2ctlconfigtest

Puestoquehemosaadidoladirectivagloal ServerName ,todoloquedeeveres:

Output
SyntaxOK

ReinicieApacheparaimplementarloscamios:

$ sudosystemctlrestartapache2

Ahorapuedecomenzaraajustarelfirewall.

AjustarelFirewallparaPermitirelTrficoWe
Ahora,asumiendoquehaseguidolasinstruccionesinicialesdeconfiguracindelservidorparahailitarelfirewallUFW,asegresedequeelfirewall
permitaeltrficoHTTPHTTP.PuedeasegurarsedequeUFWtieneunperfildeaplicacinparaApacheas:

$ sudoufwapplist

Output
Availableapplications:
Apache
ApacheFull
ApacheSecure
OpenSSH

ioservaelperfil ApacheFull ,deeriamostrarquehailitaeltrficoalospuertos80443:

$ 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.

Desdelalneadecomando,puedeencontrarestodevariasformas,primeropuedeutilizarlaherramienta iproute2 paraotenersudireccin


escriiendoesto:

$ 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.

Unavezms,podemosusar apt paraadquirireinstalarnuestrosoftware.stavez,taminvamosainstalarotrospaquetes"auxiliares"quepermitirn


anuestroscomponentescomunicarseunosconotros:

$ sudoaptgetinstallmysqlserverphp5mysql

Note:nestecaso,notienequeejecutar sudoaptgetupdate antesdelcomando.stosedeeaquerecientementeloejecutamosalinstalarApache.


lndicedepaquetesennuestroservidoradeeestaralda.

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.

Unavezmspodemosaprovecharelsistema apt parainstalarnuestroscomponentes.Vamosaincluiralgunospaquetesdeauda,as,porloqueel


cdigoPHPsepuedeejecutarenelservidorApachehalarconnuestraasededatosMQL:

$ sudoaptgetinstallphplibapache2modphpphpmcryptphpmysql

stodeerinstalarPHPsinningnprolema.Vamosaproarestoenunmomento.

nlamaoradeloscasos,vamosaquerermodificarlaformaenqueApachesirvearchivoscuandosesolicitaundirectorio.Actualmente,siunusuario
solicitaundirectoriodelservidor,Apacheuscarprimerounarchivollamado index.html .Nosotrosqueremosdecirleanuestroservidorweque
elijalosarchivosPHPdepreferencia,porloquevamosahacerApacheusqueunarchivo index.php primero.

Paraello,escriastecomandoparaarirelarchivo dir.conf enuneditordetextoconprivilegiosderoot:

$ 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

Taminpodemoscomproarelestadodelserviciode apache2 atravsde systemctl :

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.

ParaverlasopcionesdisponilesparalosmdulosdePHPiliotecas,sepuedecanalizarlosresultadosdelasqueda aptcache dentrode


less ,unlocalizadorquelepermitedesplazarseatravsdelasalidadeotroscomandos:

$ 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

Harunagrancantidaddesalida,conunsolocampollamado Descriptionen quetendrunaexplicacinmslargadelafuncionalidadque


proporcionaelmdulo.

Porejemplo,paraaveriguarloquehaceelmdulo phpcli ,podramosescriiresto:

$ 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).

idespusdeinvestigar,decidequelegustarainstalarunpaquete,puedehacerloutilizandoelcomando aptgetinstall comolohemosvenido


haciendoparanuestrootrosoftware.

idecidimosquenecesitamos phpclies ,podemosescriir:

sudoaptgetinstallphpcli

ideseainstalarmsdeunmdulo,puedehacerlolistandocadauno,separadosporunespacio,despusdelcomando aptgetinstall ,algoas:

$ sudoaptgetinstallpaquete1paquete2...

C R O L L TO TO P
nestepunto,LAMPestinstaladoconfigurado.inemargo,todavadeemosproarnuestroPHP.
Paso4:PrueadelProcesadorPHPenelervidorWe
ConelfindeproarquenuestrosistemasehaconfiguradocorrectamenteparaPHP,podemoscrearunscriptPHPmusico.

Vamosallamaraestescript info.php .ParaqueApachepuedauscarelarchivolotraajecorrectamente,sedeeguardarenundirectoriomu


especfico,alcualseleconocecomo"raz".

nUuntu16.04,estedirectorioseencuentraen /var/www/html/ .Podemoscrearelarchivoenesauicacinejecutando:

$ 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.

:rennenearnes Upvote (1) uscrie hare

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.

Communit Tutorials Questions Projects Tags Newsletter R

Distros&One-ClickApps Terms,Privac,&Copright ecurit Reportaug GetPaidtoWrite hop

C R O L L TO TO P

S-ar putea să vă placă și