Предуслови
Инсталирајте Апацхе 2.4 веб сервер
Онемогућавање индекса
Кориснички именици
Виртуелни домаћини
Предуслови
- Вултр сервер који ради са најновијим Арцх Линук-ом. Погледајте овај водич за више информација.
- Судо приступ.
- Команде које се морају покренути као роот имају префикс са
#, а оне које се могу покренути као обичан корисник са $. Препоручени начин за покретање команди као роот је да, као обичан корисник, свакој од њих додате префикс sudo.
- Имајте инсталиран уређивач текста и будите упознати са њим, као што су
vi, vim, nano, emacsи тако даље.
Инсталирајте Апацхе 2.4 веб сервер
Ако користите заштитни зид, мораћете да омогућите долазни ТЦП саобраћај на порт 80.
Инсталирајте Апацхе:
# pacman -S apache
Покрените Апацхе и нека се покреће након сваког покретања:
# systemctl enable --now httpd
Тестирајте да ли Апацхе ради. Посетите http://YOUR-SERVER-WEB-ADDRESS-OR-IPи видећете страницу која приказује "Индекс /". Покрените ip addrако треба да знате ИП адресу.
Апацхе-ова конфигурациона датотека је /etc/httpd/conf/httpd.conf. Иако Апацхе покреће роот корисник, User httpиз безбедносних разлога одмах прелази на покретање као овај корисник. DocumentRoot "/srv/http"поставља где ће тражити веб датотеке. CustomLog "/var/log/httpd/access_log" commonпоставља где ће се евидентирати успешни приступи Апацхе-у. ErrorLog "/var/log/httpd/error_log"поставља где ће приступи Апацхе-у бити евидентирани.
Онемогућавање индекса
Подразумевано, ако се Апацхе-у додели директоријум који не пронађе индексну датотеку са екстензијом коју је конфигурисао да користи, аутоматски ће генерисати индекс који приказује садржај директоријума. Ово се може сматрати сигурносним пропустом. Да бисте га онемогућили, уредите /etc/httpd/conf/httpd.confи унутар <Directory "/srv/http">, из Options, избришите Indexes. Када се поново покрене, Апацхе ће дати "Приступ забрањен!" порука о грешци, осим ако датотека попут не /srv/http/index.htmlпостоји.
Поново покрените Апацхе:
# systemctl restart httpd
Кориснички именици
Подразумевано, кориснички ~/public_html/именик ће бити приказан на http://YOUR-SERVER-WEB-ADDRESS-OR-IP/~USERNAME/. Али, корисник httpмора да има приступ извршном биту корисничком директоријуму и његовом public_htmlдиректоријуму:
$ mkdir ~/public_html
$ chmod o+x ~/
$ chmod o+x ~/public_html
Поред тога, корисник httpмора имати приступ за читање појединачних датотека. Ако је потребно, покрените следећу команду:
$ chmod o+r ~/public_html/<FILES>
Ако желите да онемогућите да public_htmlдиректоријуми корисника буду на вашем веб серверу, без обзира на дозволе директоријума и датотеке, коментаришите овај ред (додајте #на почетак) у /etc/httpd/conf/httpd.conf:
Include conf/extra/httpd-userdir.conf
Поново покрените Апацхе:
# systemctl restart httpd
Виртуелни домаћини
Можете угостити више имена домена са истог Апацхе сервера и служити им различит садржај.
Направите фасциклу за чување конфигурација виртуелног хоста:
# mkdir /etc/httpd/conf/vhosts
Направите конфигурациону датотеку за сваки виртуелни хост, као што је /etc/httpd/conf/vhosts/YOUR-DOMAIN-NAME.com:
<VirtualHost *:80>
ServerAdmin webmaster@YOUR-DOMAIN-NAME.com
DocumentRoot "/srv/YOUR-DOMAIN-NAME.com"
ServerName YOUR-DOMAIN-NAME.com
ServerAlias YOUR-DOMAIN-NAME.com
ErrorLog "/var/log/httpd/YOUR-DOMAIN-NAME.com-error_log"
CustomLog "/var/log/httpd/YOUR-DOMAIN-NAME.com-access_log" common
<Directory "/srv/YOUR-DOMAIN-NAME.com">
Require all granted
</Directory>
</VirtualHost>
Направите директоријум виртуелног хоста за послуживање:
# mkdir /srv/YOUR-DOMAIN-NAME.com
На крају /etc/httpd/conf/httpd.conf, укључите сваку од ових конфигурационих датотека виртуелног хоста:
Include conf/vhosts/YOUR-DOMAIN-NAME.com
Поново покрените Апацхе:
# systemctl restart httpd
Захтеви које Апацхе прими YOUR-DOMAIN-NAME.comбиће испоручени из /srv/YOUR-DOMAIN-NAME.com. Имајте на уму да захтеви за Апацхе који се не подударају са одређеним ServerNameили ServerAlias, само са ИП адресом, или другим именом домена који се решава у ваш ИП, и даље ће бити испоручени са првог виртуелног хоста који је укључен. Ипак, требало би да сматрате да је било шта у општем DocumentRoot, што је подразумевано на /srv/http, на неки начин доступно.