I den här artikeln kommer vi att ge dig steg-för-steg-instruktioner om hur du konfigurerar webbmiljön på en server som kör Linux. Först och främst måste du förstå att en typisk webbserver består av några interagerande komponenter:
- HTTP-server
- tolk för programmeringsspråk
- databashanteringssystem (DBMS)
För att hantera din webbplats behöver du också konfigurera ett innehållshanteringssystem (CMS), ett webbgränssnitt för databashantering och FTP-åtkomst.
Låt oss överväga att ställa in en mycket populär konfiguration Apache-PHP-MySQL(MariaDB) på Linux. Vi kommer även att installera vsftpd ftp-server, phpMyAdmin - ett webbgränssnitt för databashantering och ett innehållshanteringssystem WordPress.
För att börja, vänligen beställ en VPS-server eller dedikerad server . Till exempel använde vi en virtuell server med statisk IP-adress som körde Ubuntu Server 18.04. Alla kommandon kördes av root-användaren.
Apache HTTP-serverkonfiguration
1. Installation
apt install apache2
När installationen är klar, öppna en webbläsare och kontrollera "http://[serverns_ip_adress]"
Om du ser en välkomstsida som denna på skärmdumpen ovan betyder det att din HTTP-server fungerar.
2. Skapa en testsida
Standardrotkatalogen för webbplatsen är "/var/www/html" . Det är här du hittar välkomstsidan du just såg. Låt oss skapa en separat katalog "/var/www/sites" för virtuella värdar och en undermapp "/var/www/sites/site1" med indexsidan för din testwebbplats.
cd /var/www/
mkdir -p sites/site1
echo "<H1>Welcome</H1>" > sites/site1/index.html
I resultatet ska filen "/var/www/sites/site1/index.html" bara innehålla en rad html-kod:
<H1>Welcome</H1>
3. Apache-serverkonfiguration
Konfigurationsfiler för webbplatserna finns i katalogen “/etc/apache2/sites-available/” . Nu skapar vi en konfigurationsfil för en ny virtuell värd med standardkonfigurationen från filen “000-default.conf” som grund.
cd /etc/apache2/sites-available/
cp 000-default.conf site1.conf
Öppna filen "site1.conf" och ändra attributet "DocumentRoot" . Ange sökvägen till din webbplats som värde, så i vårt fall är det "/var/www/sites/site1".
I det här skedet behöver vi inte konfigurera den samtidiga driften av flera webbplatser, så vi kan inaktivera standardwebbplatsen och aktivera den nya webbplatsen. Ladda om serverkonfigurationen för att tillämpa ändringarna.
a2dissite 000-default
a2ensite site1
systemctl reload apache2
Öppna länken “http://[serverns _ip_adress]” igen och se till att vi istället för standardvälkomstsidan har vår nya sida.
Vi avslutade konfigurationen av vår HTTP-server och vi kan gå vidare till nästa steg.
FTP-serverkonfiguration
1. Installation
Nu installerar vi vår ftp-server och ytterligare ett paket "db-util" som vi behöver för att konfigurera virtuella användare.
apt install vsftpd db-util
2. Skapa ett lokalt konto
Med vsftpd-servern kan vi konfigurera åtkomstbehörigheter på ett mycket flexibelt sätt. För våra uppgifter behöver vi förse ftp-användare med följande:
- full tillgång till innehållet i "/var/www/webbplatser/";
- inaktivera allt ovan "/var/www/";
- anslutning till ett virtuellt konto;
Skapa ett lokalt konto "virtuellt" utan inloggningsbehörighet men med åtkomst till hemmappen "/var/www/" . Detta konto kommer att användas av ftp-användare för att ansluta till servern.
useradd -d /var/www virtual
"Root" kommer som standard att vara ägare till mappen "/var/www" . För att göra det möjligt för ftp-användare att ändra innehållet på webbplatserna, låt oss ändra ägaren till "/var/www/sites/" inklusive undermappar till "virtual".
chown -R virtual:root /var/www/sites
Som ett resultat kommer den "virtuella" användaren att kunna se innehållet i "/var/www/" och skriva i undermappen "/var/www/sites/" .
3. konfiguration
Huvudkonfigurationen finns i filen "/etc/vsftpd.conf" , så låt oss öppna den och redigera den enligt följande:
#enable virtual users
anonymous_enable=NO
local_enable=YES
guest_enable=YES
guest_username=virtual
#configure permission
write_enable=YES
anon_upload_enable=YES
anon_mkdir_write_enable=YES
anon_other_write_enable=YES
anon_world_readable_only=NO
anon_umask=0022
chroot_local_user=YES
#launch settings
listen=YES
pasv_min_port=30000
pasv_max_port=30999
4. Skapa databasen
Du behöver en databas för att lagra data från virtuella konton.
Först skapar vi en enkel textfil med namnet "users.txt" i hemmappen och sparar åtkomstuppgifter (inloggning och lösenord) för virtuella användare på varannan rad. Till exempel behöver vi en virtuell användare med inloggningen "ftp" och lösenordet "Qwe123" . Då kommer filen att se ut så här:
ftp
Qwe123
Låt oss skapa databasen
db_load -T -t hash -f ~/users.txt /etc/vsftpd_login.db
Låt oss ändra standard-PAM-filen "/etc/pam.d/vsftp" enligt följande:
auth required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd_login
account required /lib/x86_64-linux-gnu/security/pam_userdb.so db=/etc/vsftpd_login
Observera att sökvägen till biblioteket "pam_userdb.so" kan vara annorlunda, men du kan ändra den om det behövs.
Ladda om vsftpd-servern för att tillämpa ändringar.
systemctl restart vsftpd
Vi avslutade konfigureringen av FTP-servern.
Anslutningsdetaljer:
- ftp://[serverns_ip_adress]
- inloggning: ftp
- lösenord: Qwe123
PHP-serverkonfiguration
1. Installation av PHP
Idag är den senaste stabila versionen av PHP php 7.4.5 som inte ingår i officiella Ubuntu-förråd. Låt oss ansluta ett tredjepartsförråd och installera den senaste versionen av PHP.
apt update
apt install software-properties-common
add-apt-repository ppa:ondrej/php
apt update
apt install php7.4
2. Kolla upp
För att PHP ska kunna köras måste webbsidans fil ha filändelsen ".php" . Låt oss byta namn på vår testsida:
cd /var/www/sites/site1/
mv index.html index.php
Lägg till följande php-rad i filen "/var/www/sites/site1/index.php" , så att filen ska se ut så här:
<H1>Welcome</H1>
<?php
phpinfo();
?>
Spara ändringarna och kontrollera resultatet i webbläsaren.
Om du ser resultatet av funktionen "phpinfo()" fungerar PHP-tolken korrekt. Nu går vi vidare till nästa steg.
MySQL (MariaDB) konfiguration
1. Installation
Låt oss installera MariaDB och en PHP-modul för MySQL och sedan ladda om Apache.
apt install mariadb-server php-mysql
systemctl restart apache2
Uppdatera testsidan och gå till avsnittet PDO i PHP-konfigurationstabellen. Om du hittar avsnittet "PDO_mysql" betyder det att drivrutinen för Mysql är korrekt installerad.
Sedan måste vi göra den initiala säkerhetskonfigurationen av MariaDB och ställa in lösenordet för "root" -användaren, inaktivera fjärråtkomst och ta bort alla gästkonton.
mysql_secure_installation
I första steget måste vi ange "root" -användarens lösenord för att komma åt DBMS eller trycka på Enter om det inte finns något lösenord. Eftersom det inte finns något lösenord angivet för "root" -användaren efter installationen, tryck bara på "Enter".
Observera att det i MariaDB redan finns egna konton som inte har något att göra med operativsystemkontona. Så den enda användaren vi har att göra med i MariaDB är "root".
Efter det kommer konfiguratorn att be oss att ange lösenordet för root-användaren. Skriv "Y" för att bekräfta och ange det nya lösenordet. I vårt fall är det "Qwe123".
Svara "J" på alla andra frågor ända till slutet.
Konfigurationen är klar!
MariaDB åtkomstinformation:
- Inloggning: root
- Lösenord: Qwe123
phpMyAdmin-konfiguration
1. Installation
Låt oss installera det nödvändiga tillägget för PHP - mbstring.
apt install php-mbstring
I det officiella arkivet finns det bara en föråldrad version av phpMyAdmin, så låt oss installera den nya manuellt.
Öppna projektets officiella webbplats " https://www.phpmyadmin.net/ " och ladda ner det senaste arkivet.
Kopiera arkivet till servern i mappen "/var/www/sites/" med hjälp av valfri ftp-klient.
Avarkivera mappen och byt namn på den till “phpMyAdmin” . Glöm inte att installera verktyget “unzip” . Du kan radera arkivet efter att du har avarkiverat det.
apt install unzip
cd /var/www/sites/
unzip phpMyAdmin-5.0.2-all-languages.zip
mv phpMyAdmin-5.0.2-all-languages phpMyAdmin
rm phpMyAdmin-5.0.2-all-languages.zip
Skapa följande mapp “/var/www/sites/phpMyAdmin/tmp” för temporära filer och aktivera åtkomst för alla. Om du inte gör detta kommer phpMyAdmin att rapportera åtkomst nekad till den temporära mappen.
cd /var/www/sites/phpMyAdmin/
mkdir tmp
chmod 777 tmp
2. Skapa ett alias
Eftersom phpMyAdmin inte är en separat virtuell värd och ligger utanför rotkatalogen, låt oss konfigurera aliaset.
Öppna filen “/etc/apache2/mods-available/alias.conf” och lägg till den här raden:
Alias /pma “/var/www/sites/phpMyAdmin"
i detta avsnitt:
<IfModule alias_module>
</IfModule>
Ladda om Apache för att tillämpa ändringarna.
systemctl reload apache2
Alias är inställt, så vi kan komma åt phpMyAdmin här “http://[serverns_ip_adress]/pma”.
3. Förbered databasen
Eftersom vi begränsade användningen av root-användare under den initiala konfigurationen av MariaDB, måste vi skapa ett nytt konto med alla behörigheter som kommer att användas för att komma åt phpMyAdmin.
Dessutom, för att aktivera ytterligare funktioner i phpMyAdmin behöver vi en tjänstedatabas och ett konto för att komma åt den.
Låt oss skapa kontona
mariadb -u root -p
GRANT ALL PRIVILEGES ON *.* TO 'pma'@'localhost' IDENTIFIED BY 'Qwe123' WITH GRANT OPTION;
GRANT SELECT, INSERT, UPDATE, DELETE ON `phpmyadmin`.* TO 'pmaservice'@'localhost' IDENTIFIED BY 'Qwe123' WITH grant option;
quit
Observera att databasnamnet i den andra förfrågan finns i backsparks “… ON `phpmyadmin` .* TO 'pma'@'localhost' IDENTIFIED BY …”,
I resultatet kommer det att skapas två konton i MariaDB:
- Inloggning: pma, Lösenord: Qwe123Full åtkomst, kommer att användas för att logga in på phpMyAdmin
- Inloggning: pmaservice, Lösenord: Qwe123Servicekontot krävs för att ytterligare funktioner ska fungera
I nästa steg anger vi dessa detaljer i konfigurationsfilen "config.inc.php".
Sedan behöver vi importera databasen från filen "phpMyAdmin/sql/create_tables.sql".
Låt oss importera det med hjälp av phpMyAdmin.
Öppna länken “http://[serverns_ip_adress]/pma”
Ange inloggningsnamnet ”pma” och lösenordet ”Qwe123”
Gå till ”Importera” , klicka på ”Välj fil” och välj filen ”sql/create_tables.sql” i rotkatalogen för phpMyAdmin. Där ska finnas mappen ”phpMyAdmin” med filer på din dator. Avarkivera den om det behövs.
Klicka på "Nästa" för att börja importera.
4. konfiguration
Låt oss kopiera konfigurationsfilen från mallen
cd /var/www/sites/phpMyAdmin/
cp config.sample.inc.php config.inc.php
Låt oss öppna konfigurationsfilen "/var/www/sites/phpMyAdmin/config.inc.php" och göra följande ändringar:
Ange ett slumpmässigt värde på 32 tecken för attributet "$cfg['blowfish_secret']" . Använd valfri lösenordsgenerator för det.
Ta bort kommentarer från alla rader i avsnittet "phpMyAdmin configuration storage settings" och ange inloggning och lösenord för MariaDBs servicekonto för attributen "controluser" och "controlpass" i enlighet därmed. I vårt fall är det pmaservice och Qwe123.
Spara ändringarna.
Få åtkomst till detaljer för phpMyadmin:
- http://[server’s_ip_address]/pma/
- Inloggning: pma
- Lösenord: Qwe123
Hur man installerar och konfigurerar WordPress på en Linux-server
1. Placering av WordPress-paket och filer
Gå till den officiella WP-webbplatsen " https://ru.wordpress.org/ " och ladda ner arkivet till din lokala dator.
Ladda upp arkivet till servern till mappen "/var/www/sites/" och avarkivera det till mappen "wordpress ".
Kopiera innehållet i rotmappen "/var/www/sites/wordpress/" på webbplatsen "/var/www/sites/site1/".
Eftersom vi kopierade filerna via konsolen med root-behörigheter, låt oss ändra ägaren till mappen "/var/www/sites/" inklusive innehållet i "virtual" . Detta krävs för att möjliggöra fullständig åtkomst för ftp-anslutning via klienten.
cd /var/www/sites/
tar -xzvf wordpress-5.4-ru_RU.tar.gz
cp -R wordpress/* site1/
chown -R virtual:root /var/www/sites
2. Skapa en databas för WordPress
Logga in på phpMyAdmin och klicka på "Skapa databas". Ange ett godtyckligt databasnamn, i vårt fall "wordpress_db" och klicka på knappen "Skapa".
Välj den nya databasen i den vänstra sektionen och klicka på "Privilegier"
Klicka sedan på “Lägg till användarkonto”.
Ange inloggning och lösenord ( wpservice / Qwe123 ) i fönstret som öppnas, markera "Ge alla behörigheter i wordpress_db" och klicka på "Nästa".
På nästa sida klickar du på "Avbryt alla" för att återställa alla behörigheter på databasnivå och klickar på "Nästa".
3. WordPress-konfiguration på en Linux-server
Gå till rotkatalogen på din webbplats och kopiera konfigurationsfilen från mallen
cd /var/www/sites/site1/
cp wp-config-sample.php wp-config.php
Öppna filen "wp-config.php" och ange parametrarna för databasanslutning som vi skapade i föregående steg och spara ändringarna.
4. Installera CMS WordPress
Öppna följande länk i webbläsaren “http://[serverns_ip_adress]/wp-admin/install.php”.
Fyll i alla fält och klicka på "Installera WordPress" . Ange ett slumpmässigt användarnamn och lösenord. I vårt fall är det wpadmin och Qwe123.
Dessa uppgifter kommer att användas för att komma åt WordPress.
När du är klar med installationen, öppna länken “http://[serverns_ip_adress]/wp-login.php” , ange åtkomstuppgifterna och logga in på WordPress.
Du bör se en av WordPress-mallarna på huvudsidan.
Konfigurationen är klar.
WordPress åtkomstdetaljer:
- http://[server’s_ip_address]/wp-login.php
- Inloggning: wpadmin
- Lösenord: Qwe123