Cum se instalează Linux, Apache, MySQL, PHP (LAMP) stiva pe Ubuntu 18.04

posted in: Articles | 0

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

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

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

/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>

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:

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

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:

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

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

Adresa ta de email nu va fi publicată. Câmpurile obligatorii sunt marcate cu *