Kako hostovati više sajtova i instalacija wordpressa?

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

Struktura foldera na Centos za apche

 

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

Struktura foldera za sajtove u apache

 

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

Modifikovanje fajla u 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

Tekst IncludeOptional sites-enabled/*.conf za httpd

 

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

Website domen1.com koji pravimo

 

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

website fajl u apache

 

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!

Apache error pri restartu

 

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

Gasenje SELinuxa na Centos 8

 

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

Instaliranje wordpress sajta.

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

Pravljenje baze i usera u MariaDB

 

Sada treba da skinemo wordpress raspakujemo ga i onda ubacimo u folder domen1/public_html

cd /tmp
wget http://wordpress.org/latest.tar.gz

Skidanje wordpress falova na server

 

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

Komanda za otpakivanje fajlova na linuxu

 

kopiranje fajlova wordpress koje smo skinuli

 

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 \

Selinux omogucavanje dozvola

“/var/www/domen1.com(/.*)?”

Selinux domen putanja

sudo restorecon -Rv /var/www/domen1.com

Primena dozvola na sve fajlove

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.

 

Windows hosts fajl

 

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

 

windows host fajl dodavanje adrese

 

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.

 

Instalacija wordpress sajta

 

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.

 

Wordpress instalacija sa bayom i userom

 

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

 

wordpress sajt priprema za instalaicju

 

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.

Related Posts

Leave a comment