En tidigare version av denna tutorial är skriven av Brennan Bearnes.
introduktion
en ”lampa” stack är en grupp av öppen källkod som vanligtvis installeras tillsammans för att göra det möjligt för en server att vara värd för dynamiska webbplatser och webbappar. Denna term är faktiskt en akronym som representerar Linux operativsystem, med Apache webbserver. Webbplatsdata lagras i en MySQL-databas, och dynamiskt innehåll behandlas av PHP.
i den här guiden installerar vi en LAMPSTACK på en Ubuntu 18.04-server.,
förutsättningar
För att slutföra denna handledning måste du ha en Ubuntu 18.04-server med en icke-root sudo
-aktiverat användarkonto och en grundläggande brandvägg. Detta kan konfigureras med hjälp av vår första server Installationsguide för Ubuntu 18.04.
Steg 1 — installera Apache och uppdatera brandväggen
webbservern Apache är bland de mest populära webbservrarna i världen. Det är väldokumenterat och har varit i stor användning för mycket av webbhistoriken, vilket gör det till ett bra standardval för att vara värd för en webbplats.,
installera Apache med hjälp av Ubuntu: s pakethanterare,apt
:
- sudo apt update
- sudo apt install apache2
eftersom det här är ettsudo
– kommando utförs dessa operationer med rootbehörighet. Det kommer att be dig om din vanliga användarens lösenord för att verifiera dina avsikter.
När du har angett ditt lösenord kommer apt
att berätta vilka paket det planerar att installera och hur mycket extra diskutrymme de tar upp. Tryck påY
och tryck påENTER
för att fortsätta, och installationen fortsätter.,
justera brandväggen för att tillåta webbtrafik
nästa, förutsatt att du har följt de ursprungliga installationsinstruktionerna för servern och aktiverat UFW-brandväggen, se till att brandväggen tillåter HTTP och HTTPS-trafik.,ld visar att det gör det möjligt för trafik till portar 80
och 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
Tillåt inkommande HTTP-och HTTPS-trafik för den här profilen:
- sudo ufw allow in "Apache Full"
Du kan gör en punktkontroll direkt för att verifiera att allt gick som planerat genom att besöka din server offentliga IP-adress i din webbläsare (se anteckningen under nästa rubrik för att ta reda på vad din offentliga IP-adress är om du inte redan har denna information):
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/\/.*$//'
detta ger dig två eller tre rader tillbaka., De är alla korrekta adresser, men datorn kanske bara kan använda en av dem, så känn dig fri att prova var och en.
en alternativ metod är att använda verktyget curl
för att kontakta en extern part för att berätta hur den ser din server. Detta görs genom att fråga en specifik server vad din IP-adress är:
- sudo apt install curl
- curl http://icanhazip.com
oavsett vilken metod du använder för att få din IP-adress, skriv in den i webbläsarens adressfält för att visa standardsidan Apache.,
steg 2-installera MySQL
Nu när du har din webbserver igång är det dags att installera MySQL. MySQL är ett databashanteringssystem. I grund och botten kommer det att organisera och ge tillgång till databaser där din webbplats kan lagra information.
använd igenapt
för att förvärva och installera den här programvaran:
- sudo apt install mysql-server
Obs! i det här fallet behöver du inte köra sudo apt update
före kommandot. Detta beror på att du nyligen körde det i kommandona ovan för att installera Apache., Paketet index på din dator bör redan vara aktuell.
det här kommandot visar dig också en lista över de paket som ska installeras, tillsammans med hur mycket diskutrymme de tar upp. AngeY
för att fortsätta.
När installationen är klar, kör ett enkelt säkerhetsskript som kommer förinstallerat med MySQL som tar bort några farliga standardvärden och låser ner åtkomst till ditt databassystem. Starta det interaktiva skriptet genom att köra:
- sudo mysql_secure_installation
det här frågar om du vill konfigurera VALIDATE PASSWORD PLUGIN
.,
Obs! att aktivera den här funktionen är något av ett domssamtal. Om det är aktiverat kommer lösenord som inte matchar de angivna kriterierna att avvisas av MySQL med ett fel. Detta kommer att orsaka problem om du använder ett svagt lösenord i samband med programvara som automatiskt konfigurerar MySQL användarens autentiseringsuppgifter, till exempel Ubuntu-paket för phpMyAdmin. Det är säkert att lämna validering inaktiverad, men du bör alltid använda starka, unika lösenord för databasuppgifter.
svaraY
för JA, eller något annat att fortsätta utan att aktivera.,
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:
om du svarar ”ja” blir du ombedd att välja en nivå av lösenordsvalidering. Tänk på att om du anger2
för den starkaste nivån kommer du att få fel när du försöker ställa in ett lösenord som inte innehåller siffror, övre och små bokstäver och specialtecken, eller som bygger på vanliga ordlistor.
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
oavsett om du väljer att ställa inVALIDATE PASSWORD PLUGIN
, kommer din server nästa be dig att välja och bekräfta ett lösenord för MySQL root-användaren., Detta är ett administrativt konto i MySQL som har ökade privilegier. Tänk på att det liknar rotkontot för servern själv (även om den du konfigurerar nu är ett MySQL-specifikt konto). Se till att detta är ett starkt, unikt lösenord och lämna det inte tomt.
om du har aktiverat lösenordsvalidering visas lösenordsstyrkan för det root-lösenord du just angav och servern frågar om du vill ändra lösenordet., Om du är nöjd med ditt Nuvarande Lösenord anger duN
för ”nej” vid 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
för resten av frågorna trycker du påY
och trycker påENTER
– tangenten vid varje prompt. Detta kommer att ta bort några anonyma användare och testdatabasen, inaktivera fjärr root-inloggningar och ladda dessa nya regler så att MySQL omedelbart respekterar de ändringar du har gjort.
Observera att i Ubuntu-system som kör MySQL 5.,7 (och senare versioner) är root MySQL-användaren inställd på att autentisera med auth_socket
plugin som standard snarare än med ett lösenord. Detta möjliggör viss större säkerhet och användbarhet i många fall, men det kan också komplicera saker när du behöver tillåta ett externt program (t.ex. phpMyAdmin) för att komma åt användaren.
om du föredrar att använda ett lösenord när du ansluter till MySQL som root måste du byta autentiseringsmetod från auth_socket
tillmysql_native_password
., För att göra detta, öppna MySQL-prompten från din terminal:
- sudo mysql
kontrollera sedan vilken autentiseringsmetod alla dina MySQL-användarkonton använder med följande kommando:
- SELECT user,authentication_string,plugin,host FROM mysql.user;
i det här exemplet kan du se att rotanvändaren faktiskt autentiserar medauth_socket
plugin. För att konfigurera rotkontot för att autentisera med ett lösenord, kör följandeALTER USER
kommando., Se till att ändra password
för att få ett starkt lösenord som du själv väljer:
- ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
kör FLUSH PRIVILEGES
som talar om för servern att ladda om bidraget tabeller och sätta din nya förändringar i kraft:
- FLUSH PRIVILEGES;
Kontrollera autentisering metoder som används av var och en av dina användare igen för att bekräfta att roten inte längre verifierar att användaauth_socket
plugin:
- SELECT user,authentication_string,plugin,host FROM mysql.user;
Du kan se i det här exemplet utgång som roten MySQL-användare nu autentiserar med ett lösenord., När du har bekräftat detta på din egen server kan du avsluta MySQL-skalet:
- exit
vid denna tidpunkt är ditt databassystem nu inställt och du kan gå vidare till att installera PHP, den sista komponenten i LAMPSTACKEN.
steg 3 — Installera PHP
PHP är komponenten i din inställning som kommer att bearbeta kod för att visa dynamiskt innehåll. Det kan köra skript, ansluta till dina MySQL-databaser för att få information och lämna det bearbetade innehållet över till din webbserver för att visa.
utnyttja igenapt
– systemet för att installera PHP., Dessutom inkluderar några hjälppaket den här gången så att PHP-kod kan köras under Apache-servern och prata med din MySQL-databas:
- sudo apt install php libapache2-mod-php php-mysql
detta bör installera PHP utan problem. Vi testar det här om en stund.
i de flesta fall vill du ändra sättet som Apache serverar filer när en katalog begärs. För närvarande, om en användare begär en katalog från servern, kommer Apache först leta efter en fil som heter index.html
., Vi vill berätta för webbservern att föredra PHP-filer över andra, så gör Apache leta efter en index.php
– fil först.
för att göra detta, skriv det här kommandot för att öppna filendir.conf
I en textredigerare med root-privilegier:
- sudo nano /etc/apache2/mods-enabled/dir.conf
det kommer att se ut så här:
<IfModule mod_dir.c> DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm</IfModule>
flytta PHP-indexfilen (markerad ovan) till den första positionen efter specifikationen DirectoryIndex
, så här:
<IfModule mod_dir.c> DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm</IfModule>
När du är klar, spara och stäng filen genom att trycka på CTRL+X
. Bekräfta spara genom att skriva Y
och tryck sedan på ENTER
för att verifiera platsen för filbesparing.
starta sedan om Apache-webbservern så att ändringarna kan identifieras., Gör detta genom att skriva detta:
- sudo systemctl restart apache2
Du kan också kontrollera statusen för tjänsten apache2
med hjälp av systemctl
:
- sudo systemctl status apache2
Tryck på Q
för att avsluta statusutgången.
för att förbättra PHP: s funktionalitet har du möjlighet att installera några ytterligare moduler., För att se de tillgängliga alternativen för PHP-moduler och bibliotek, Pipa resultaten av apt search
till less
, en personsökare som låter dig bläddra igenom utmatningen från andra kommandon:
- apt search php- | less
Använd piltangenterna för att rulla upp och ner, och tryck på Q
för att avsluta.
resultaten är alla valfria komponenter som du kan installera. Det ger dig en kort beskrivning för varje:
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…:
om du vill veta mer om vad varje modul gör kan du söka på internet för mer information om dem., Alternativt, titta på den långa beskrivningen av paketet genom att skriva:
- apt show package_name
det kommer att finnas en hel del utdata, med ett fält som heter Description
som kommer att ha en längre förklaring av funktionaliteten som modulen tillhandahåller.,
för att ta reda på vad modulen php-cli
gör kan du skriva detta:
- apt show php-cli
tillsammans med en stor mängd annan information hittar du något som ser ut så här:
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).…
om du efter att ha undersökt bestämmer att du vill installera ett paket kan du göra det genom att använda kommandot apt install
som du har gjort för den andra programvaran.,
om du bestämde dig för attphp-cli
är något du behöver kan du skriva:
- sudo apt install php-cli
om du vill installera mer än en modul kan du göra det genom att lista var och en, åtskild av ett utrymme, efter kommandotapt install
, så här:
- sudo apt install package1 package2 ...
vid denna tidpunkt är din lampstack installerad och konfigurerad. Innan du gör något annat rekommenderar vi att du ställer in en virtuell Apache-värd där du kan lagra serverns konfigurationsdetaljer.,
steg 4-konfigurera virtuella värdar (rekommenderas)
När du använder Apache-webbservern kan du använda virtuella värdar (liknande serverblock i Nginx) för att inkapsla konfigurationsdetaljer och vara värd för mer än en domän från en enda server. Vi kommer att skapa en domän som heter your_domain, men du bör ersätta det med ditt eget domännamn. Mer information om hur du konfigurerar ett domännamn med DigitalOcean finns i vår introduktion till DigitalOcean DNS.
Apache på linux 18.,04 har ett serverblock aktiverat som standard som är konfigurerat för att visa dokument från katalogen/var/www/html
. Även om detta fungerar bra för en enda webbplats, kan det bli otympligt om du är värd för flera webbplatser. I stället för att ändra/var/www/html
, låt oss skapa en katalogstruktur inom/var/www
för vår your_domain-webbplats och lämna/var/www/html
på plats som standardkatalogen som ska serveras om en klientbegäran inte matchar några andra webbplatser.,your_domain enligt följande:
sudo mkdir /var/www/your_domain
tilldela sedan äganderätten till katalogen med miljövariabeln $USER
:
- sudo chown -R $USER:$USER /var/www/your_domain
behörigheterna för dina webbrötter ska vara korrekta om du inte har ändrat värdet unmask
, men du kan se till att du skriver:
- sudo chmod -R 755 /var/www/your_domain
skapa sedan ett prov index.html
sida med nano
eller din favoritredigerare:
- nano /var/www/your_domain/index.html
inuti, lägg till följande exempel HTML:
<html> <head> <title>Welcome to Your_domain!</title> </head> <body> <h1>Success! The your_domain server block is working!</h1> </body></html>
spara och stäng filen när du är klar.
För att Apache ska kunna tjäna detta innehåll är det nödvändigt att skapa en virtuell värdfil med rätt direktiv. I stället för att ändra standardkonfigurationsfilen som finns på /etc/apache2/sites-available/000-default.conf
direkt, Låt oss göra en ny på /etc/apache2/sites-available/your_domain.conf
:
- sudo nano /etc/apache2/sites-available/your_domain.conf
klistra in i följande konfigurationsblock, som liknar standard, men uppdateras för vår nya katalog och domännamn:
Observera att vi har uppdaterat DocumentRoot
till vår nya katalog och ServerAdmin
till ett e-postmeddelande som your_domain webbplatsadministratören kan komma åt. Vi har också lagt till två direktiv: ServerName
, som fastställer basdomänen som ska matcha för denna virtuella värddefinition, och ServerAlias
, som definierar ytterligare namn som ska matcha som om de var basnamnet.
spara och stäng filen när du är klar.,
låt oss aktivera filen med a2ensite
verktyg:
- sudo a2ensite your_domain.conf
inaktivera standardwebbplatsen definierad i 000-default.conf
:
- sudo a2dissite 000-default.conf
låt oss sedan testa konfigurationsfel:
000-default.conf
:
- sudo a2dissite 000-default.conf
nästa, låt oss testa konfigurationsfel:
- sudo apache2ctl configtest
Du bör se följande utdata:
OutputSyntax OK
starta Apache för att implementera dina ändringar:
- sudo systemctl restart apache2
Apache bör nu betjäna ditt domännamn., Du kan testa detta genom att navigera till , där du bör se något liknande:
med det är du virtuell värd helt inställd. Innan du gör några fler ändringar eller distribuerar ett program, men det skulle vara bra att proaktivt testa din PHP-konfiguration om det finns några problem som bör åtgärdas.
Steg 5 — Testa PHP-bearbetning på din webbserver
för att testa att ditt system är korrekt konfigurerat för PHP, skapa ett mycket grundläggande PHP-skript som heter info.php
., För att Apache ska kunna hitta den här filen och servera den korrekt måste den sparas i din webbrotkatalog.
skapa filen vid webbroten du skapade i föregående steg genom att köra:
- sudo nano /var/www/your_domain/info.php
detta öppnar en tom fil. Lägg till följande text, som är giltig PHP-kod, i filen:
<?phpphpinfo();?>
När du är klar, spara och stäng filen.
Nu kan du testa om din webbserver kan korrekt visa innehåll som genereras av detta PHP-skript. För att prova detta, besök den här sidan i din webbläsare., Du behöver din server offentliga IP-adress igen.
adressen du vill besöka är:
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 återskapa den här sidan om du behöver komma åt informationen igen senare.
slutsats
Nu när du har en LAMPSTACK installerad har du många val för vad du ska göra härnäst. I grund och botten, du har installerat en plattform som gör att du kan installera de flesta typer av webbplatser och webbprogram på din server.
som ett omedelbart nästa steg bör du se till att anslutningarna till din webbserver är säkrade genom att betjäna dem via HTTPS., Det enklaste alternativet här är att använda Låt oss kryptera för att säkra din webbplats med ett gratis TLS / SSL-certifikat.
några andra populära alternativ är:
- installera WordPress det mest populära innehållshanteringssystemet på internet.
- Ställ in PHPMyAdmin för att hantera dina MySQL-databaser från webbläsaren.
- lär dig hur du använder SFTP för att överföra filer till och från din server.
Lämna ett svar