U sledećem uputstvu ćemo na CentOS 7 virtualnoj mašini na kojoj je već instaliran LAMP (tekst ovde) podesiti virtualne hostove. Virtualni hostovi omogućavaju hostovanje više nezavisnih websajtova na jednom serveru. U ovom slučaju server nam je na domenu ch.local i želimo da postavimo dva odvojena sajta na poddomenima wordpress.ch.local i magento.ch.local.

Ako vi radite sa realnim domenima (domen.com, example.com, sajt.example.com…) trebate kroz panel za upravljanje tih domena ih preusmerite da gađaju IP adresu vašeg servera….u onom slučaju radi se o lokalnoj mreži gde su ch.local, wordpress.ch.local i magento.ch.local lokalni domeni postavljeni da gađaju neki lokalni server.

Ovo sve radite kao non-root korisnik koji je u sudoersima (ovo sam napisao kao da su neki moto klub ili sekta u pitanju)

# Kreiranje foldera gde ce se nalaziti fajlovi i logovi
sudo mkdir -p /var/www/html/wordpress.ch.local/files
sudo mkdir -p /var/www/html/wordpress.ch.local/log
sudo mkdir -p /var/www/html/magento.ch.local/files
sudo mkdir -p /var/www/html/magento.ch.local/log

# Dodavanje selinux permisija na log folderima
sudo chcon -R -u system_u -t httpd_log_t /var/www/html/wordpress.ch.local/log
sudo chcon -R -u system_u -t httpd_log_t /var/www/html/magento.ch.local/log

# Podesavanje permisija (posle i apache.apache)
sudo chown -R $USER:$USER /var/www/html/wordpress.ch.local
sudo chown -R $USER:$USER /var/www/html/magento.ch.local

# Podesavanje prvog virtualnog hosta
sudo vi /etc/httpd/conf.d/wordpress.ch.local.conf
<VirtualHost *:80>
    ServerName www.wordpress.ch.local
    DocumentRoot /var/www/html/wordpress.ch.local/files
    ServerAlias wordpress.ch.local
    <Directory /var/www/html/wordpress.ch.local>
              Options Indexes FollowSymLinks
              AllowOverride All
              Require all granted
    </Directory>
    ErrorLog  /var/www/html/wordpress.ch.local/log/error.log
    CustomLog /var/www/html/wordpress.ch.local/log/requests.log combined
</VirtualHost>

# Podesavanje drugog virtualnog hosta
sudo vi /etc/httpd/conf.d/magento.ch.local.conf
<VirtualHost *:80>
    ServerName www.magento.ch.local
    DocumentRoot /var/www/html/magento.ch.local/files
    ServerAlias magento.ch.local
    <Directory /var/www/html/magento.ch.local>
              Options Indexes FollowSymLinks
              AllowOverride All
              Require all granted
    </Directory>
    ErrorLog  /var/www/html/magento.ch.local/log/error.log
    CustomLog /var/www/html/magento.ch.local/log/requests.log combined
</VirtualHost>

# Test sadrzaj
echo "OK WordPress" >> /var/www/html/wordpress.ch.local/files/index.html
echo "OK Magento" >> /var/www/html/magento.ch.local/files/index.html

# Reload apache webservera
sudo systemctl restart httpd

Ostaje samo još proveriti rade li sajtovi, odlaskom na web adrese wordpress.ch.local i magento.ch.local

Sve je OK