Cum sa instalam Linux, Apache, MySQL, PHP (LAMP) pe Ubuntu 16.04

Blog: OS
"LAMP" este un grup de software open source care de obicei sunt instalate impreuna pe un server pentru a putea permite acestuia gazduirea de site-uri dinamice si aplicatii web. Acesta este defapt un acronim care reprezinta sistemul de operare Linux, cu serverul web Apache. Datele de pe site sunt stocate intr-o baza de date MySQL, iar continutul dinamic este procesat de PHP.

Introducere

"LAMP" este un grup de software open source care de obicei sunt instalate impreuna pe un server pentru a putea permite acestuia gazduirea de site-uri dinamice si aplicatii web. Acesta este defapt un acronim care reprezinta sistemul de operare Linux, cu serverul web Apache. Datele de pe site sunt stocate intr-o baza de date MySQL, iar continutul dinamic este procesat de PHP.

In acest ghid vom instala LAMP pe Ubuntu 16.04. Ubuntu va rezolva prima cerinta: un sistem de operare Linux.

Conditie prealabila

Inainte de a incepe cu acest ghid, ar trebui sa aveti setat pe server un cont de utilizator non-root cu drepturi sudo. Puteti invata cum sa faceti acest lucru  parcurgand pasii 1-4 din ghidul setarea initiala a serverului pentru Ubuntu 16.04.

Pasul 1: Instalare Apache si Permisiune Acces in Firewall

Server-ul web Apache este printre cele mai populare servere web din lume. Este bine cunoscut, si a fost utilizat la scara larga in istoria web, lucru care il face cea mai buna alegere pentru gazduirea unui site web.

Putem instala usor Apache folosind managerul de pachete Ubuntu, apt. Managerul de pachete ne permite sa instalam usor software-ul dintr-o arhiva detinuta de Ubuntu.

In acest scop, putem incepe tastand aceste comenzi:

sudo apt-get update
sudo apt-get install apache2

Din moment ce folosim comanda sudo, aceste operatii se vor executa cu drepturi root. Vi se va cere parola dumneavoastra de utilizator normal pentru a va verifica intentiile.

Odata introdusa parola, apt va va spune ce pachete va instala si de cat extra spatiu aveti nevoie. Apasati Y si Enter pentru a continua si instalarea va incepe.

In continuare, presupunand ca ati parcurs instructiunile initiale de activare a firewall-ui UFW, asigurativa ca firewall-ul permite trafic HTTP si HTTPS. Va puteti asigura ca UFW are un profil de aplicatie pentru Apache ca acesta:

sudo ufw app list
Output:
Available applications:
  Apache
  Apache Full
  Apache Secure
  OpenSSH

Daca va uitati la profilul Apache Full, ar trebui sa arate ca permite trafic porturilor 80 si 443:

sudo ufw app info "Apache Full"

Output:
Profile: Apache Full
Title: Web Server (HTTP,HTTPS)
Description: Apache v2 is the next generation of the omnipresent Apache web
server.

Ports:
  80,443/tcp

Permite traficul de intrare pentru acest profil:

sudo ufw allow in "Apache Full"

Puteti face o verificare la fata locului pentru a vedea daca totul a decurs conform planului, vizitand adresa IP publica a serverului dumeavoastra in browser-ul Web (a se vedea nota de la punctul urmator pentru a afla care este adresa IP publica daca nu aveti acesta informatie deja):

http://your_server_IP_address

O sa vedeti pagina web Apache Ubuntu 16.04, care este acolo doar pentru informare si testare. Ar trebui sa arate cam asa:

Daca vedeti aceasta pagina inseamna ca server-ul dumneavoastra web este instalat corect si accesibil prin intermediul firewall-ului.

Cum sa Gasiti Adresa IP Publica a Server-ului

Daca nu va cunoasteti adresa IP publica a server-ului, sunt o multime de modalitati pentru a o afla. De obicei, aceasta este adresa pe care o utilizati pentru a va conecta la serverul dumneavoastra prin SSH.

Din linia de comanda, o puteti afla in cateva moduri. Primul mod de a va afla adresa este folosind metoda iproute2 tastand urmatoarele:

ip addr show eth0 | grep inet | awk '{ print $2; }' | sed 's/\/.*$//'

Aceasta comanda afisaza toate adresele IP de pe server. Toate sunt adrese corecte, dar computerul dumneavoastra va putea folosi doar una dintre ele, asa ca le puteti incerca pe oricare.

O metoda alternativa este sa folositi utilitarul curl pentru a va conecta din exterior si a va spune cum vede serverul dumeavoastra. Puteti face aceasta intreband server-ul care este adresa IP:

sudo apt-get install curl
curl  http://domeniu.tld

Indiferent de metoda pe care o folositi sa va aflati adresa IP, il puteti introduce in bara de adrese a browser-ului dumneavoastra pentru a ajunge la server.

Pasul 2: Instalarea MySQL

Acum ca avem server-ul web functional, este timpul sa instalam MySQL. MySQL este un sistem de management al bazei de date. Practic, organizeaza si ofera acces la baza de date in care site-ul dumneavoastra poate stoca informatii.

Din nou, putem folosi apt pentru a descarca si instala software-ul. De aceasta data, vom instala si alte pachete de "ajutor" care ne vor ajuta in obtinerea componentelor si in comunicarea dintre ele:

sudo apt-get install mysql-server

Observatie: in acest caz, nu mai este necesar sa tastam sudo apt-get update in fata comenzii . Aceasta pentru ca recent am adaugat-o in comanda de mai sus cand am instalat Apache. Indexul pachetului de pe computer ar trebui sa fie deja actualizat.

Din nou, va fi afisata o lista cu pachetele ce vor fi instalate, impreuna cu cantitatea de spatiu pe disc pe care o vor prelua. Introduceti Y pentru a continua.

In timpul instalarii, server-ul dumneavoastra va va cere sa selectati si sa confirmati o parola pentru utilizatorul "root" MySQL. Acesta este un cont administrativ in MySQL si este similar cu contul root al server-ului in sine (cel pe care il configurati acum este un cont specific MySQL).

Cand instalarea este completa, o sa rulam un simplu script de securitate care va inlatura unele valori implicite periculoase si care va inchide sistemul bazei de date pentru scurt timp. Porniti script-ul interactiv ruland:

sudo mysql_secure_installation

Vi se va cere sa introduceti parola pe care ati setat-o pentru contul root MySQL. in continuare, veti fi intrebat daca doriti sa configurati VALIDATE PASSWORD PLUGIN.

Atentie: Activand aceasta caracteristica este o decizie importanta. Daca este activata, parolele care nu se potrivesc cu criteriile specificate vor fi respinse de catre MySQL cu o eroare. Acest lucru va cauza probleme daca utilizati o parola slaba in combinatie cu software-ul care configureaza automat acreditarile utilizatorului MySQL, cum ar fi pachetele de Ubuntu pentru phpMyAdmin. Este sigur sa lasati validarea dezactivata, dar ar trebui sa folositi intotdeauna parole puternice, unice pentru acreditarile bazei de date.

Raspundeti y pentru yes, sau orice altceva pentru a continua fara activare.

VALIDATE PASSWORD PLUGIN can be used to test passwords
and improve security. It checks the strength of password
and allows the users to set only those passwords which are
secure enough. Would you like to setup VALIDATE PASSWORD plugin?

Press y|Y for Yes, any other key for No:

O sa vi se ceara un nivel pentru validarea parolei. Retineti, daca introduceti 2, pentru cel mai puternic nivel, o sa primiti erori cand veti dori sa setati orice parola care nu contine numere, litere mari si litere mici, caractere speciale, care este bazat pe cuvinte comune din dictionar.

There are three levels of password validation policy:

LOW    Length >= 8
MEDIUM Length >= 8, numeric, mixed case, and special characters
STRONG Length >= 8, numeric, mixed case, special characters and dictionary                  file

Please enter 0 = LOW, 1 = MEDIUM and 2 = STRONG: 1

Daca activati validarea parolei, vi se va arata puterea parolei root existente si veti fi intrebati daca doriti sa schimbati acea parola. Daca sunteti multumit de actuala parola, introduceti n pentru "no":

Using existing password for root.

Estimated strength of the password: 100
Change the password for root ? ((Press y|Y for Yes, any other key for No) : n

Pentru restul intrebarilor, ar trebui sa apasati Y si sa apasati Enter la fiecare semn. Acesta va inlatura utilizatorii anonimi si bazele de date test, va dezactiva datele de conectare la distanta si va incarca aceste noi reguli pentru ca MySQL sa respecte imediat modificarile pe ca le-am facut.

In acest moment, sistemul dumneavoastra de baze de date este configurat si putem merge mai departe.

Pasul 3: Instalarea PHP

PHP este componenta noastra de instalare care va procesa codul pentru a afisa continutul dinamic. Poate rula scripturi, se poate conecta la bazele noastre de date MySQL pentru a obtine informatii, si preda continutul prelucrat server-ului web pentru a-l afisa.

Inca odata ne vom folosi de sistemul apt pentru a instala componentele noastre. De asemenea, vom include si pachetele ajutatoare, pentru ca PHP sa ruleze sub server-ul Apache si sa comunice cu baza de date MySQL:

sudo apt-get install php libapache2-mod-php php-mcrypt php-mysql

Acesta poate intala PHP fara nici o problema. il vom testa in cateva momente.

In majoritatea cazurilor, vom dori sa modificam calea fisierelor server-lor Apache cand este cerut un director. in mod curent, daca un utilizator cere un director de pe server, Apache se va uita dupa un fisier numit index.html. Vrem sa ii spunem server-ului nostru web sa prefere fisierele PHP, asa ca vom face ca Apache sa caute fisiere index.php mai intai.

Pentru a face acest lucru, tastati comanda dir.conf pentru a deschide fisierul intr-un editor text cu drepturi root:

sudo nano /etc/apache2/mods-enabled/dir.conf

Va arata in felul urmator:

/etc/apache2/mods-enabled/dir.conf
<IfModule mod_dir.c>
    DirectoryIndex index.html index.cgi index.pl index.php index.xhtml index.htm
</IfModule>

Vrem sa mutam fisierul selectat index PHP in prima pozitie dupa specificatia DirectoryIndex, in felul urmator:

/etc/apache2/mods-enabled/dir.conf
<IfModule mod_dir.c>
    DirectoryIndex index.php index.html index.cgi index.pl index.xhtml index.htm
</IfModule>

Cand ati terminat, salvati si inchideti fisierul apasand Ctrl-X. Va trebui sa confirmati salvarea tastand Y dupa care sa apasati tasta Enter pentru a confirma locatia salvarii fisierului.

Dupa aceasta, va trebui sa restartam server-ul web Apache pentru ca modificarile noastre sa fie recunoscute. Vom face aceasta tastand:

sudo systemctl restart apache2

De asemenea, putem verifica starea serviciului pe apache2 folosind systemctl:

sudo systemctl status apache2

Sample Output:
● apache2.service - LSB: Apache2 web server
   Loaded: loaded (/etc/init.d/apache2; bad; vendor preset: enabled)
  Drop-In: /lib/systemd/system/apache2.service.d
           └─apache2-systemd.conf
   Active: active (running) since Wed 2016-04-13 14:28:43 EDT; 45s ago
     Docs: man:systemd-sysv-generator(8)
  Process: 13581 ExecStop=/etc/init.d/apache2 stop (code=exited, status=0/SUCCESS)
  Process: 13605 ExecStart=/etc/init.d/apache2 start (code=exited, status=0/SUCCESS)
    Tasks: 6 (limit: 512)
   CGroup: /system.slice/apache2.service
           ├─13623 /usr/sbin/apache2 -k start
           ├─13626 /usr/sbin/apache2 -k start
           ├─13627 /usr/sbin/apache2 -k start
           ├─13628 /usr/sbin/apache2 -k start
           ├─13629 /usr/sbin/apache2 -k start
           └─13630 /usr/sbin/apache2 -k start

Apr 13 14:28:42 ubuntu-16-lamp systemd[1]: Stopped LSB: Apache2 web server.
Apr 13 14:28:42 ubuntu-16-lamp systemd[1]: Starting LSB: Apache2 web server...
Apr 13 14:28:42 ubuntu-16-lamp apache2[13605]:  * Starting Apache httpd web server apache2
Apr 13 14:28:42 ubuntu-16-lamp apache2[13605]: AH00558: apache2: Could not reliably determine the server's fully qualified domain name, using 127.0.1.1. Set the 'ServerNam
Apr 13 14:28:43 ubuntu-16-lamp apache2[13605]:  *
Apr 13 14:28:43 ubuntu-16-lamp systemd[1]: Started LSB: Apache2 web server.

Instalarea Modulelor PHP

Pentru a spori functionalitatea PHP, putem instala unele module suplimentare.

Pentru a vedea optiunile disponibile pentru modulele si bibliotecile PHP, aveti posibilitatea sa filtrati rezultatele apt-cache search folosind urmatoarea linie de comanda:

apt-cache search php- | less

Folositi tastele cu sageti pentru a derula sus si jos si q pentru quit.

Rezultatele sunt toate componente optionale pe care le puteti instala. Va va oferi o scurta descriere a fiecareia:

libnet-libidn-perl - Perl bindings for GNU Libidn
php-all-dev - package depending on all supported PHP development packages
php-cgi - server-side, HTML-embedded scripting language (CGI binary) (default)
php-cli - command-line interpreter for the PHP scripting language (default)
php-common - Common files for PHP packages
php-curl - CURL module for PHP [default]
php-dev - Files for PHP module development (default)
php-gd - GD module for PHP [default]
php-gmp - GMP module for PHP [default]

:

Pentru a obtine mai multe informatii despre ce face fiecare modul, fie puteti cauta pe internet, fie va puteti uita la descrierea pachetului tastand:

apt-cache show package_name

Acolo vor fi multe iesiri, cu un camp numit Description-en care vor avea o explicatie mai lunga despre functionalitatea pe care o ofera modulul.

De exemplu, pentru a gasi ce face modulul php-cli, puteti tasta:

apt-cache show php-cli

Impreuna cu o cantitate mare de alte informatii, veti gasi ceva care arata ca acesta:

Output:

Description-en: 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 Debian's default
 PHP version (currently 7.0).

Daca dupa ce v-ati documentat, decideti sa instalati un pachet, puteti face acest lucru folosind comanda apt-get install asa cum am facut si pentru celalalt software.

Daca decideti ca php-cli este ceea ce va trebuie, puteti tasta:

sudo apt-get install php-cli

Daca doriti sa instalati mai mult de un modul, puteti face acest lucru prin listarea fiecaruia, separat print-un spatiu dupa comanda apt-get install, in felul urmator:

sudo apt-get install package1 package2 ...

In acest moment grupul LAMP este instalat si configurat. Totusi, ar trebui sa testati PHP-ul.

Pasul 4: Testarea Procesarii PHP pe Serverul  Web

In loc sa testam daca sistemul nostru este configurat corespunzator, putem crea un script PHP simplu.

Il vom numi info.php. Pentru ca Apache sa gaseasca si sa foloseasca fisierul corect, va trebui sa il salvam intr-un director specific, denumit "web root".

In Ubuntu 16.04 acest director se afla in /var/www/html/. Putem crea fisierul in acea locatie tastand:

sudo nano /var/www/html/info.php

Acesta va deschide un fisier gol. Va trebui sa punem urmatorul text, care este un cod PHP valid, in interiorul fisierului:

info.php
<?php
phpinfo();

Cand terminati salvati si inchideti fisierul.

Acum puteti testa daca server-ul dumneavoastra web afisaza continutul furnizat de scriptul PHP. Pentru a incerca acest lucru, trebuie sa accesati aceasta pagina in browser-ul dumneavoastra. Aveti nevoie inca odata de IP-ul public al server-ului dumneavoastra.

Adresa pe care trebuie sa o accesati va fi:

http://your_server_IP_address/info.php

Pagina afisata ar trebui sa arate in felul urmator:

Aceasta pagina va ofera informatii despre server din perspectiva PHP. Este util pentru depanare si pentru a va asigura ca setarile sunt aplicate in mod corect.

Daca acest lucru s-a finalizat cu succes, inseamna ca PHP functioneaza conform asteptarilor.

Ar trebui sa stergeti acest fisier in urma finalizarii testului, deoarece acesta ar putea oferi informatii despre server unor utilizatori neautorizati. Pentru a face acest lucru tastati:

sudo rm /var/www/html/info.php

Puteti mereu reface aceasta pagina daca aveti nevoie sa accesati informatiile mai tarziu.

Concluzii

Acum ca aveti grupul LAMP instalat, aveti multe obtiuni pentru ce veti face in continuare. Practic, ati instalat o platforma care va va permite sa instalati o multitudine de site-uri web si software pe server-ul dumneavoastra.

Ar trebui sa va asigurati ca aceste conexiunile la server sunt securizate prin HTTPS.

Din aceeasi categorie

Te muti la noi?

Ai gratuit transfer fisiere, import baze de date, transfer adrese de email si configurarea acestora !