En tidligere version af denne vejledning blev skrevet af Brennan Bearnes.
introduktion
en “LAMP”-stak er en gruppe open source-soft .are, der typisk installeres sammen for at gøre det muligt for en server at være vært for dynamiske websebsteder og webebapps. Dette udtryk er faktisk et akronym, der repræsenterer Linu. – operativsystemet med Apache-webebserveren. Siteebstedets data gemmes i en Mys .l-database, og dynamisk indhold behandles af PHP.
i denne vejledning installerer vi en LAMPESTACK på en Ubuntu 18.04-server.,
Forudsætninger
for at gennemføre denne tutorial, vil du nødt til at have en Ubuntu 18.04-server med en ikke-root sudo
-aktiveret-bruger konto og en grundlæggende firewall. Dette kan konfigureres ved hjælp af vores indledende serveropsætningsguide til Ubuntu 18.04.
Trin 1 — installation af Apache og opdatering af fire .all
Apache-webebserveren er blandt de mest populære .ebservere i verden. Det er veldokumenteret og har været i bred brug for meget af historien på nettet, hvilket gør det til et godt standardvalg til hosting af et websiteebsted.,
Installer Apache ved hjælp af Ubuntu ‘ s package manager, apt
:
- sudo apt update
- sudo apt install apache2
Da dette er en sudo
kommando, disse operationer udføres med root privilegier. Det vil bede dig om din almindelige brugers adgangskode for at bekræfte dine intentioner.
Når du har indtastet din adgangskode, vil apt
fortælle dig, hvilke pakker den planlægger at installere, og hvor meget ekstra diskplads de vil tage op. Tryk på Y
og tryk på ENTER
for at fortsætte, og installationen fortsætter.,
Juster fire .allen for at tillade Trafficebtrafik
derefter skal du sørge for, at din Fire .all tillader HTTP-og HTTPS-trafik, hvis du antager, at du har fulgt de første serveropsætningsinstruktioner og aktiveret UF. – fire .all.,ld viser, at det giver trafik til og fra havnene 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
Tillad indgående HTTP-og HTTPS-trafik for denne profil:
- sudo ufw allow in "Apache Full"
Du kan gøre en spot check lige væk for at kontrollere, at alt gik som planlagt, ved at besøge din server ‘ s offentlige IP-adresse i din webbrowser (se noten under næste overskrift for at finde ud af, hvad din offentlige IP-adresse, hvis du ikke har disse oplysninger 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 give dig to eller tre linjer tilbage., De er alle korrekte adresser, men din computer kan kun være i stand til at bruge en af dem, så er du velkommen til at prøve hver enkelt.
en alternativ metode er at bruge curl
– værktøjet til at kontakte en ekstern part for at fortælle dig, hvordan den ser din server. Dette er gjort ved at spørge en bestemt server, hvad din IP adresse er:
- sudo apt install curl
- curl http://icanhazip.com
Uanset den metode, du bruger til at få din IP-adresse, kan du skrive det i din web-browsers adresselinje for at få vist standard Apache side.,
Trin 2 — Installation af Mys .l
nu hvor du har din webebserver i gang, er det tid til at installere Mys .l. Mys .l er et databasestyringssystem. Grundlæggende vil det organisere og give adgang til databaser, hvor dit .ebsted kan gemme oplysninger.
Igen, skal du bruge apt
for at erhverve sig og installere denne software:
- sudo apt install mysql-server
Bemærk: I dette tilfælde behøver du ikke nødt til at køre sudo apt update
før kommando. Dette skyldes, at du for nylig kørte det i kommandoerne ovenfor for at installere Apache., Pakkeindekset på din computer skal allerede være opdateret.
denne kommando viser dig også en liste over de pakker, der vil blive installeret, sammen med den mængde diskplads, de vil tage op. Indtast Y
for at fortsætte.
Når installationen er færdig, skal du køre et simpelt sikkerhedsskript, der leveres forudinstalleret med Mys .l, hvilket fjerner nogle farlige standardindstillinger og låser adgangen til dit databasesystem. Starte interaktivt script ved at køre:
- sudo mysql_secure_installation
Dette vil spørge, om du ønsker at konfigurere VALIDATE PASSWORD PLUGIN
.,Bemærk: aktivering af denne funktion er noget af et domsopkald. Hvis aktiveret, vil adgangskoder, der ikke matcher de angivne kriterier, blive afvist af Mys .l med en fejl. Dette vil give problemer, hvis du bruger en svag adgangskode i forbindelse med software som automatisk konfigurerer MySQL bruger legitimationsoplysninger, såsom Ubuntu-pakker til phpMyAdmin. Det er sikkert at forlade Validering deaktiveret, men du skal altid bruge stærke, unikke adgangskoder til databaseoplysninger.
svar Y
for ja, eller noget andet at fortsætte uden at 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”, bliver du bedt om at vælge et niveau for validering af adgangskode. Husk, at hvis du indtaster 2
for det stærkeste niveau, vil du modtage en fejl, når du forsøger at indstille en adgangskode, der ikke indeholder tal, store og små bogstaver og specialtegn, eller som er baseret på fælles ord fra ordbogen.
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
uanset om du vælger at konfigurere VALIDATE PASSWORD PLUGIN
, vil din server derefter bede dig om at vælge og bekræfte en adgangskode til Mys .l root-brugeren., Dette er en administrativ konto i Mys .l, der har øget privilegier. Tænk på det som ligner rodkontoen for selve serveren (selvom den, du konfigurerer nu, er en Mys .l-specifik konto). Sørg for, at dette er en stærk, unik adgangskode, og lad den ikke være tom.
Hvis du har aktiveret validering af adgangskode, får du vist adgangskodestyrken for den root-adgangskode, du lige har indtastet, og din server spørger, om du vil ændre denne adgangskode., Hvis du er tilfreds med din nuværende adgangskode, indtast N
“nogen” ved prompten:
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
resten af spørgsmålene, skal du trykke på Y
og tryk på ENTER
knappen ved hver prompt. Dette vil fjerne nogle anonyme brugere og testdatabasen, deaktivere eksterne root-logins og indlæse disse nye regler, så Mys .l straks respekterer de ændringer, du har foretaget.
Bemærk, at i Ubuntu-systemer, der kører Mys .l 5.,7 (og senere versioner) er root Mys .l-brugeren indstillet til at godkende ved hjælp af auth_socket
plugin som standard snarere end med en adgangskode. Dette giver mulighed for en vis større sikkerhed og brugervenlighed i mange tilfælde, men det kan også komplicere ting, når du skal tillade et eksternt program (f ph phpMyAdmin) for at få adgang til brugeren.
Hvis du foretrækker at bruge en adgangskode, når du opretter forbindelse til MySQL som root, vil du nødt til at skifte sin godkendelsesmetode fra auth_socket
til mysql_native_password
., For at gøre dette åbner op MySQL prompt fra din terminal:
- sudo mysql
Næste, check, som godkendelsesmetode for hver af dine MySQL-bruger-konti bruger med følgende kommando:
- SELECT user,authentication_string,plugin,host FROM mysql.user;
I dette eksempel, kan du se, at root-brugeren rent faktisk godkende med auth_socket
plugin. For at konfigurere rodkontoen til at autentificere med en adgangskode skal du køre følgende ALTER USER
kommando., Sørg for at ændre password
til en stærk adgangskode, du vælger:
- ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
kør derefter FLUSH PRIVILEGES
som fortæller serveren at genindlæse grant tables og sætte dine nye ændringer i kraft:
- FLUSH PRIVILEGES;
kontroller de godkendelsesmetoder, der anvendes af hver af dine brugere igen for at bekræfte, at Root ikke længere autentificerer ved hjælp af auth_socket
plugin:
- SELECT user,authentication_string,plugin,host FROM mysql.user;
Du kan se i dette eksempel output, at root Mys .l-brugeren nu autentificerer ved hjælp af en adgangskode., Når du har bekræftet dette på din egen server, kan du afslutte MySQL shell:
- exit
På dette tidspunkt, din database system er nu sat op og du kan gå videre til installation af PHP, den sidste del af LAMP stack.
Trin 3 — Installation af PHP
PHP er den komponent i din opsætning, der behandler kode for at vise dynamisk indhold. Det kan køre scripts, oprette forbindelse til dine Mys .l-databaser for at få oplysninger og overdrage det behandlede indhold til din .ebserver for at få vist.
Udnyt igenapt
– systemet for at installere PHP., Ud over at indeholde nogle hjælper pakker denne gang, så PHP-kode kan køre under Apache server og tale til din MySQL-database:
- sudo apt install php libapache2-mod-php php-mysql
Dette bør installere PHP uden nogen problemer. Vi tester det om et øjeblik.
i de fleste tilfælde vil du ændre den måde, Apache serverer filer på, når der anmodes om en mappe. I øjeblikket, hvis en bruger anmoder om en mappe fra serveren, vil Apache først søge efter en fil kaldet index.html
., Vi vil gerne fortælle webebserveren at foretrække PHP-filer frem for andre, så få Apache til at kigge efter en index.php
fil først.
for At gøre dette, skal du indtaste denne kommando til at åbne dir.conf
filen i en tekst editor med root privilegier:
- sudo nano /etc/apache2/mods-enabled/dir.conf
Det vil se ud som dette:
<IfModule mod_dir.c> DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm</IfModule>
Flyt index PHP-fil (som omtalt ovenfor) til den første position efter DirectoryIndex
specifikation, som dette:
<IfModule mod_dir.c> DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm</IfModule>
Når du er færdig, skal du gemme og lukke filen ved at trykke på CTRL+X
. Bekræft gemningen ved at skrive Y
og tryk derefter på ENTER
for at bekræfte filens gemte placering.efter dette skal du genstarte Apache – webebserveren for at dine ændringer skal genkendes., Gøre dette ved at skrive dette:
- sudo systemctl restart apache2
Du kan også se status af apache2
service ved hjælp af systemctl
:
- sudo systemctl status apache2
Tryk Q
for at forlade denne status output.
for at forbedre funktionaliteten af PHP har du mulighed for at installere nogle ekstra moduler., For at se de tilgængelige indstillinger for PHP-moduler og biblioteker, rør resultaterne af apt search
til less
, en personsøger, der lader dig rulle gennem output fra andre kommandoer:
- apt search php- | less
Brug piletasterne til at rulle op og ned, og tryk på Q
for at afslutte.
resultaterne er alle valgfrie komponenter, som du kan installere. Det vil give dig en kort beskrivelse for 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 at lære mere om, hvad hvert modul gør, kan du søge på internettet for mere information om dem., Alternativt kan du se på den lange beskrivelse af pakken ved at skrive:
- apt show package_name
Der vil være en masse output, med et felt, der kaldes Description
, som vil have en længere forklaring af de funktioner, som modulet tilbyder.,
For eksempel, at finde ud af, hvad php-cli
modul gør, kan du skrive dette:
- apt show php-cli
Sammen med en stor mængde af andre oplysninger, du vil finde noget, der ligner 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, efter at forske i, du beslutter, at du gerne vil installere en pakke, kan du gøre det ved at bruge apt install
kommando, som du har gjort i de andre programmer.,
Hvis du har besluttet, at php-cli
er noget, du har brug for, kan du skrive:
- sudo apt install php-cli
Hvis du vil installere mere end et modul, kan du gøre det ved at angive hver enkelt, adskilt af et mellemrum, efter kommandoen apt install
, sådan:
- sudo apt install package1 package2 ...
på dette tidspunkt er din lampestack installeret og konfigureret. Før du gør noget andet, anbefaler vi, at du opretter en Apache virtual host, hvor du kan gemme din servers konfigurationsoplysninger.,
Trin 4 — Opsætning af virtuelle værter (anbefalet)
Når du bruger Apache-webebserveren, kan du bruge virtuelle værter (svarende til serverblokke i Ngin.) til at indkapsle konfigurationsdetaljer og være vært for mere end et domæne fra en enkelt server. Vi vil oprette et domæne kaldet your_domain, men du bør erstatte dette med dit eget domænenavn. For at lære mere om opsætning af et domænenavn med DigitalOcean, se vores Introduktion til DigitalOcean DNS.
Apache på Ubuntu 18.,04 har som standard en serverblok aktiveret, der er konfigureret til at vise dokumenter fra mappen /var/www/html
. Selvom dette fungerer godt for et enkelt sted, det kan blive uhåndterligt, hvis du er vært for flere sitesebsteder. I stedet for at ændre /var/www/html
, lad os oprette en mappe struktur i /var/www
for vores dit_domæne hjemmeside, forlader /var/www/html
i stedet som standard mappe, der skal forkyndes, hvis en klient ikke passer til nogen andre steder.,your_domain som følger:
sudo mkdir /var/www/your_domain
tildel derefter ejerskab af biblioteket med $USER
miljøvariabel:
- sudo chown -R $USER:$USER /var/www/your_domain
tilladelserne for dine rootsebrødder skal være korrekte, hvis du ikke har ændret din unmask
u kan sikre dig ved at skrive:
- sudo chmod -R 755 /var/www/your_domain
Opret derefter en prøveindex.html
side ved hjælp afnano
eller din foretrukne editor:
- nano /var/www/your_domain/index.html
inde, tilføj følgende prøve HTML:
<html> <head> <title>Welcome to Your_domain!</title> </head> <body> <h1>Success! The your_domain server block is working!</h1> </body></html>
Gem og luk filen, når du er færdig.
for at Apache skal kunne betjene dette indhold, er det nødvendigt at oprette en virtuel værtsfil med de korrekte direktiver. I stedet for at ændre standardkonfigurationen-fil på /etc/apache2/sites-available/000-default.conf
direkte, lad os lave en ny på /etc/apache2/sites-available/your_domain.conf
:
- sudo nano /etc/apache2/sites-available/your_domain.conf
Indsæt i følgende konfiguration blok, som er magen til den som standard, men opdateret til vores nye bibliotek og domænenavn:
Bemærk, at vi har opdateret DocumentRoot
til vores nye bibliotek og ServerAdmin
til en e-mail, at dit_domæne site administrator kan få adgang til. Vi har også tilføjet to direktiver: ServerName
, der fastsætter base domæne, der skal matche for denne virtual host-definition, og ServerAlias
, som definerer yderligere navne, der skal svare, som om de var base navn.
Gem og luk filen, når du er færdig.,
Lad os sætte fil med a2ensite
af:
- sudo a2ensite your_domain.conf
Deaktiver standard site, der er defineret i 000-default.conf
:
- sudo a2dissite 000-default.conf
Næste, lad os teste for konfiguration fejl:
- sudo apache2ctl configtest
Du bør se følgende output:
OutputSyntax OK
Genstart Apache til at gennemføre ændringerne:
- sudo systemctl restart apache2
Apache bør nu være tjener dit domæne navn., Du kan teste dette ved at navigere til , hvor du skal se noget som dette:
med det er din virtuelle vært fuldt konfigureret. Før du foretager flere ændringer eller implementering af en applikation, ville det dog være nyttigt at proaktivt teste din PHP-konfiguration, hvis der er problemer, der skal løses.
Trin 5 — Test af PHP-behandling på din Webebserver
for at teste, at dit system er konfigureret korrekt til PHP, skal du oprette et meget grundlæggende PHP-script kaldet info.php
., For at Apache kan finde denne fil og tjene den korrekt, skal den gemmes i din rooteb rodmappe.
Opret filen ved den rootebrot, du oprettede i det forrige trin, ved at køre:
- sudo nano /var/www/your_domain/info.php
Dette åbner en tom fil. Tilføj følgende tekst, som er gyldig PHP-kode, inde i filen:
<?phpphpinfo();?>
Når du er færdig, skal du gemme og lukke filen.
nu Kan du teste, om din PHEBSERVER er i stand til korrekt at vise indhold genereret af dette PHP script. For at prøve dette skal du besøge denne side i din browebbro .ser., Du skal bruge din servers offentlige IP-adresse igen.
den adresse, du vil besøge, 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 altid genskabe denne side, hvis du har brug for at få adgang til oplysningerne igen senere.
konklusion
nu hvor du har installeret en LAMPESTABEL, har du mange valgmuligheder for, hvad du skal gøre næste gang. Grundlæggende har du installeret en platform, der giver dig mulighed for at installere de fleste slags websebsteder og webebsoft .are på din server.
som et øjeblikkeligt næste trin skal du sikre dig, at forbindelser til din webebserver er sikret ved at betjene dem via HTTPS., Den nemmeste mulighed her er at bruge Lad os kryptere for at sikre dit .ebsted med et gratis TLS/SSL-certifikat.
nogle andre populære muligheder er:
- installer Installordpress det mest populære indholdsstyringssystem på internettet.
- Konfigurer PHPMyAdmin for at hjælpe med at administrere dine Mys .l-databaser fra webebbro .seren.
- Lær hvordan du bruger SFTP til at overføre filer til og fra din server.
Skriv et svar