Kako da hostujemo više sajtova na serveru? Kako instalirati WordPress?
U prvom koraku uradićemo podešavanja kako bi mogli da imamo više sajtova na jednom serveru. To nam daje mogućnost da imamo više wordpress sajtova na jednom mestu. Direktorijum u kome Apache gleda šta se nalazi u njemu je /var/www/ tu ćemo da pravimo direktorijume svakog virtuelnog hosta tj svakog novog wordpress sajta. Direktoijum koji će u sebi na kraju da ima fajlove od web stranice će da bude public_html.
U ovom primeru ćemo da napravimo foldere za dva sajta domen1.com i domen2.com. Napravimo strukuturu foldera na našem serveru za ova dva sajta koja želimo da hostujemo.
sudo mkdir -p /var/www/domen1.com/public_html
sudo mkdir -p /var/www/domen2.com/public_html
Ako ste napravili ove foldere sa root userom možemo da dodelimo dozvole nekom useru koji će da pritupa tim folderima, na primeru ispod.
sudo chown -R piincloud:piincloud /var/www/domen1.com/public_html
sudo chown -R piincloud:piincloud /var/www/domen2.com/public_html
Sledeći korak treba da se modifikuju i dozvole za web direktorijum gde se nalaze svi sajtovi.
sudo chmod -R 755 /var/www
Napravimo Virtuelne Host fajlove kako bi apache znao gde se nalazi konfiguracija sajta i kako bi apache znao strukturu svakog od tih sajtova. Kada ih napravimo Apache ce moci da ih servira posetiocima.
sudo mkdir /etc/httpd/sites-available
sudo mkdir /etc/httpd/sites-enabled
Pošto smo napravili foldere za sajtove koji će da budu dostupni sedeće što treba da se uradi da u Apache konfiguracionom fajlu kažemo u kom folderu se nalaze ti virtualni hostovi a to je folder sites-enabled direktorijum. Sledeći konfiguracioni fajl treba da se izmeni.
sudo vi /etc/httpd/conf/httpd.conf
Na kraju ovog dokumenta dodati sledeću liniju i na taj način će apache moći da zna koji sve sajtovi postoje.
IncludeOptional sites-enabled/*.conf
Snimiti promene
Pravimo sada prvi Virtuelni host fajl a to je za domen1.com, sa sledecim sadržajem.
- ServerName: Ovo je nas domen koji koristimo,
- SeverAlias: ako neko kuca ispred domena www da to vodi na istu adresu.
- DocumentRoot: direktorijum kojim apache dostavlja fajlove domena tj prezentaciju.
- Options kontrolise funkcije servera po direktorijumima. -Indexes: ne dozvoljava listanje direktorijuma,
- FollowSymLinks: Opcija kaze webserveru da prati symbolic linkove.
- AllowOverride: omogucava da .htaccess file prekonfigurise directive.
Sve ovo što smo sada opisali ćemo da dodamo u ovaj fajl za DOMEN1.COM
sudo vi /etc/httpd/sites-available/domen1.com.conf
<VirtualHost *:80>
ServerName domen1.com
ServerAlias www.domen1.com
ServerAdmin webmaster@domen1.com
DocumentRoot /var/www/domen1.com/public_html
<Directory /var/www/domen1.com/public_html>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
ErrorLog /var/www/domen1.com/error.log
CustomLog /var/www/domen1.com/requests.log combined
</VirtualHost>
Snimimo ovaj fajl. Ovo je princip koliko god da imate sajtova sve ovo isto napišete samo što svuda treba ispaviti ime domena za koji se pravi virtualni host fajl.
Evo primera kako to možemo i za sledeći domen da uradimo DOMEN2.COM
sudo vi /etc/httpd/sites-available/domen2.com.conf
<VirtualHost *:80>
ServerName domen2.com
ServerAlias www.domen2.com
ServerAdmin webmaster@domen2.com
DocumentRoot /var/www/domen2.com/public_html
<Directory /var/www/domen2.com/public_html>
Options -Indexes +FollowSymLinks
AllowOverride All
</Directory>
ErrorLog /var/www/domen2.com/error.log
CustomLog /var/www/domen2.com/requests.log combined
</VirtualHost>
Snimimo promene u fajlu.
Imamo sada napravljene Virtuelne host fajlove. Sledeće treba da napravimo linkove za svaki sajt koji hostujemo u folderu sites-enabled kako bi bio dostupan. Da napomenemo, napravili smo bili dva foldera jedan je sites-available, a to je koji su sajtovi dostupni. Tu samo pravili virtuelne host fajlove koji u sebi imaju putanju gde se svaki od tih sajtova i fizički nalazi, a onda imamo u apache drugi folder koji samo napravili a to je sites-enabled a to znaci da su ti sajtovi omogućeni kako bi im se pristupilo.
sudo ln -s /etc/httpd/sites-available/domen1.com.conf /etc/httpd/sites-enabled/domen1.com.conf
sudo ln -s /etc/httpd/sites-available/domen2.com.conf /etc/httpd/sites-enabled/domen2.com.conf
Uradimo restart Apacha na CentOS 8 serveru da bi se promene primenile na konfiguracionim fajlovima.
sudo systemctl restart httpd
Napomena: Ukoliko je došlo do Error-a prilikom restarta apacha kao na slici dole!
Postoje dve solucije kako možete ovo da rešite. Ja koristim prvu metodu i njom gasim SELinux u potpunosti. Druga metoda je da dozvolite neka pravila i izuzetke kod SELinuxa.
Prva metoda iskljucivanje SELinuxa skroz. Izmenite konfiguracioni fajl SELinuxa.
vi /etc/selinux/conifg
Izmenite na delu gde pise enforcing u disabled SELINUX=enforcing
SELINUX=disabled
Snimite promene
Probajte da restartujete apache
sudo systemctl restart httpd
Druga metoda je da primenite polisu koja dopusta neka pravila kada je apache u pitanju.
Postanite root user i uradite sledece komande
setenforce 0
ausearch -c ‘httpd’ –raw | audit2allow -M my-httpd
reboot
Probajte sada da uradite restart apache
sudo systemctl restart httpd
Do sada smo postavljali konfiguraciju za hostovanje više sajtova na našem serveru. Sada možemo da krenemo sa dodavanjem naših sajtova u ovom slučaju wordpress. Prvo napravimo bazu za sajt domen1.com. Pošto nemamo jos phpMyAdmin kako bi lakše to uradili prvo ćemo da pokažemo kako za domen1 pravimo bazu ručno a u sledećem blogu ćemo da pokažemo kako da podignemo phpMyAdmin i kroz njega da napravimo bazu i usera za domen2.com.
Pravljenje user i baze u mariaDB.
mysql -u root -p
CREATE DATABASE domen1db;
CREATE USER userpi@localhost IDENTIFIED BY ‘123456’;
GRANT ALL PRIVILEGES ON domen1db.* TO userpi@localhost;
FLUSH PRIVILEGES;
exit
Sada treba da skinemo wordpress raspakujemo ga i onda ubacimo u folder domen1/public_html
cd /tmp
wget http://wordpress.org/latest.tar.gz
Komandu tar -xvzf koristimo da raspakujemo skinuti wordpress koji nam se sada nalazi u direktorijumu /tmp
cp komanda kopira sve fajlove koji se nalaze u direktorijumu wordpress zato smo stavili *, druga putanja je lokacija gde se ti fajlovi kopiraju public_html folder.
sudo tar -xvzf latest.tar.gz
sudo cp -R /tmp/wordpress/* /var/www/html/domen1.com/public_html
Da bi izbegli probleme sa dozvolama kako bi neometano mogao apachu da komunicira sa wordpress-om koji se nalazi u folderu domen1.com dodelićemo prava nad tim folderom.
sudo chown -R apache: /var/www/domen1.com
SELinux dozvolie da se omguće nad domenom1 isto tako treba da se uradi i za svaki domen koji imate.
semanage fcontext -a -t httpd_sys_rw_content_t \
“/var/www/domen1.com(/.*)?”
sudo restorecon -Rv /var/www/domen1.com

Pristupanje wordpress sajtu.
Do sada smo na CentOS 8 serveru instalirali LAMP i podesili smo Apache da možemo imati više sajtova. Napravili smo bazu i usera za sajt domen1.com.
Trebamo sada našem računaru da kažemo na kojoj se adresi nalazi domen1.com. Pošto sam ja stavio statičku adresu i ona je 192.168.100.100 od mog CentOS 8 servera koji ima LAMP na sebi, sada u host fajl od windowsa treba da napišem da se na adresi 192.168.100.100 nalazi domen1.com.
U vašem windows računaru odete u folder C:\Windows\System32\drivers\etc i nadjete hosts file.
Desni klik na njega i open with izaberemo notepad i na kraju dodamo IP adresu servera i kako se zove sajt.
192.168.100.100 domen1.com
Snimimo promene u hosts fajlu.
Isto tako ćemo da dodamo i domen2.com kada ga budeo setovali. Ovo inače rade hosting kompanije kad od njih uzmete neki hosting paket sa domenom, oni u svom dns upišu parametre gde se vaš sajt nalazi. Pošto mi to radimo na lokalu mi upisujemo u host fajl adresu servera i koji sve domeni se na njemu nalaze. Računar kada vi nešto tražite na internetu na primer www.piincloud.com on prvo pogleda da li ima neki zapis u host fajlu gde se taj domen nalazi, ako ga nije našao on pita DNS rutera ili google dns zavisi kako ste ga podesili. Na kraju dobije odgovor gde se taj domen nalazi i prikaže vam web prezentaciju.
Sada odemo u browser i otkucamo domen1.com treba da se prikaže wordpress i početak njegove instalacije.
Odemo na let’s go i otkucamo parameter koje smo napravili za bazu i usera. Na slici je primer koje sam ja napravio vi upisujete vaše.
Kliknemo na submit i onda na Run the Installation.
Popunite Site Title date neki naziv sajtu, username i password su podaci za logovanje na sajt, email stavite vaš ili neki izmisljen ako je test u pitanju, i možete da kliknete Install Woedpress. WordPress instalacija je zavrsena i možete da pristupate vašem sajtu. na putanji www.domen1.com/wp-admin
Napomena ako dobili error 500 Proverite opet SELinux isključite ga ako niste. I onda opet pokrenite instalaciju.
Uradili smo podešavanja i omogućili hostovanje više sajtova na nasem CentOS 8 serveru. Podigli smo i prvi wordpress sajt za domen1.com.
Na sledećem linku možete da pogledate kako da instalirate phpMyAdmin i podizanje wordpress-a. Posle ćemo lakše da napravimo bazu i usera za domen2.com, i znaćete kako da podignete više web stranica sa različitim domenima i sve će biti lakše kad kroz phpMyAdmin budete pravili baze i usere za te sajtove.