Programiranje

Kako podesiti LAMP server na Debian 9

Jedna od stvari koja može da vam uštedi vreme pri podešavanju servera, baze i hostinga, jeste instalacija tzv. LAMP servera, što skraćeno znači Linux, Apache, MySQL, PhpMyAdmin.

Ovaj tekst je predviđen za one koji žele sami da podese svoj server hosting.
Podešavanja koja su napisana, odnosno se na remote server, koji je postavljen na hostingu Linode.

Obično kad se odlučite da pravite sajt, kupujete gotovo rešenje i ono što vam nudi hosting kuća.

U ovom slučaju vi kupujete samo prostor na serveru i sva ostala podešavanja su do vas kako ćete i šta ćete instalirati.

Ja sam izabrao Cloud Linode server, jer sam kroz neke testove došao do zaključka da su vrlo bezbedni za rad, kao i to što mogu da se postave vrlo zahtevne aplikacije na njega i da imam kontrolu nad memorijskim resursima i ostalim potrebnim konfiguracijama.

Ovo nije reklama za Linode, jer postoje i druge firme koje nude ovakav vid usluga, jednostavno kada ovo radite, prepušteni ste sebi i svom znanju,
obzirom na to da ovakve firme ne nude support u smisli konfigrusianja servera.

Dakle, da krenemo.

U ovom delu ćemo proći kroz to kako da sami podesite vaš server i postavite svoj sajt.

S obzirom na to da postoje različite verzije Linux distribucija, ja sam ovde uradio sve na Debian 9 Linuxu, pa će ovaj tutorijal biti onako kako sam ja podesio.

Instalacija LAMP servera

Prvo što treba da uradite kada ste se povezali na vaš remote server jeste naravo update.

[mks_highlight color=”#ffffff”]

$ sudo apt-get update

[/mks_highlight]

Kada je update završen, kucajte sledeću komandu kako biste instalirali LAMP server. Ovde instaliramo apache2, mysqserver i phpmyadmin.

[mks_highlight color=”#ffffff”]

$ sudo apt-get install apache2 php libapache2-mod-php mysql-client mysql-server phpmyadmin

[/mks_highlight]

Kada pokrene aplikaciju pitaće vas da li nastavljate, kliknite YES.

Kad ste završili ovaj korak, prikazaće vam prozor u kojem ćete selektovati apache2, kao što je prikazano na slici.
Ovde obratite pažnju, jer možete slučajno da kliknete samo na OK, a da niste selektovali apache2 i onda ćete imati problem kasnije.

Dakle, SPACE →TAB →Enter

Selektujte apache2 kliknom na SPACE, zatim klik na TAB, pa ENTER

Nakon ovog koraka ćete videti dalju instlacaiju.

U novom prozoru kliknite YES.

Kliknite na YES

Nakon ovog koraka će vas pitati za lozinku. 
Unesite vašu novu lozinku za MySQL server i u drugom prozoru je potvrdite.

Instalacija je nastavljena, a kada je završio instalaciju, sledećom komadnom proverite status apache2

$ sudo systemctl status apache2

Ukoliko vam Output bude kao dole naveden active (running), i obeležen obično zelenim slovima, vaš server radi i uspešno je instaliran. Bravo.

● apache2.service - The Apache HTTP Server
   Loaded: loaded (/lib/systemd/system/apache2.service; enabled; vendor preset: 
   Active: active (running) since Sun 2018-03-13 02:36:48 UTC; 5min ago
 Main PID: 14463 (apache2)
   CGroup: /system.slice/apache2.service
           ├─14463 /usr/sbin/apache2 -k start
           ├─14465 /usr/sbin/apache2 -k start
           └─14466 /usr/sbin/apache2 -k start

Sada proverite da li vam je instaliran ida li radi MySQL server

$ sudo systmectl status mysql

Ukoliko vam je Output statusa sličan ovom dole, sve je u redu i vaš MySQL je uspešno instaliran. Bitno je da active (running) bude zelene boje

● mariadb.service - MariaDB database server
   Loaded: loaded (/lib/systemd/system/mariadb.service; enabled; vendor preset: enabled)
   Active: active (running) since Sun 2018-03-13 03:05:17 UTC; 1min 37s ago
 Main PID: 16127 (mysqld)
   Status: "Taking your SQL requests now..."
   CGroup: /system.slice/mariadb.service
           └─16127 /usr/sbin/mysqld

Sada ćemo instalirati bezbednost za MySQL sledećom komandom

$ sudo mysql_secure_installation

U nastavku će vas pitati za unos lozinke za root, kao i to da je potvrdite.

Nakon toga ćete imati četri pitanja . Odgovor neka vam bude sa Y

- Remove anonymous users? [Y/n] y
- Disallow root login remotely? [Y/n] y
- Remove test database and access to it? [Y/n] y
- Reload privilege tables now? [Y/n] y

Kada ste ovo sve završili, otvorite vaš omiljeni browser i kucajte localhost.

Ukoliko je sve u redu , izbaciće vam sliku Debian početen stranice, odnosno apache2, kao što je prikazano ovde.

Index strana nakon instalcije na Debian 9

Nakon toga, kucajte sledeće, kako biste proverili da li vam radi phpmyadmin

http://localhost/phpmyadmin

Ukoliko vam prikaže ovakcu stranicu, znači da je vaš Phpmyadmin aktivan i možete se ulogovati

Unestite korisničko ime phpmyadmin i lozinku koju ste kreirali prilikom instalacije

Ovde se logujete sa korisnikom phpmyadmin , a upisujete lozinku onu koju ste naveli pri instalaciji MySQL servera.

Sada ćete videti dve baze podataka.

Izlogujte se i probajte testa radi da kucate username root i vašu lozinku, sada će vam izbaciti grešku, jer niste napravili bazu podataka ni korisnika za ovu bazu.

Idemo dalje…

Login na MySQL server i kreiranje korisnika

Sad ćete se ulogovati na mysql server sledećom komandom

$ sudo mysql -u root -p

Pitaće vas za lozinku i unesite lozinku koju ste upisali početkom kreiranja.

Ovde ću koristiti korisnika TEST, a vi možete odmah dodati svog usera pod drugim imenom.

Ukoliko radite ovo sve na remote serveru , a da ste pritom promenili ime localhost u neko drugo ime, nemojte zaboraviti da umesto localhost upišeete to ime.

Kao naprimer ovde ‘test’@’localhost’ zamenite ovako ‘test’@’vase_ime_hosta’

Kad ste pristupili MySQL serveru, kreiramo korisnika i novu lozinku za korisnika.

$ MariaDB [(none)]> create user 'test'@'localhost' identified by 'unisite_vasu_lozinku';

Zatim dodajte sve privilegije tek kreiranom korisniku sledećom komandom

$ MariaDB [(none)]> grant all privileges on *.* to 'test’@’localhost’ ;
$ MariaDB [(none)]> flush privileges;

Više o flush privileges komandi možete videti ovde

Sada se vratite na vaš omiljeni browser i probajte da se logujete sa novim korisničkim imenom i novom lozinkom na phpmyadmin

http://localhost/phpmyadmin

Ukoliko koristite remote server, umesto localhost upisujete ime domena, odnosno IP adresu vašeg server.
Ako ste na lokalnom računaru, ostaje localhost.

Unesite username i lozinku

I sad ćete videti kreiranu novu bazu podataka i ulogovani ste sa novim koriničkim imenom. Sada možete da uvozete novu bazu ili već neke druge operacije.

Nova kreirana baza novog korisnika

Ovde smo završili sa phpmyadmin.

Kreiranje direktorijuma za vaš novi sajt

Sada idemo da pravimo direktorijume gde će biti vaš sajt, kao iputanje do njega.

Putanje su veoma važne u ovom slučaju, jer ako napravite grešku u putanjama, vrtećete se u krug inećete uspeti da nađete rešenje, a ono je bukvalno ispred nosa.

Ovde ćete obratiti pažnju, jer ovo pišem pre svega za one koji hoće sami da nameste sve na remote serveru, ne na lokalnom računaru, jer se putanje razlikuju od lokalnog računara i remote servera.

Dakle, u ovom slučaju je najbitnija stvar da vaša putanja koja se nalazi u Document Root u apache fajlu , “gadja” vaš folder gde vam je sajt.

Ako ste sve ovo instalirali na Web Serveru, vaša default putanja će izgledati ovako

/var/www/html….
Ne mora nužno da bude dodato html, ali u većini slučajeva jeste.

Ako ste isto sve ovo uradili na lokalu , potrebno je da je izmenite I da ide ovako

/home/user_name/public_html

Prethodno ste rethodno kreirali nov folder pod imenom public_html.

Dakle, da ponovim

Ako ste se ulogoviali na vaš Web server, u putanju 
/var/www/html/ime_sajta/public_html

Ulogujte se kroz terminal na vaš remote server

Sada ćemo da instaliramo direktorijume za vaš novi sajt, kao idruge potrebne foldere.

Obratite pažnju na kreiranje ovih foldera, jer ćete morati da dodate ove putanje u fajl koji se nalazi u apache2 serveru.

Dakle, ove putanje mora da vam budu tačne, možete ove kopirati, a možete i shodno vašim potrebama postaviti druge. 
Naravno “primer.com” menjate imenom vašeg domena.

sudo mkdir -p /var/www/html/primer.com/public_html sudo mkdir -p /var/www/html/primer.com/log sudo mkdir -p /var/www/html/primer.com//backups

S obzirom da smo do sada kreirali direkotirjume sa sudo, oni sada pripadaju root korisniku.

Ukoliko želimo da neki sledeći korisnik, odnosno da korisnik ima priviligeije i permisije da menja direktorijume, izmenicemo to sledecom komandom.

$ sudo chown -R $USER:$USER /var/www/html/primer.com/public_html
$ sudo chmod -R 755 /var/www/html/primer.com/public_html

Ovu boldovanu komandu ćete pogledati na kraju texta, jer se razlikuje po različitim verzijama linuxa, a prilično je važna iz razloga, što ako naprimer budete imali wordpress sajt nećete biti u mogućnosti da uplodujete slike i plugine, ako vam ova podešavanja nisu podešena na korisnika, već samo na root.

Ali , na kraju će biti objašnjeno sve.

Kada smo kreirali ove direktorijume, sada je potrebno da podesimo apache server.

Kreiranje novog Virtuelnog host fajla

Apache dolazi sa virtulenim host fajlom po defaultu koji izgleda ovako.

$ nano /etc/apache2/sites-available/000-default.conf

Sada ukidamo po defaultu fajl i pravimo kopiju sa novim imenom, odnosno imenom vašeg domena.

Sledeća komanda izvršava kopiranje i kreiranje novog virutelnog host fajla
(zamenite ime primer.com.conf sa imenom vašeg domena)

$ sudo cp /etc/apache2/sites-available/000-default.conf /etc/apache2/sites-available/primer.com.conf

Sada otvorite u editoru vaš novi fajl sledećom komadnom

$ sudo nano /etc/apache2/sites-available/primer.com.conf

Fajl bi trebalo da izgleda nešto slično ovom navedenom.

# domain: primer.com
# public: /var/www/html/primer.com/public_html/
<VirtualHost *:80>
  # Admin email, Server Name (domain name), and any aliases
  ServerAdmin admin@primer.com
  ServerName  primer.com
  ServerAlias www.primer.com
# Index file and Document Root (where the public files are located)
  DirectoryIndex index.html index.php
  DocumentRoot /var/www/html/primer.com/public_html
  # Log file locations
  LogLevel warn
  ErrorLog  /var/www/html/primer.com/log/error.log
  CustomLog /var/www/html/primer.com/log/access.log combined
</VirtualHost>

U ovom slučaju ukoliko ste podesili sve do sada kako sam pisao, samo zemenite primer.com sa vašim domenom ifajl će biti podešen sa svim putanjama.

Ukoliko niste, OBAVEZNO OBRATITE PAŽNJU NA PUTANJE KAO ŠTO SU NAVEDENE i zamenite vašim, jer putem ovih putanja apache komunicara sa vašim direktorijumima koje smo napravili za vaš novi sajt .
/var/www/html/primer.com/public_html

Omogućavanje rada virtuelnog host fajla

Sledećom komandom omogućujemo rad novog virtuelnog hosting fajla.

$ sudo a2ensite primer.com.conf

Ovako treba da izgleda Output komande

Output
Enabling site primer.com.
To activate the new configuration, you need to run:
 service apache2 reload

Dakle, potrebno je restartovati apache server, to možete I ovom komanodm

$ sudo systemctl restart apache2

Sada je vaš novi virtuelni hosting fajl aktivan.

Onemogućavanje rada hosting fajla koji je po defaultu.

Sada ćemo ugasiti apache fajl koji je po defaultu.

To je onaj fajl koji smo maločas kopirali ikoji vam više nije poteban za rad, jer ste kreirali novi.

$ sudo a2dissite 000-default.conf

Restartujte ponovo apache2

$ sudo systemctl restart apache2

Bravo. Završili ste podešavanje.

Postavljanje hostname na lokalni računar i testiranje

Ovo radite na svom računaru, ali ne na Web serveru. 
Ukoliko testirate na lokalu.

Sledećom komandom otvorite vaš hosting fajl idodajte IP adresu vašeg Web servera, odnosno IP adresu

$ nano /etc/hostname

Unesiste sledeće paramtere u fajl. Domen, kao i IP adresu.

127.0.0.1 localhost
…
111.111.111.111 primer.com

Sačuvajte i zatvorite vaš fajl komandom CTRL + x 
Enter

Sada posetite vaš sajt ili putem domena ili IP adrese, ako radite na lokalu, kucajte u vaš omiljeni browser localhost/index.html

Permisije

Kao što sam gore naveo da možete imati problem sa permisijama, obavezno odradite ovu komandu kako biste izmenili permisije za sve direktorijume u vašem public_html.

Ukoliko vam vaš wordpress sajt, izbaci nešto poput ove poruke ispod, sigurno su vam permisije problem.

“Please enter your FTP credentials to proceed. If you do not remember your credentials, you should contact your web host.”

Uradite sledeću komandu

$ chown -R www-data:www-data /var/www/html/primer.com/public_html
$ ls -lart /var/www

Komanda ls -lart /var/www će vam izlistati sve foldere i videćete kakve su vam permisije i da li je sve u redu. Možete na ovom videu pogledati kako se radi.

Ukoliko vam je sve podešeno, čestitam vam na instalaciji LAMP i podešavanju servera.

To je za sada sve, a u sledećem blogu pišem kako da podesite vaš SSL sertifikat i obezbedite sajt.

Ukoliko imate neka pitanja slobodno komentarišite i delite.

Izvor: M.L

Napišite komentar