een vorige versie van deze tutorial is geschreven door Brennan Bearnes.
Inleiding
een “LAMP” – stack is een groep open-source software die gewoonlijk samen wordt geïnstalleerd om een server in staat te stellen dynamische websites en webapps te hosten. Deze term is eigenlijk een acroniem dat het Linux besturingssysteem voorstelt, met de Apache webserver. De site gegevens worden opgeslagen in een MySQL database, en dynamische inhoud wordt verwerkt door PHP.
in deze gids zullen we een LAMP stack installeren op een Ubuntu 18.04 server.,
vereisten
om deze tutorial te voltooien, moet u een Ubuntu 18.04-server hebben met een niet-root sudo
– gebruikersaccount en een basis firewall. Dit kan worden geconfigureerd met behulp van onze eerste Server setup guide Voor Ubuntu 18.04.
Stap 1-Apache installeren en de Firewall bijwerken
De Apache webserver is een van de meest populaire webservers ter wereld. Het is goed gedocumenteerd en is in breed gebruik voor een groot deel van de geschiedenis van het web, waardoor het een grote standaard keuze voor het hosten van een website.,
Installeer Apache met behulp van Ubuntu ’s package manager, apt
:
- sudo apt update
- sudo apt install apache2
aangezien dit een sudo
commando is, worden deze bewerkingen uitgevoerd met root privileges. Het zal u vragen om het wachtwoord van uw gewone gebruiker om uw intenties te verifiëren.
zodra u uw wachtwoord hebt ingevoerd, zal apt
u vertellen welke pakketten het van plan is te installeren en hoeveel extra schijfruimte ze zullen innemen. Druk op Y
en druk op ENTER
om verder te gaan, en de installatie zal doorgaan.,
Pas De Firewall aan om webverkeer toe te staan
next, ervan uitgaande dat u de initiële instructies voor het instellen van de server hebt gevolgd en de UFW-firewall hebt ingeschakeld, zorg er dan voor dat uw firewall HTTP-en HTTPS-verkeer toestaat.,ld laat zien dat het verkeer naar poorten 80
en 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
inkomend HTTP-en HTTPS-verkeer toestaan voor dit profiel:
- sudo ufw allow in "Apache Full"
u kunt meteen controleren of alles volgens plan is verlopen door het openbare IP-adres van uw server in uw webbrowser te bezoeken (zie de opmerking onder de volgende kop om uit te vinden wat uw openbare IP-adres is als u deze informatie nog niet hebt):
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/\/.*$//'
Dit geeft u twee of drie regels terug., Ze zijn allemaal correct adressen, maar uw computer kan alleen in staat zijn om een van hen te gebruiken, dus voel je vrij om elk te proberen.
een alternatieve methode is om het hulpprogramma curl
te gebruiken om contact op te nemen met een externe partij om u te vertellen hoe het uw server ziet. Dit wordt gedaan door een specifieke server te vragen wat uw IP-adres is:
- sudo apt install curl
- curl http://icanhazip.com
ongeacht de methode die u gebruikt om uw IP-adres te krijgen, typ het in de adresbalk van uw webbrowser om de standaard Apache-pagina te bekijken.,
Stap 2-MySQL installeren
nu uw webserver actief is, is het tijd om MySQL te installeren. MySQL is een database management systeem. Kortom, het zal organiseren en bieden toegang tot databases waar uw site informatie kan opslaan.
nogmaals, gebruik apt
om deze software te verwerven en te installeren:
- sudo apt install mysql-server
opmerking: in dit geval hoeft u sudo apt update
niet uit te voeren voor het commando. Dit komt omdat je het onlangs in de bovenstaande commando ‘ s hebt uitgevoerd om Apache te installeren., De pakketindex op uw computer moet al up-to-date zijn.
Dit commando zal u ook een lijst tonen van de pakketten die geà nstalleerd zullen worden, samen met de hoeveelheid schijfruimte die ze zullen innemen. Voer Y
in om door te gaan.
als de installatie is voltooid, voer je een eenvoudig beveiligingsscript uit dat vooraf is geïnstalleerd met MySQL, dat een aantal gevaarlijke standaardwaarden zal verwijderen en de toegang tot je database systeem zal blokkeren. Start het interactieve script door het uitvoeren van:
- sudo mysql_secure_installation
Dit zal vragen of u de VALIDATE PASSWORD PLUGIN
wilt configureren.,
Opmerking: Het inschakelen van deze functie is iets van een oordeelsaanroep. Als dit is ingeschakeld, zullen wachtwoorden die niet overeenkomen met de opgegeven criteria door MySQL worden geweigerd met een fout. Dit zal problemen veroorzaken als u een zwak wachtwoord gebruikt in combinatie met software die automatisch MySQL-gebruikersreferenties configureert, zoals de Ubuntu-pakketten voor phpMyAdmin. Het is veilig om validatie uitgeschakeld, maar je moet altijd gebruik maken van sterke, unieke wachtwoorden voor database referenties.
antwoord Y
voor ja, of iets anders om door te gaan zonder aan te zetten.,
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:
Als u” ja ” antwoordt, wordt u gevraagd een niveau van wachtwoordvalidatie te selecteren. Houd er rekening mee dat als u 2
Voor het sterkste niveau invoert, u fouten zult ontvangen wanneer u probeert een wachtwoord in te stellen dat geen getallen, hoofdletters en kleine letters en speciale tekens bevat, of dat gebaseerd is op woorden uit het gewone woordenboek.
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
ongeacht of u ervoor kiest de VALIDATE PASSWORD PLUGIN
in te stellen, zal uw server u vervolgens vragen een wachtwoord voor de MySQL root gebruiker te kiezen en te bevestigen., Dit is een beheerderaccount in MySQL dat verhoogde privileges heeft. Zie het als vergelijkbaar met het root account voor de server zelf (hoewel degene die je nu configureert een MySQL-specifiek account is). Zorg ervoor dat dit een sterk, uniek wachtwoord is, en laat het niet leeg.
als u wachtwoordvalidatie hebt ingeschakeld, krijgt u de wachtwoordsterkte te zien voor het root-wachtwoord dat u zojuist hebt ingevoerd en uw server zal vragen of u dat wachtwoord wilt wijzigen., Als u tevreden bent met uw huidige wachtwoord, typ dan N
voor “no” op de prompt:
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
voor de rest van de vragen, druk op Y
en druk op de ENTER
sleutel bij elke prompt. Dit zal een aantal anonieme gebruikers en de test database verwijderen, root logins op afstand uitschakelen en deze nieuwe regels laden zodat MySQL onmiddellijk de wijzigingen respecteert die u hebt gemaakt.
merk op dat in Ubuntu-systemen met MySQL 5.,7 (en latere versies), de root MySQL gebruiker is ingesteld op authenticatie met behulp van de auth_socket
plugin standaard in plaats van met een wachtwoord. Dit zorgt in veel gevallen voor een grotere veiligheid en bruikbaarheid, maar het kan ook compliceren dingen wanneer u nodig hebt om een extern programma (bijvoorbeeld phpMyAdmin) om toegang te krijgen tot de gebruiker.
Als u een wachtwoord wilt gebruiken bij het verbinden met MySQL als root, moet u de authenticatiemethode veranderen van auth_socket
naar mysql_native_password
., Om dit te doen, opent u de MySQL prompt vanaf uw terminal:
- sudo mysql
controleer vervolgens welke authenticatie methode elk van uw MySQL gebruikersaccounts gebruikt met het volgende commando:
- SELECT user,authentication_string,plugin,host FROM mysql.user;
In dit voorbeeld kunt u zien dat de root gebruiker in feite authenticeert met behulp van de auth_socket
plugin. Om het root account te configureren voor authenticatie met een wachtwoord, voer je het volgende ALTER USER
commando uit., Zorg dat password
om een sterk wachtwoord van uw keuze:
- ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
voer FLUSH PRIVILEGES
dat vertelt de server te laden van de subsidie tabellen en zet je nieuwe wijzigingen van kracht:
- FLUSH PRIVILEGES;
Controleer de authenticatie methodes die gehanteerd worden door elk van de gebruikers om te bevestigen nogmaals dat de wortel niet meer worden geverifieerd met behulp van de auth_socket
plugin
- SELECT user,authentication_string,plugin,host FROM mysql.user;
Je kunt zien in dit voorbeeld dat de MySQL root gebruiker wordt geverifieerd met behulp van een wachtwoord., Zodra je dit op je eigen server bevestigd hebt, kun je de MySQL shell verlaten:
- exit
Op dit moment is je database systeem nu opgezet en kun je verder gaan met het installeren van PHP, het laatste onderdeel van de LAMP stack.
Stap 3-PHP installeren
PHP is het onderdeel van uw setup dat code verwerkt om dynamische inhoud weer te geven. Het kan scripts draaien, verbinding maken met uw MySQL databases om informatie te krijgen, en de verwerkte inhoud over aan uw webserver weer te geven.
gebruik nogmaals het apt
systeem om PHP te installeren., Daarnaast, voeg deze keer een aantal helper pakketten toe zodat PHP code onder de Apache server kan draaien en met je MySQL database kan praten:
- sudo apt install php libapache2-mod-php php-mysql
Dit zou PHP zonder problemen moeten installeren. We zullen dit zo testen.
in de meeste gevallen zult u de manier willen wijzigen waarop Apache bestanden serveert wanneer een map wordt aangevraagd. Momenteel zal Apache, als een gebruiker een map van de server aanvraagt, eerst zoeken naar een bestand genaamd index.html
., We willen de webserver vertellen de voorkeur te geven aan PHP-bestanden boven anderen, dus laat Apache eerst zoeken naar een index.php
bestand.
Typ dit commando om het dir.conf
bestand te openen in een teksteditor met root privileges:
- sudo nano /etc/apache2/mods-enabled/dir.conf
het ziet er als volgt uit:
<IfModule mod_dir.c> DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm</IfModule>
verplaats het PHP-indexbestand (hierboven gemarkeerd) naar de eerste positie na de DirectoryIndex
specificatie, als volgt:
<IfModule mod_dir.c> DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm</IfModule>
sla het bestand op en sluit het door op CTRL+X
te drukken. Bevestig de opslag door Y
te typen en druk vervolgens op ENTER
om de opslaglocatie van het bestand te controleren.
herstart hierna de Apache webserver om uw wijzigingen te herkennen., Doe dit door het volgende te typen:
- sudo systemctl restart apache2
U kunt ook de status van de apache2
service controleren met systemctl
:
- sudo systemctl status apache2
druk op Q
om deze statusuitvoer af te sluiten.
om de functionaliteit van PHP te verbeteren, heb je de optie om een aantal extra modules te installeren., Om de beschikbare opties voor PHP modules en bibliotheken te zien, pipe the results of apt search
into less
, a pager which let you scroll through the output of other commands:
- apt search php- | less
Gebruik de pijltjestoetsen om omhoog en omlaag te scrollen, en druk op Q
afsluiten.
de resultaten zijn allemaal optionele componenten die u kunt installeren. Het geeft u een korte beschrijving voor elke module:
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 meer te weten te komen over wat elke module doet, kunt u zoeken op het internet voor meer informatie over hen., Als alternatief, kijk naar de lange beschrijving van het pakket door te typen:
- apt show package_name
Er zal veel uitvoer zijn, met een veld genaamd Description
die een langere uitleg van de functionaliteit die de module biedt zal hebben.,
bijvoorbeeld, om erachter te komen wat de php-cli
module doet, kunt u dit typen:
- apt show php-cli
samen met een grote hoeveelheid andere informatie, zult u iets vinden dat er als volgt uitziet:
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).…
Als u na onderzoek besluit dat u installeer een pakket, je kunt dit doen door het apt install
commando te gebruiken, zoals je deed voor de andere software.,
Als u hebt besloten dat php-cli
iets is dat u nodig hebt, kunt u typen:
- sudo apt install php-cli
Als u meer dan één module wilt installeren, kunt u dat doen door elke module, gescheiden door een spatie, op te sommen volgens het commando apt install
als volgt:
- sudo apt install package1 package2 ...
Op dit moment is uw LAMP stack geïnstalleerd en geconfigureerd. Voordat je iets anders doet, raden we je aan een Apache virtual host in te stellen waar je de configuratiegegevens van je server kunt opslaan.,
Stap 4-virtuele Hosts instellen (aanbevolen)
wanneer u de Apache-webserver gebruikt, kunt u virtuele hosts gebruiken (vergelijkbaar met serverblokken in Nginx) om configuratiedetails te kapselen en meer dan één domein van een enkele server te hosten. We zullen een domein opzetten genaamd your_domain, maar je moet dit vervangen door je eigen domeinnaam. Zie onze inleiding tot DigitalOcean DNS voor meer informatie over het instellen van een domeinnaam met DigitalOcean.
Apache op Ubuntu 18.,04 heeft een serverblok dat standaard is ingeschakeld en dat is geconfigureerd om documenten van de /var/www/html
map aan te bieden. Hoewel dit goed werkt voor een enkele site, het kan Log worden als u het hosten van meerdere sites. In plaats van het wijzigen van /var/www/html
, laten we een mapstructuur maken binnen /var/www
voor onze your_domain-site, waarbij /var/www/html
de standaardmap is die gebruikt moet worden als een client-verzoek niet overeenkomt met andere sites.,uw_domein als volgt:
sudo mkdir /var/www/your_domain
Vervolgens toewijzen eigendom van de directory met de $USER
omgevings variabele:
- sudo chown -R $USER:$USER /var/www/your_domain
De machtigingen van uw web wortels moet worden, juist als je nog niet gewijzigd unmask
waarde, maar je kan zeker door in te typen:
- sudo chmod -R 755 /var/www/your_domain
maak een monster index.html
pagina nano
of uw favoriete editor:
- nano /var/www/your_domain/index.html
In, voeg het volgende voorbeeld HTML-code:
<html> <head> <title>Welcome to Your_domain!</title> </head> <body> <h1>Success! The your_domain server block is working!</h1> </body></html>
sla het bestand op en sluit het als u klaar bent.
om Apache deze inhoud te laten leveren, is het noodzakelijk om een virtueel hostbestand aan te maken met de juiste richtlijnen. In plaats van het standaard configuratiebestand te wijzigen op /etc/apache2/sites-available/000-default.conf
direct, laten we een nieuwe maken op /etc/apache2/sites-available/your_domain.conf
:
- sudo nano /etc/apache2/sites-available/your_domain.conf
plakken in het volgende configuratieblok, dat vergelijkbaar is met de standaard, maar bijgewerkt voor onze nieuwe map en domeinnaam:
merk op dat we de DocumentRoot
hebben bijgewerkt naar onze nieuwe directory en ServerAdmin
naar een e-mail die de beheerder van de site van your_domain kan openen. We hebben ook twee richtlijnen toegevoegd: ServerName
, die het basisdomein bepaalt dat moet overeenkomen met deze virtuele host definitie, en ServerAlias
, die andere namen definieert die moeten overeenkomen alsof ze de basisnaam zijn.
sla het bestand op en sluit het als u klaar bent.,
schakel het bestand in met de a2ensite
tool:
- sudo a2ensite your_domain.conf
Schakel de standaard site uit gedefinieerd in 000-default.conf
:
- sudo a2dissite 000-default.conf
p>
- sudo apache2ctl configtest
u zou de volgende uitvoer moeten zien:
OutputSyntax OK
herstart Apache om uw wijzigingen door te voeren:
- sudo systemctl restart apache2
Apache zou nu uw domeinnaam moeten dienen., U kunt dit testen door te navigeren naar , waar u iets als dit zou moeten zien:
hiermee is uw virtuele host volledig ingesteld. Voordat u nog meer wijzigingen aanbrengt of een applicatie implementeert, zou het echter nuttig zijn om uw PHP-configuratie proactief uit te testen voor het geval er problemen zijn die moeten worden aangepakt.
Stap 5-PHP Processing testen op uw webserver
om te testen of uw systeem correct is geconfigureerd voor PHP, maakt u een zeer basic PHP script genaamd info.php
., Om Apache om dit bestand te vinden en het correct te dienen, moet het worden opgeslagen in uw web root directory.
Maak het bestand aan op de web root die u in de vorige stap hebt gemaakt door het volgende uit te voeren:
- sudo nano /var/www/your_domain/info.php
Dit opent een leeg bestand. Voeg de volgende tekst toe, die een geldige PHP-code is, in het bestand:
<?phpphpinfo();?>
sla het bestand op en sluit het.
nu kunt u testen of uw webserver in staat is om de inhoud die door dit PHP-script wordt gegenereerd correct weer te geven. Om dit uit te proberen, bezoek deze pagina in uw webbrowser., Je hebt het publieke IP-adres van je server weer nodig.
het adres dat u wilt bezoeken is:
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
u kunt deze pagina altijd opnieuw maken als u later opnieuw toegang wilt krijgen tot de informatie.
conclusie
nu je een LAMP stack hebt geïnstalleerd, heb je veel keuzes voor wat je nu moet doen. Kortom, je hebt een platform dat u zal toestaan om de meeste soorten websites en web software te installeren op uw server geà nstalleerd.
als een onmiddellijke volgende stap, moet u ervoor zorgen dat verbindingen met uw webserver beveiligd zijn, door ze te bedienen via HTTPS., De makkelijkste optie hier is om Let ‘ s Encrypt te gebruiken om uw site te beveiligen met een gratis TLS/SSL certificaat.
enkele andere populaire opties zijn:
- installeer WordPress het meest populaire content management systeem op het internet.
- stel PHPMyAdmin in om uw MySQL databases te helpen beheren vanuit een webbrowser.
- leer hoe SFTP te gebruiken om bestanden van en naar uw server over te brengen.
Geef een reactie