En tidligere versjon av denne opplæringen var skrevet av Brennan Bearnes.
Innledning
EN «LAMPE» stack er en gruppe av open-source programvare som installeres vanligvis sammen for å aktivere en server til å være vert for dynamiske nettsteder og web-applikasjoner. Dette begrepet er faktisk et akronym som representerer operativsystemet Linux med Apache web server. Siden dataene lagres i en MySQL database, og dynamisk innhold er behandlet med PHP.
I denne guiden vil vi installere en LAMPE bunken på en Ubuntu-18.04 server.,
Forutsetninger
for å fullføre denne opplæringen, vil du trenger for å ha en Ubuntu-18.04 serveren med en ikke-root sudo
-aktivert bruker-konto og en grunnleggende brannmur. Dette kan bli konfigurert ved hjelp av vår første server setup guide for Ubuntu 18.04.
Trinn 1 — Installere Apache og Oppdatere Brannmur
Apache web server er blant de mest populære web-serverne i verden. Det er godt dokumentert og har vært i utbredt bruk for mye av historien til nettet, noe som gjør det til et flott standard valget for å arrangere en nettside.,
Installere Apache bruker Ubuntu package manager, apt
:
- sudo apt update
- sudo apt install apache2
Siden dette er en sudo
– kommandoen, disse operasjonene er utført med root-rettigheter. Det vil spørre deg om din vanlige bruker passord for å verifisere din intensjoner.
Når du har angitt passordet, apt
vil fortelle deg hvilke pakker som er det planer om å installere og hvor mye ekstra diskplass de vil ta opp. Trykk på Y
og trykk ENTER
for å fortsette, og installasjonen vil fortsette.,
Juster-Brannmuren for å Tillate Internett-Trafikk
Neste, forutsatt at du har fulgt den første server oppsett instruksjoner og aktivert UFW brannmur, kontrollerer du at brannmuren tillater HTTP-og HTTPS-trafikk.,ld vise at den gjør det mulig trafikk til porter 80
og 443
:
- sudo ufw app info "Apache Full"
OutputProfile: Apache FullTitle: Web Server (HTTP,HTTPS)Description: Apache v2 is the next generation of the omnipresent Apache webserver.Ports: 80,443/tcp
Tillate innkommende HTTP-og HTTPS-trafikk for denne profilen:
- sudo ufw allow in "Apache Full"
Du kan gjøre stikkprøver rett bort for å kontrollere at alt gikk som planlagt ved å besøke din server offentlig IP-adresse i nettleseren din (se merknad under den neste overskriften for å finne ut hva den offentlige IP-adressen hvis du ikke har denne informasjonen allerede):
You will see the default Ubuntu 18.04 Apache web page, which is there for informational and testing purposes. It should look something like this:
If you see this page, then your web server is now correctly installed and accessible through your firewall.
How To Find your Server’s Public IP Address
If you do not know what your server’s public IP address is, there are a number of ways you can find it. Usually, this is the address you use to connect to your server through SSH.
There are a few different ways to do this from the command line. First, you could use the iproute2
tools to get your IP address by typing this:
- ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'
Dette vil gi deg to eller tre linjer tilbake., De er alle riktige adresser, men datamaskinen kan bare være i stand til å bruke en av dem, så føl deg fri til å prøve hver og en.
En annen metode er å bruke curl
verktøy til å ta kontakt med en ekstern part å fortelle dere hvordan den ser din server. Dette er gjort ved å spørre om en bestemt server hva din IP adresse er:
- sudo apt install curl
- curl http://icanhazip.com
Uansett hvilken metode du bruker for å få din IP-adresse, skriver du den inn i nettleserens adressefelt for å vise standard Apache side.,
Trinn 2 Installere MySQL
Nå som du har din web server er oppe og kjører, det er på tide å installere MySQL. MySQL er en database management system. I utgangspunktet, det vil organisere og gi tilgang til databaser hvor ditt nettsted kan lagre informasjon.
Igjen, bruk apt
for å skaffe og installere denne programvaren:
- sudo apt install mysql-server
Merk: I dette tilfellet, du trenger ikke å kjøre sudo apt update
før kommando. Dette er fordi du nylig kjørte det i kommandoene ovenfor for å installere Apache., Pakken indeks på datamaskinen din bør allerede være up-to-date.
Denne kommandoen, vil også vise deg en liste over pakker som skal installeres, sammen med hvor mye diskplass de vil ta opp. Skriv inn Y
for å fortsette.
Når installasjonen er fullført, kan du kjøre en enkel security skript som kommer forhåndsinstallert med MySQL som vil fjerne noen farlige standarder og låse tilgang til din database system. Starte den interaktive skript ved å kjøre:
- sudo mysql_secure_installation
Dette vil spørre deg om du ønsker å konfigurere VALIDATE PASSWORD PLUGIN
.,
Merk: hvis du Aktiverer denne funksjonen er noe av en dom samtale. Hvis aktivert, passord som ikke samsvarer med de angitte kriterier vil bli avvist av MySQL med en feil. Dette vil forårsake problemer hvis du bruker et svakt passord i forbindelse med programvare som automatisk konfigurerer MySQL legitimasjon, som for eksempel Ubuntu-pakker for phpMyAdmin. Det er trygt å forlate validering deaktivert, men du bør alltid bruke sterke, unike passord for database legitimasjon.
Svar Y
ja, eller noe annet for å fortsette uten å aktivere.,
VALIDATE PASSWORD PLUGIN can be used to test passwordsand improve security. It checks the strength of passwordand allows the users to set only those passwords which aresecure enough. Would you like to setup VALIDATE PASSWORD plugin?Press y|Y for Yes, any other key for No:
Hvis du svarer «ja», vil du bli bedt om å velge et nivå av passord validering. Husk at hvis du skriver inn 2
for de sterkeste nivå, vil du få en feilmelding når du prøver å angi passordet som ikke inneholder tall, store og små bokstaver og spesialtegn, eller som er basert på vanlige ord fra ordboken.
There are three levels of password validation policy:LOW Length >= 8MEDIUM Length >= 8, numeric, mixed case, and special charactersSTRONG Length >= 8, numeric, mixed case, special characters and dictionary filePlease enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1
Uansett om du valgte å sette opp VALIDATE PASSWORD PLUGIN
, serveren din vil du neste spørre deg om å velge og bekrefte et passord for MySQL-root-brukeren., Dette er en administrativ konto i MySQL som har økt privilegier. Tenk på det som ligner på root-kontoen din for serveren i seg selv (selv om du konfigurere nå er en MySQL-kontoen). Sørg for at dette er en sterke, unike passord, og ikke la det stå tomt.
Hvis du har aktivert passord validering, vil du bli vist passordet styrke for root-passordet du nettopp har angitt, og serveren vil spørre dersom du ønsker å endre passordet., Hvis du er fornøyd med din nåværende passord, skriver du inn N
for «ingen» ved ledeteksten:
Using existing password for root.Estimated strength of the password: 100Change the password for root ? ((Press y|Y for Yes, any other key for No) : n
For resten av spørsmålene, trykk på Y
og trykk ENTER
– tasten på hvert spørsmål. Dette vil fjerne noen anonyme brukere og test-database, kan du deaktivere ekstern root-passord, og legg disse nye reglene, slik at MySQL umiddelbart respekterer endringene du har gjort.
Merk at det i Ubuntu systemer som kjører MySQL 5.,7 (og senere versjoner), roten MySQL brukeren er satt til å godkjenne bruk av auth_socket
plugin som standard snarere enn med et passord. Dette gir en større sikkerhet og brukervennlighet i mange tilfeller, men det kan også komplisere ting når du trenger å la et eksternt program (f.eks., phpMyAdmin) for å få tilgang til brukeren.
Hvis du ønsker å bruke et passord når du kobler til MySQL som root-bruker, vil du trenger å bytte sin godkjenning metode fra auth_socket
til mysql_native_password
., For å gjøre dette, åpner opp for MySQL prompt fra din terminal:
- sudo mysql
Neste, sjekk ut hvilke pålitelighetskontroll-metoden hver av MySQL-brukerkontoer bruk med følgende kommando:
- SELECT user,authentication_string,plugin,host FROM mysql.user;
I dette eksemplet, kan du se at root brukeren faktisk godkjenne bruk av auth_socket
plugin. For å konfigurere root-kontoen din for å autentisere med et passord, kan du kjøre følgende ALTER USER
– kommandoen., Sørg for å bytte password
til et sterkt passord som du velger:
- ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Så, kjør FLUSH PRIVILEGES
som forteller server for å laste gi bord og sette nye endringene i kraft:
- FLUSH PRIVILEGES;
Kontroller autentifikasjonsmetoder ansatt ved hver av brukerne på nytt for å bekrefte at roten ikke lenger godkjenner bruk av auth_socket
plugin:
- SELECT user,authentication_string,plugin,host FROM mysql.user;
Du kan se i dette eksemplet utgang på at rot-MySQL bruker nå godkjenner ved hjelp av et passord., Når du bekrefter dette på din egen server, kan du avslutte MySQL shell:
- exit
På dette punktet, database-systemet er nå satt opp, og du kan flytte på å installere PHP, den siste komponenten i LAMP-stacken.
Trinn 3 — Installere PHP
PHP er den delen av oppsettet som vil prosessen kode for å vise dynamisk innhold. Det kan kjøre skript, koble til MySQL-databaser for å få informasjon, og siden behandlet innhold over til web-server for å vise.
igjen, utnytte apt
system for å installere PHP., I tillegg inkluderer noen helper pakker denne tid, slik at PHP-kode som kan kjøres under Apache server og snakk med din MySQL database:
- sudo apt install php libapache2-mod-php php-mysql
Dette bør installere PHP uten noen problemer. Vi kommer til å teste dette i et øyeblikk.
I de fleste tilfeller, vil du ønsker å endre måten at Apache serverer filer når en mappe er bedt om. I dag, hvis en bruker ber om en katalog fra serveren, Apache vil først se etter en fil som heter index.html
., Vi ønsker å fortelle webserveren til å foretrekke PHP-filer over andre, så sørg for Apache se etter en index.php
filen først.
for Å gjøre dette, skriver du inn denne kommandoen for å åpne dir.conf
– filen i et tekstredigeringsprogram med root-rettigheter:
- sudo nano /etc/apache2/mods-enabled/dir.conf
Det vil se ut som dette:
<IfModule mod_dir.c> DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm</IfModule>
Flytt PHP-index-fil (uthevet ovenfor) til første posisjon etter DirectoryIndex
spesifikasjon, som dette:
<IfModule mod_dir.c> DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm</IfModule>
Når du er ferdig, lagrer og lukker filen ved å trykke på CTRL+X
. Bekreft lagre ved å skrive Y
og trykk ENTER
for å kontrollere fil-lagre posisjon.
Etter dette, må du starte Apache web-server for at endringene skal bli gjenkjent., Dette gjør du ved å skrive dette:
- sudo systemctl restart apache2
Du kan også sjekke status på apache2
– tjeneste ved hjelp av systemctl
:
- sudo systemctl status apache2
Trykk Q
for å avslutte denne statusen utgang.
for Å øke funksjonaliteten av PHP, du har muligheten til å installere noen ekstra moduler., Hvis du vil se tilgjengelige alternativer for PHP moduler og biblioteker, rør resultatene av apt search
i less
, en personsøker som lar deg bla gjennom produksjon av andre kommandoer:
- apt search php- | less
Bruk piltastene til å bla opp og ned, og trykk på Q
for å avslutte.
resultatene er alle komponentene som du kan installere. Det vil gi deg et kort beskrivelse av hver:
bandwidthd-pgsql/bionic 2.0.1+cvs20090917-10ubuntu1 amd64 Tracks usage of TCP/IP and builds html files with graphsbluefish/bionic 2.2.10-1 amd64 advanced Gtk+ text editor for web and software developmentcacti/bionic 1.1.38+ds1-1 all web interface for graphing of monitoring systemsganglia-webfrontend/bionic 3.6.1-3 all cluster monitoring toolkit - web front-endgolang-github-unknwon-cae-dev/bionic 0.0~git20160715.0.c6aac99-4 all PHP-like Compression and Archive Extensions in Gohaserl/bionic 0.9.35-2 amd64 CGI scripting program for embedded environmentskdevelop-php-docs/bionic 5.2.1-1ubuntu2 all transitional package for kdevelop-phpkdevelop-php-docs-l10n/bionic 5.2.1-1ubuntu2 all transitional package for kdevelop-php-l10n…:
for Å lære mer om hva hver modul gjør, du kan søke på internett for mer informasjon om dem., Alternativt kan du se på den lange beskrivelsen av pakken ved å skrive:
- apt show package_name
Det vil være mye av produksjonen, med ett felt som heter Description
som vil ha en lengre forklaring av funksjonalitet som modulen gir.,
For eksempel, for å finne ut hva som php-cli
modulen gjør det, kan du skrive inn dette:
- apt show php-cli
Sammen med en stor mengde annen informasjon, finner du noe som ser ut som dette:
Output…Description: command-line interpreter for the PHP scripting language (default) This package provides the /usr/bin/php command interpreter, useful for testing PHP scripts from a shell or performing general shell scripting tasks. . PHP (recursive acronym for PHP: Hypertext Preprocessor) is a widely-used open source general-purpose scripting language that is especially suited for web development and can be embedded into HTML. . This package is a dependency package, which depends on Ubuntu's default PHP version (currently 7.2).…
Hvis du, etter å forske, du bestemmer deg for at du ønsker å installere en pakke, kan du gjøre det ved hjelp av apt install
kommando som du har gjort for annen programvare.,
Hvis du bestemt at php-cli
er noe som du trenger, kan du skriv:
- sudo apt install php-cli
Hvis du vil installere mer enn én modul, kan du gjøre det ved å liste hver og en, atskilt med et mellomrom, etter apt install
– kommandoen, som dette:
- sudo apt install package1 package2 ...
På dette punktet, din LAMPE stack er installert og konfigurert. Før du gjør noe annet, anbefaler vi at du setter opp en Apache virtuelle verten, der du kan lagre din server konfigurasjonen detaljer.,
Trinn 4 — Sette Opp Virtuelle Verter (Anbefales)
Når du bruker Apache web server, kan du bruke virtuelle verter (tilsvarende server blokker i Nginx) til å kapsle inn konfigurasjon detaljer og vert for mer enn ett domene fra en enkelt server. Vi vil sette opp et domene som heter ditt_domene, men du bør erstatte dette med ditt eget domenenavn. For å lære mer om å sette opp et domene navn med DigitalOcean, se vår Introduksjon til DigitalOcean DNS.
Apache på Ubuntu 18.,04 har en server og blokkerer som standard aktivert som er konfigurert til å tjene dokumenter fra /var/www/html
– katalogen. Mens dette fungerer godt for et enkelt område, kan det bli uhåndterlig hvis du er vert for flere nettsteder. I stedet for å endre /var/www/html
, la oss lage en katalog struktur innenfor /var/www
for våre ditt_domene nettstedet ditt, forlater /var/www/html
på plass som standard katalog for å bli servert hvis en klient forespørsel ikke samsvarer med noen andre nettsteder.,ditt_domene som følger:
sudo mkdir /var/www/your_domain
Neste, overdra eierskapet av katalogen med $USER
miljø-variabelen:
- sudo chown -R $USER:$USER /var/www/your_domain
tillatelsene for webområdet røtter skal være korrekt hvis du ikke har endret unmask
verdi, men du kan sjekke dette ved å skrive:
- sudo chmod -R 755 /var/www/your_domain
Neste, opprette et eksempel på index.html
side ved hjelp av nano
eller din favoritt editor:
- nano /var/www/your_domain/index.html
Inne, legg til følgende eksempel HTML:
<html> <head> <title>Welcome to Your_domain!</title> </head> <body> <h1>Success! The your_domain server block is working!</h1> </body></html>
Lagre og lukk filen når du er ferdig.
for Apache å tjene dette innholdet, er det nødvendig å opprette en virtuell vert-fil med riktig direktiver. I stedet for å endre standard konfigurasjonen ligger på /etc/apache2/sites-available/000-default.conf
direkte, la oss lage en ny en på /etc/apache2/sites-available/your_domain.conf
:
- sudo nano /etc/apache2/sites-available/your_domain.conf
Lim inn i den følgende konfigurasjon blokk, som er lik standard, men oppdatert til vår nye katalog og domene navn:
legg Merke til at vi har oppdatert DocumentRoot
til vår nye katalog og ServerAdmin
til en e-post at ditt_domene administrator kan få tilgang til. Vi har også lagt til to direktiver: ServerName
, som etablerer base domene som bør match for denne virtuelle verten definisjon, og ServerAlias
, som definerer videre navn som bør kamp som om de var basen navn.
Lagre og lukk filen når du er ferdig.,
La oss aktivere fil med a2ensite
verktøy:
- sudo a2ensite your_domain.conf
Deaktiver standard nettstedet som er definert i 000-default.conf
:
- sudo a2dissite 000-default.conf
Neste, la oss teste for konfigurasjon feil:
- sudo apache2ctl configtest
Du bør se følgende resultat:
OutputSyntax OK
Starte Apache å implementere endringer:
- sudo systemctl restart apache2
Apache skal nå være serverer ditt domenenavn., Du kan teste dette ved å navigere til , der bør du se noe slikt som dette:
Med det, du virtuelle verten er helt stille opp. Før du gjør noen endringer eller distribusjon av et program, selv om det ville være nyttig for proaktivt å teste ut din PHP-konfigurasjon i tilfelle det er noen problemer som bør løses.
Trinn 5 — Testing av PHP-Behandling på din Web Server
for å teste at systemet er riktig konfigurert for PHP, kan du opprette en svært grunnleggende PHP-script som heter info.php
., For Apache å finne denne filen og serverer den riktig, må den lagres til web-root directory.
Opprett filen på web-root du opprettet i forrige trinn, ved å kjøre:
- sudo nano /var/www/your_domain/info.php
Dette vil åpne en tom fil. Legge til følgende tekst, som er gyldig PHP-koden i filen:
<?phpphpinfo();?>
Når du er ferdig, kan du lagre og lukk filen.
Nå kan du teste om web-server er i stand til å vise riktig innhold som genereres av dette PHP-script. For å prøve dette ut, kan du besøke denne siden i nettleseren., Du trenger din server offentlige IP-adressen igjen.
Den adressen du vil ønske å besøke er:
The page that you come to should look something like this:
This page provides some basic information about your server from the perspective of PHP. It is useful for debugging and to ensure that your settings are being applied correctly.
If you can see this page in your browser, then your PHP is working as expected.
You probably want to remove this file after this test because it could actually give information about your server to unauthorized users. To do this, run the following command:
- sudo rm /var/www/your_domain/info.php
Du kan alltid gjenskape denne siden hvis du trenger å få tilgang til informasjonen på nytt senere.
Konklusjon
Nå som du har en LAMPE stabelen installert, har du mange valg for hva du skal gjøre neste. I utgangspunktet, du har installert en plattform som vil tillate deg å installere de fleste typer nettsteder og web-programvare på din server.
Som en umiddelbar neste trinn, bør du sikre forbindelser til webserveren din er sikret, ved å tjene dem via HTTPS., Det enkleste her er å bruke Let ‘ s Kryptere å sikre din side med en gratis TLS/SSL-sertifikat.
Noen andre populære alternativene er:
- Installere WordPress de mest populære content management system på internett.
- Sett Opp PHPMyAdmin for å hjelpe til med å administrere MySQL-databaser fra nettleseren.
- Lær hvordan du bruker SFTP å overføre filer til og fra serveren.
Legg igjen en kommentar