Hur man Installerar Linux, Apache, MySQL, PHP (LAMP) stack på Ubuntu 18.04

posted in: Articles | 0

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"
Output
Profile: 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_sockettillmysql_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_socketplugin:

  • 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:

/etc/apache2/mods-enabled/dir.conf
<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:

/etc/apache2/mods-enabled/dir.,conf
<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 Yoch 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:

/var/www/your_domain/index.,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:

/etc/apache2/sites-available/your_domain.,conf

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:

Output
Syntax 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:

info.php
<?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

Din e-postadress kommer inte publiceras. Obligatoriska fält är märkta *