In dit artikel geven we u stapsgewijze instructies over hoe u de webomgeving op een server met Linux configureert. Allereerst moet u begrijpen dat een typische webserver uit een paar interacterende componenten bestaat:
- HTTP-server
- programmeertaal tolk
- databasebeheersysteem (DBMS)
Om uw website te beheren, moet u ook een contentmanagementsysteem (CMS), een webinterface voor databasebeheer en FTP-toegang instellen.
Laten we eens kijken naar het opzetten van een zeer populaire configuratie Apache-PHP-MySQL(MariaDB) op Linux. We zullen ook vsftpd ftp server, phpMyAdmin - een webinterface voor databasebeheer en een content management systeem WordPress installeren.
Om te beginnen, alstublieft VPS-server bestellen or dedicated server. We gebruikten bijvoorbeeld een virtuele server met een statisch IP-adres waarop Ubuntu Server 18.04 draaide. Alle opdrachten werden uitgevoerd door de rootgebruiker.
Apache HTTP Server-configuratie
1. Installatie
apt install apache2
Wanneer de installatie is voltooid, opent u een browser en controleert u “http://[ip_adres_van_server]”
Als u een welkomstpagina ziet zoals op de schermafbeelding hierboven, betekent dit dat uw HTTP-server werkt.
2. Maak een testpagina
De standaard root directory voor de website is “/var/www/html”. Hier vindt u de welkomstpagina die u zojuist zag. Laten we een aparte directory maken “/var/www/sites” voor virtuele hosts en een submap “/var/www/sites/site1” met de indexpagina van uw testwebsite.
cd /var/www/
mkdir -p sites/site1
echo "<H1>Welcome</H1>" > sites/site1/index.html
Als resultaat het bestand “/var/www/sites/site1/index.html” mag slechts één regel html-code bevatten:
<H1>Welcome</H1>
3. Apache-serverconfiguratie
Configuratiebestanden van de websites bevinden zich in “/etc/apache2/sites-beschikbaar/” catalogus. Laten we een configuratiebestand maken voor een nieuwe virtuele host door de standaardconfiguratie uit het bestand te nemen “000-standaard.conf” als basis.
cd /etc/apache2/sites-available/
cp 000-default.conf site1.conf
Open het bestand “site1.conf” en verander de “DocumentRoot” attribuut. Zet het pad van uw website als de waarde, dus in ons geval is het “/var/www/sites/site1”
In dit stadium hoeven we de gelijktijdige werking van meerdere websites niet te configureren, dus we kunnen de standaardwebsite uitschakelen en de nieuwe site inschakelen. Laad de serverconfiguratie opnieuw om de wijzigingen toe te passen.
a2dissite 000-default
a2ensite site1
systemctl reload apache2
Open de link “http://[ip_adres van de server]” en zorg ervoor dat we in plaats van de standaardwelkomstpagina onze nieuwe pagina hebben.
We hebben de configuratie van onze HTTP-server voltooid en kunnen doorgaan naar de volgende stap.
FTP-serverconfiguratie
1. Installatie
Laten we onze ftp-server en een extra pakket installeren “db-util”, dat we virtuele gebruikers moeten configureren
apt install vsftpd db-util
2. Maak een lokaal account aan
De vsftpd-server stelt ons in staat om toegangsrechten op een zeer flexibele manier te configureren. Voor onze taken moeten we ftp-gebruikers het volgende bieden:
- volledige toegang tot de inhoud van “/var/www/sites/”;
- schakel alles hierboven uit “/var/www/”;
- verbinding met een virtueel account;
Maak een lokaal account aan “virtueel” zonder inlogmachtiging maar met toegang tot de thuismap “/var/www/”. Dit account wordt door ftp-gebruikers gebruikt om verbinding te maken met de server
useradd -d /var/www virtual
"Wortel" zal de eigenaar zijn van de “/var/www” map standaard. Om ftp-gebruikers in staat te stellen de inhoud van de websites te wijzigen, veranderen we de eigenaar van “/var/www/sites/” inclusief submappen van “virtueel”.
chown -R virtual:root /var/www/sites
Als gevolg hiervan kan de gebruiker “virtueel” zal de inhoud van kunnen zien “/var/www/” en schrijf in de “/var/www/sites/” submap.
3. configuratie
De hoofdconfiguratie staat in het bestand “/etc/vsftpd.conf”, dus laten we het openen en als volgt bewerken:
#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. Maak de database
U hebt een database nodig om de gegevens van virtuele accounts op te slaan.
Laten we eerst een eenvoudig tekstbestand maken “gebruikers.txt” in de home folder en sla toegangsgegevens (login en wachtwoord) van virtuele gebruikers op in elke andere regel. We hebben bijvoorbeeld een virtuele gebruiker nodig met de login “ftp-bestand” en wachtwoord “Qwe123”. Dan ziet het bestand er zo uit:
ftp
Qwe123
Laten we de database aanmaken
db_load -T -t hash -f ~/users.txt /etc/vsftpd_login.db
Laten we het standaard PAM-bestand aanpassen “/etc/pam.d/vsftp” als volgt:
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
Houd er rekening mee dat het pad van de “pam_userdb.so” bibliotheek kan verschillen, maar u kunt dit indien nodig wijzigen.
Laad de vsftpd-server opnieuw om de wijzigingen toe te passen.
systemctl restart vsftpd
We zijn klaar met het configureren van de FTP-server.
Verbindingsgegevens:
- ftp://[ip_adres_van_server]
- inloggen: ftp
- wachtwoord: Qwe123
PHP-serverconfiguratie
1. Installatie van PHP
De nieuwste stabiele versie van PHP is vandaag php 7.4.5, die niet is opgenomen in de officiële Ubuntu-repositories. Laten we een externe repository verbinden en de nieuwste versie van PHP installeren.
apt update
apt install software-properties-common
add-apt-repository ppa:ondrej/php
apt update
apt install php7.4
2. Controleren
Om PHP te kunnen uitvoeren, moet het webpaginabestand het volgende bevatten: “.php” extensie. Laten we onze testpagina hernoemen:
cd /var/www/sites/site1/
mv index.html index.php
Voeg de volgende php-regel toe aan het bestand “/var/www/sites/site1/index.php”, dus het bestand zou er zo uit moeten zien:
<H1>Welcome</H1>
<?php
phpinfo();
?>
Sla de wijzigingen op en controleer het resultaat in de browser.
Als u het resultaat van de functie ziet “phpinfo()”, de PHP-interpreter werkt goed. Laten we nu doorgaan naar de volgende stap.
MySQL (MariaDB) configuratie
1. Installatie
Laten we MariaDB en een PHP-module voor MySQL installeren en vervolgens Apache opnieuw laden.
apt install mariadb-server php-mysql
systemctl restart apache2
Ververs de testpagina en ga naar de sectie PDO in de PHP-configuratietabel. Als u de sectie kunt vinden “PDO_mysql”, dan betekent dit dat de driver voor MySQL correct is geïnstalleerd.
Vervolgens moeten we de initiële beveiligingsconfiguratie van MariaDB uitvoeren en het wachtwoord voor de "Wortel" gebruiker, schakel externe toegang uit en verwijder alle gastaccounts.
mysql_secure_installation
Bij de eerste stap moeten we de "wortel" wachtwoord van de gebruiker om toegang te krijgen tot DBMS of druk op Enter als er geen wachtwoord is. Omdat er geen wachtwoord is ingesteld voor de "wortel" gebruiker na installatie, druk gewoon op "Enter".
Let op dat er in MariaDB al eigen accounts zijn die niets te maken hebben met de OS-accounts. Dus de enige gebruiker waarmee we in MariaDB te maken hebben is "wortel".
Daarna zal de configurator ons vragen om het wachtwoord voor de rootgebruiker in te stellen. Typ “Y” om het nieuwe wachtwoord te bevestigen en in te voeren. In ons geval is het “Qwe123”
Antwoorden “Y” op alle overige vragen tot aan het einde.
Configuratie is voltooid!
MariaDB-toegangsgegevens:
- Inloggen: root
- Wachtwoord: Qwe123
phpMyAdmin-configuratie
1. Installatie
Laten we de benodigde extensie voor PHP installeren - mbstring.
apt install php-mbstring
In de officiële repository staat alleen een verouderde versie van phpMyAdmin, dus laten we de nieuwe versie handmatig installeren.
Open de officiële website van het project “https://www.phpmyadmin.net/” en download het nieuwste archief.
Kopieer het archief naar de server in de “/var/www/sites/” map met behulp van een ftp-client.
De-archiveer de map en hernoem deze naar “phpMyAdmin”Vergeet niet om de “uitpakken” hulpprogramma. U kunt het archief verwijderen nadat u het hebt gedearchiveerd.
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
Maak de volgende map aan “/var/www/sites/phpMyAdmin/tmp” voor tijdelijke bestanden en schakel toegang voor iedereen in. Als u dit niet doet, zal phpMyAdmin melden dat de toegang tot de tijdelijke map is geweigerd.
cd /var/www/sites/phpMyAdmin/
mkdir tmp
chmod 777 tmp
2. Maak een alias
Omdat phpMyAdmin geen aparte virtuele host is en zich buiten de hoofdmap bevindt, configureren we de alias.
Open het bestand “/etc/apache2/mods-beschikbaar/alias.conf” en voeg deze regel toe:
Alias /pma “/var/www/sites/phpMyAdmin"
in deze sectie:
<IfModule alias_module>
</IfModule>
Laad Apache opnieuw om de wijzigingen toe te passen.
systemctl reload apache2
Alias is ingesteld, dus we hebben hier toegang tot phpMyAdmin “http://[ip_adres_van_server]/pma”.
3. Bereid de database voor
Omdat we het gebruik van de rootgebruiker tijdens de eerste configuratie van MariaDB hebben beperkt, moeten we een nieuw account aanmaken met alle rechten die nodig zijn om toegang te krijgen tot phpMyAdmin.
Om extra functies van phpMyAdmin te kunnen gebruiken, hebben we een servicedatabase en een account nodig om er toegang toe te krijgen.
Laten we de accounts aanmaken
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
Houd er rekening mee dat de databasenaam in het tweede verzoek in back sparks staat “… ON `phpmijnbeheerder`.* AAN 'pma'@'localhost' GEÏDENTIFICEERD DOOR …”,
Als resultaat worden er twee accounts aangemaakt in MariaDB:
- Login: pma, Wachtwoord: Qwe123Volledige toegang, wordt gebruikt om in te loggen op phpMyAdmin
- Login: pmaservice, Wachtwoord: Qwe123Het serviceaccount is vereist om extra functies te laten werken
In de volgende stap zullen we deze details in het configuratiebestand instellen “config.inc.php”.
Dan moeten we de database importeren uit het bestand “phpMyAdmin/sql/tabellen_maken.sql”.
Laten we het importeren met behulp van phpMyAdmin.
Open de link “http://[ip_adres_van_server]/pma”
Inloggen “pma” en wachtwoord “Qwe123”
Ga naar "Importeren", Klik "Selecteer bestand" en selecteer het bestand "sql/create_tables.sql" in de root directory van phpMyAdmin. Daar zou de map op je PC moeten staan “phpMyAdmin” met bestanden. Indien nodig, dearchiveer het.
Klik “Next” om te beginnen met importeren.
4. configuratie
Laten we het configuratiebestand van de sjabloon kopiëren
cd /var/www/sites/phpMyAdmin/
cp config.sample.inc.php config.inc.php
Laten we het configuratiebestand openen “/var/www/sites/phpMyAdmin/config.inc.php” en voer de volgende wijzigingen door:
Stel een willekeurige waarde van 32 tekens in voor het kenmerk “$cfg['blowfish_geheim']”. Gebruik hiervoor een willekeurige wachtwoordgenerator.
Verwijder commentaar van alle regels van de “phpMyAdmin configuratie opslaginstellingen” sectie en stel de login en het wachtwoord van MariaDB's serviceaccount in voor de “controlegebruiker” en “controlepas” attributen dienovereenkomstig. In ons geval is het pmaservice en Qwe123.
Sla de wijzigingen op.
Toegangsgegevens voor phpMyadmin:
- http://[server’s_ip_address]/pma/
- Inloggen: pma
- Wachtwoord: Qwe123
Hoe WordPress op een Linux-server te installeren en configureren
1. WordPress-pakket en plaatsing van bestanden
Ga naar de officiële WP-website “https://ru.wordpress.org/” en download het archief naar uw lokale pc.
Upload het archief naar de server in de “/var/www/sites/” map en dearchiveer deze naar de “wordpress"Map.
Kopieer de inhoud van de “/var/www/sites/wordpress/” root-map van de “/var/www/sites/site1/” website.
Omdat we de bestanden via de console met root-rechten hebben gekopieerd, gaan we de eigenaar van de bestanden wijzigen. “/var/www/sites/” map met de inhoud van “virtueel”Dit is vereist om volledige toegang voor ftp-verbindingen via de client mogelijk te maken.
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. Maak een database voor WordPress
Meld u aan bij phpMyAdmin en klik op "Database maken". Geef een willekeurige databasenaam op, in ons geval "wordpress_db" en klik op de knop "Maken".
Selecteer de nieuwe database in het linkergedeelte en klik “Voorrechten”
Dan klikken “Gebruikersaccount toevoegen”.
Voer de login en het wachtwoord in (wpservice / Qwe123) in het geopende venster, controleer “Verleen alle rechten in de wordpress_db” en klik op “Next”
Klik op de volgende pagina “Alles annuleren” om alle rechten op databaseniveau te resetten en klik “Next”.
3. WordPress-configuratie op een Linux-server
Ga naar de hoofdmap van uw website en kopieer het configuratiebestand van de sjabloon
cd /var/www/sites/site1/
cp wp-config-sample.php wp-config.php
Open de "wp-config.php" bestand en voer de databaseverbindingsparameters in die u in de vorige stap hebt gemaakt. Sla de wijzigingen op.
4. Installeer CMS WordPress
Open de volgende link in de browser “http://[ip_adres_van_server]/wp-admin/install.php”.
Vul alle velden in en klik “WordPress installeren”. Stel een willekeurige gebruikersnaam en wachtwoord in. In ons geval is het binnenvallen en Qwe123 overeenkomstig.
Deze gegevens worden gebruikt om toegang te krijgen tot WordPress.
Nadat u de installatie hebt voltooid, opent u de link “http://[ip_adres_van_server]/wp-login.php”, voer de toegangsgegevens in en log in op WordPress.
U zou een van de WordPress-sjablonen op de hoofdpagina moeten zien.
De configuratie is voltooid.
WordPress-toegangsgegevens:
- http://[server’s_ip_address]/wp-login.php
- Inloggen: wpadmin
- Wachtwoord: Qwe123