o versiune anterioară a acestui tutorial a fost scris de Brennan Bearnes.
Introducere
o stivă „LAMP” este un grup de software open-source care este de obicei instalat împreună pentru a permite unui server să găzduiască site-uri web dinamice și aplicații web. Acest termen este de fapt un acronim care reprezintă Sistemul de operare Linux, cu serverul web Apache. Datele site-ului sunt stocate într-o bază de date MySQL, iar conținutul dinamic este procesat de PHP.în acest ghid, vom instala o stivă LAMP pe un server Ubuntu 18.04.,
cerințe preliminare
pentru a finaliza acest tutorial, va trebui să aveți un server Ubuntu 18.04 cu un cont de utilizator non-rootsudo
și un firewall de bază. Acest lucru poate fi configurat folosind ghidul nostru inițial de configurare a serverului Pentru Ubuntu 18.04.
Pasul 1-Instalarea Apache și actualizarea Firewall-ului
serverul web Apache este printre cele mai populare servere web din lume. Este bine documentat și a fost utilizat pe scară largă pentru o mare parte din istoria web-ului, ceea ce îl face o alegere implicită excelentă pentru găzduirea unui site web.,
Instalare Apache folosind Ubuntu managerul de pachete, apt
:
- sudo apt update
- sudo apt install apache2
Deoarece acesta este un sudo
comanda, aceste operațiuni sunt executate cu privilegii de root. Acesta vă va cere parola utilizatorului obișnuit pentru a vă verifica intențiile.după ce ai introdus parola, apt
îți va spune ce pachete intenționează să instaleze și cât spațiu suplimentar pe disc vor ocupa. Apăsați Y
și a lovit ENTER
pentru a continua, iar instalarea va continua.,
ajustați Firewall-ul pentru a permite traficul web
apoi, presupunând că ați urmat instrucțiunile inițiale de configurare a serverului și ați activat firewall-ul UFW, asigurați-vă că firewall-ul dvs. permite traficul HTTP și HTTPS.,ld arată că acesta permite traficul în porturile 80
și 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
Permite primite HTTP și HTTPS trafic pentru acest profil:
- sudo ufw allow in "Apache Full"
puteți face o verificare la fața locului imediat pentru a verifica dacă totul a mers conform planului de vizita server public adresa IP în browser-ul web (a se vedea nota sub titlul următor pentru a afla ce adresa IP publică este dacă nu aveți aceste informații deja):
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/\/.*$//'
Acest lucru vă va oferi două sau trei linii înapoi., Toate sunt adrese corecte, dar este posibil ca computerul dvs. să poată utiliza doar una dintre ele, așa că nu ezitați să încercați fiecare.
o metodă alternativă este să folosiți utilitarul curl
pentru a contacta o parte din afară pentru a vă spune cum vă vede serverul. IP:
- sudo apt install curl
- curl http://icanhazip.com
indiferent de metoda pe care o utilizați pentru a obține adresa IP, tastați-o în bara de adrese a browserului dvs. web pentru a vizualiza pagina implicită Apache.,
Pasul 2-Instalarea MySQL
acum că aveți serverul web în funcțiune, este timpul să instalați MySQL. MySQL este un sistem de gestionare a bazelor de date. Practic, va organiza și va oferi acces la bazele de date unde site-ul dvs. poate stoca informații.
din Nou, utilizați apt
de a achiziționa și instala acest software:
- sudo apt install mysql-server
Notă: În acest caz, nu aveți pentru a rula sudo apt update
înainte de a comanda. Acest lucru se datorează faptului că l-ați rulat recent în comenzile de mai sus pentru a instala Apache., Indexul pachetelor de pe computer ar trebui să fie deja actualizat.această comandă, de asemenea, vă va arăta o listă a pachetelor care vor fi instalate, împreună cu cantitatea de spațiu pe disc pe care o vor ocupa. Introduceți Y
pentru a continua.
când instalarea este completă, executați un script de securitate simplu care vine preinstalat cu MySQL, care va elimina unele valori implicite periculoase și va bloca accesul la sistemul dvs. de baze de date. Începe script interactiv de funcționare:
- sudo mysql_secure_installation
Acest lucru vă va întreba dacă doriți să configurați VALIDATE PASSWORD PLUGIN
.,
notă: activarea acestei funcții este un fel de apel de judecată. Dacă este activată, parolele care nu corespund criteriilor specificate vor fi respinse de MySQL cu o eroare. Acest lucru va cauza probleme dacă utilizați o parolă slabă împreună cu software-ul care configurează automat acreditările utilizatorului MySQL, cum ar fi pachetele Ubuntu pentru phpMyAdmin. Este sigur să lăsați validarea dezactivată, dar ar trebui să utilizați întotdeauna parole puternice și unice pentru acreditările bazei de date.
răspuns Y
pentru DA, sau orice altceva pentru a continua fără a permite.,
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:
Dacă răspundeți la „da”, vi se va cere să selectați un nivel de validare a parolei. Păstrați în minte că, dacă introduceți 2
pentru cel mai puternic nivel, veți primi erori atunci când încearcă să setați nicio parolă, care nu conține numere, litere mari și mici, și caractere speciale, sau care se bazează pe frecvente cuvinte din dicționar.
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
Indiferent dacă ai ales să înființeze VALIDATE PASSWORD PLUGIN
, serverul va cere să selectați și confirmați parola pentru MySQL root., Acesta este un cont administrativ în MySQL care are privilegii sporite. Gândiți-vă că este similar cu contul rădăcină pentru serverul în sine (deși cel pe care îl configurați acum este un cont specific MySQL). Asigurați-vă că aceasta este o parolă puternică, unică și nu o lăsați necompletată.dacă ați activat validarea parolei, vi se va afișa puterea parolei pentru parola de root pe care tocmai ați introdus-o, iar serverul vă va întreba dacă doriți să schimbați parola., Dacă sunteți mulțumit cu parola curentă, introduceți N
pentru „nu” la 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
Pentru restul de întrebări, apăsați Y
și a lovit ENTER
cheie la fiecare solicitare. Aceasta va elimina unii utilizatori anonimi și baza de date de testare, va dezactiva autentificările root la distanță și va încărca aceste noi reguli, astfel încât MySQL să respecte imediat modificările pe care le-ați făcut.
rețineți că în sistemele Ubuntu care rulează MySQL 5.,7 (și versiuni ulterioare), utilizatorul rădăcină MySQL este setat să se autentifice folosind pluginul auth_socket
în mod implicit, mai degrabă decât cu o parolă. Acest lucru permite o mai mare securitate și utilizare în multe cazuri, dar poate complica și lucrurile atunci când trebuie să permiteți unui program extern (de exemplu, phpMyAdmin) să acceseze utilizatorul.
Dacă preferați să utilizați o parolă atunci când vă conectați la MySQL ca root, va trebui să își schimbe metoda de autentificare de la auth_socket
și mysql_native_password
., Pentru a face acest lucru, deschide promptul MySQL de pe terminalul dumneavoastră:
- sudo mysql
Apoi, a verifica ce metoda de autentificare fiecare utilizator MySQL conturile utilizate cu următoarea comandă:
- SELECT user,authentication_string,plugin,host FROM mysql.user;
În acest exemplu, puteți vedea că utilizatorul root are de fapt autentifica folosind auth_socket
plugin. Pentru a configura contul rădăcină pentru a se autentifica cu o parolă, executați următoarea comandă ALTER USER
., Fi sigur de a schimba password
să o parolă de alegerea ta:
- ALTER USER 'root'@'localhost' IDENTIFIED WITH mysql_native_password BY 'password';
Apoi, a alerga FLUSH PRIVILEGES
care spune serverului pentru a reîncărca tabele de grant și pune noile modificări în vigoare:
- FLUSH PRIVILEGES;
Verificați metode de autentificare folosite de fiecare dintre utilizatori din nou pentru a confirma că rădăcina nu mai autentifică folosind auth_socket
plugin:
- SELECT user,authentication_string,plugin,host FROM mysql.user;
puteți vedea în acest exemplu de ieșire ca root MySQL user acum autentifică utilizând o parolă., Odată ce ați confirma acest lucru pe propriul server, puteți ieși din MySQL shell:
- exit
În acest moment, sistemul de baze de date este acum configurat și puteți trece la instalarea PHP, componenta finală a LĂMPII stivă.
Pasul 3-instalarea PHP
PHP este componenta de configurare care va procesa codul pentru a afișa conținut dinamic. Poate rula scripturi, se poate conecta la bazele de date MySQL pentru a obține informații și poate preda conținutul procesat serverului dvs. web pentru a fi afișat.
încă o dată, utilizați sistemul apt
pentru a instala PHP., În plus, include un helper pachete de această dată, astfel încât codul PHP poate rula sub Apache server și vorbesc cu baza de date MySQL:
- sudo apt install php libapache2-mod-php php-mysql
Acest lucru ar trebui să instalați PHP fara probleme. Vom testa acest lucru într-un moment.în cele mai multe cazuri, veți dori să modificați modul în care Apache servește fișiere atunci când este solicitat un director. În prezent, dacă un utilizator solicită un director de la server, Apache va căuta mai întâi un fișier numit index.html
., Vrem să spunem serverului web să prefere fișierele PHP față de altele, așa că faceți Apache să caute mai întâi un fișier index.php
.
Pentru a face acest lucru, tastați această comandă pentru a deschide dir.conf
fișier într-un editor de text cu privilegii de root:
- sudo nano /etc/apache2/mods-enabled/dir.conf
Acesta va arata astfel:
<IfModule mod_dir.c> DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm</IfModule>
Muta PHP index file (evidențiate mai sus) la prima poziție după DirectoryIndex
caietul de sarcini, astfel:
<IfModule mod_dir.c> DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm</IfModule>
Când ați terminat, salvați și închideți fișierul prin apăsarea CTRL+X
. Confirmați salvarea tastând Y
și apoi apăsați ENTER
pentru a verifica locația de salvare a fișierului.după aceasta, reporniți serverul web Apache pentru ca modificările dvs. să fie recunoscute., Face acest lucru prin tastarea asta:
- sudo systemctl restart apache2
de asemenea, puteți verifica cu privire la statutul de apache2
service folosind systemctl
:
- sudo systemctl status apache2
Apăsați Q
pentru a ieși din această stare de ieșire.pentru a îmbunătăți funcționalitatea PHP, aveți opțiunea de a instala unele module suplimentare., Pentru a vedea opțiunile disponibile pentru module PHP și biblioteci, conducta de rezultatele apt search
în less
, un pager care vă permite să defilați prin ieșirea de alte comenzi:
- apt search php- | less
Utilizați tastele săgeată pentru a defila în sus și în jos, și apăsați Q
să renunțe.rezultatele sunt toate componentele opționale pe care le puteți instala. Acesta vă va oferi o scurtă descriere pentru fiecare:
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…:
pentru a afla mai multe despre ceea ce face fiecare modul, puteți căuta pe internet pentru mai multe informații despre ele., Alternativ, uita-te la descrierea lungă a pachetului de tastare:
- apt show package_name
Acolo va fi o mulțime de ieșire, cu un câmp numit Description
care va avea o explicație mai mult de funcționalitatea pe care modulul oferă.,
De exemplu, pentru a afla ce php-cli
modulul face, ai putea scrie asta:
- apt show php-cli
Împreună cu o cantitate mare de alte informații, veți găsi ceva care arata ca acest lucru:
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).…
Dacă, după cercetarea, doriți să instalați un pachet, puteți face acest lucru prin utilizarea apt install
comanda ca tine au facut pentru alte software-uri.,
Dacă te-ai decis că php-cli
este ceva de care ai nevoie, ai putea tastați:
- sudo apt install php-cli
Dacă doriți să instalați mai mult de un modul, puteți face acest lucru prin listarea fiecare, separate printr-un spațiu, următoarele apt install
comanda, astfel:
- sudo apt install package1 package2 ...
În acest punct, LAMPA stiva este instalat și configurat. Înainte de a face orice altceva, vă recomandăm să configurați o gazdă virtuală Apache unde puteți stoca detaliile de configurare ale serverului.,
Pasul 4-Configurarea gazdelor virtuale (recomandat)
când utilizați serverul web Apache, puteți utiliza gazde virtuale (similar cu blocurile de servere din Nginx) pentru a încapsula detaliile configurației și a găzdui mai multe domenii de la un singur server. Vom configura un domeniu numit your_domain, dar ar trebui să înlocuiți acest lucru cu propriul nume de domeniu. Pentru a afla mai multe despre configurarea unui nume de domeniu cu DigitalOcean, consultați Introducerea noastră în DigitalOcean DNS.
Apache pe Ubuntu 18.,04 are un bloc de server activat în mod implicit, care este configurat pentru a servi documente din /var/www/html
director. În timp ce acest lucru funcționează bine pentru un singur site, acesta poate deveni greoi dacă găzduiți mai multe site-uri. În loc de a modifica /var/www/html
, să creeze o structură de directoare din /var/www
pentru your_domain site-ul, lăsând /var/www/html
în loc ca director implicit pentru a fi servit, dacă un client cerere nu se potrivește cu orice alte site-uri.,your_domain după cum urmează:
sudo mkdir /var/www/your_domain
apoi, atribuiți dreptul de proprietate din directorul cu $USER
variabila de mediu:
- sudo chown -R $USER:$USER /var/www/your_domain
permisiunile dvs. de web rădăcini ar trebui să fie corect dacă nu ați modificat unmask
valoare, dar puteți să vă asigurați prin tastarea:
- sudo chmod -R 755 /var/www/your_domain
apoi, creați un eșantion index.html
pagina folosind nano
sau editorul preferat:
- nano /var/www/your_domain/index.html
în Interior, se adaugă următorul exemplu de cod HTML:
<html> <head> <title>Welcome to Your_domain!</title> </head> <body> <h1>Success! The your_domain server block is working!</h1> </body></html>
Salvați și închideți fișierul când ați terminat.pentru ca Apache să servească acest conținut, este necesar să creați un fișier gazdă virtuală cu directivele corecte. În loc de a modifica fișierul de configurare implicit situat la /etc/apache2/sites-available/000-default.conf
direct, hai să facem un nou unul la /etc/apache2/sites-available/your_domain.conf
:
- sudo nano /etc/apache2/sites-available/your_domain.conf
Inserați codul în următoarele bloc de configurare, care este similar cu cel default, dar actualizat pentru noul nostru director și numele de domeniu:
Observați că am actualizat DocumentRoot
la noul nostru director și ServerAdmin
la un e-mail că your_domain administratorul site-ului pot accesa. Am adăugat, de asemenea, două directive: ServerName
, care stabilește baza domeniu care ar trebui să se potrivească pentru această gazdă virtuală definiție, și ServerAlias
, care definește numele suplimentare, care ar trebui să se potrivească ca și cum ar fi nume de bază. Salvați și închideți fișierul când ați terminat.,
Să permită fișier cu a2ensite
instrument:
- sudo a2ensite your_domain.conf
Dezactivați-ul implicit definit în 000-default.conf
:
- sudo a2dissite 000-default.conf
Apoi, sa testam, pentru erorile de configurare:
- sudo apache2ctl configtest
ar trebui să vedeți următoarele ieșire:
OutputSyntax OK
Restart Apache să pună în aplicare modificări:
- sudo systemctl restart apache2
Apache ar trebui să fie acum de servire numele dvs. de domeniu., Puteți testa acest lucru prin navigarea la , unde ar trebui să vedeți ceva de genul asta:
Cu asta, virtual host este complet configurat. Totuși, înainte de a face alte modificări sau de a implementa o aplicație, ar fi util să testați proactiv configurația PHP în cazul în care există probleme care ar trebui abordate.
Pasul 5-testarea procesării PHP pe serverul dvs. web
pentru a testa dacă sistemul dvs. este configurat corect pentru PHP, creați un script PHP foarte de bază numit info.php
., Pentru ca Apache să găsească acest fișier și să îl servească corect, acesta trebuie salvat în directorul rădăcină web.
creați fișierul la rădăcina web pe care ați creat-o în pasul anterior rulând:
- sudo nano /var/www/your_domain/info.php
Acest lucru va deschide un fișier gol. Adăugați următorul text, care este un cod PHP valid, în interiorul fișierului:
<?phpphpinfo();?>
când ați terminat, salvați și închideți fișierul.acum Puteți testa dacă serverul dvs. web este capabil să afișeze corect conținutul generat de acest script PHP. Pentru a încerca acest lucru, vizitați această pagină în browserul dvs. web., Veți avea nevoie din nou de adresa IP publică a serverului dvs.
adresa pe care veți dori să o vizitați este:
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
puteți oricând să recreați această pagină dacă trebuie să accesați din nou informațiile mai târziu.
concluzie
acum, că aveți o stivă lampă instalat, aveți mai multe opțiuni pentru ce să facă în continuare. Practic, ați instalat o platformă care vă va permite să instalați majoritatea tipurilor de site-uri web și software web pe serverul dvs.ca un pas imediat următor, trebuie să vă asigurați că conexiunile la serverul dvs. web sunt securizate, servindu-le prin HTTPS., Cea mai ușoară opțiune aici este să folosiți Let ‘ s Encrypt pentru a vă asigura site-ul cu un certificat TLS/SSL gratuit.alte opțiuni populare sunt:
- instalează WordPress cel mai popular sistem de gestionare a conținutului de pe internet.
- configurați PHPMyAdmin pentru a vă ajuta să gestionați bazele de date MySQL din browserul web.
- Aflați cum să utilizați SFTP pentru a transfera fișiere către și de pe serverul dvs.
Lasă un răspuns