Giunsa ang Pag-install sa Apache nga adunay Virtual Host sa CentOS 8


Ang Apache webserver usa ka opensource ug popular nga HTTP web server nga nagpadayon sa pagtagamtam sa usa ka dako nga bahin sa merkado sa industriya sa hosting. Nagpadala kini og daghang mga feature lakip na ang mga pagpaayo sa module, suporta sa multi-protocol, gipasimple nga configuration, ug suporta sa multi-language sa paghisgot ug pipila lang.

Niini nga giya, kami maglakaw kanimo pinaagi sa pag-instalar sa Apache webserver sa CentOS 8 ug RHEL 8 nga adunay usa ka Virtual Host nga palibot. Sa panahon sa pagsulat niini nga panudlo, ang pinakabag-o nga bersyon sa Apache mao ang Apache 2.2.43.

Pag-instalar sa Apache Web Server

Aron makasugod, una nga i-update ang imong CentOS 8 o RHEL 8 system package list gamit ang mosunod nga dnf command.

$ sudo dnf update

Kung kompleto na ang pag-update, i-install ang Apache webserver pinaagi sa pagpatuman sa mosunod nga sugo.

$ sudo dnf install httpd

Sa higayon nga ma-install, mahimo nimong pamatud-an ang bersyon sa Apache pinaagi sa pagpadagan sa rpm command.

$ rpm -qi httpd

Ang mando nag-imprenta sa daghang impormasyon sama sa bersyon, petsa sa pagpagawas, pagtukod ug arkitektura sa pakete.

Aron masugdan ang serbisyo sa web sa Apache HTTP, padagana ang systemctl command.

$ sudo systemctl start httpd

Aron makumpirma kung nagdagan ang serbisyo, i-execute.

$ sudo systemctl status httpd

Gikan sa output, ang 'aktibo' nga status sa berde nagpakita nga ang Apache webserver nagdagan ug nagdagan.

Aron malimpyohan ang bisan unsang pagduhaduha nga ang webserver nagdagan, paghangyo og usa ka panid sa pagsulay gikan sa Apache pinaagi sa pag-browse sa IP address sa imong server o domain name sama sa gipakita.

http://server-ip  

Makuha nimo ang imong server IP pinaagi sa pagpadagan sa curl command.

$ curl ifconfig.me 
OR
$ curl -4 icanhazip.com

Kung nag-browse ka sa IP address sa server, kinahanglan nimo nga ipakita ang mosunod nga panid sa web.

Kini usa ka sigurado nga kumpirmasyon nga ang webserver nagdagan.

Pagdumala sa Apache Webserver

Sa pag-install ug pagdagan sa Apache, mahimo nimong gamiton ang tool sa inspeksyon sa systemctl aron madumala ang Apache.

Pananglitan, aron mapahunong ang Apache, pagdagan ang mando:

$ sudo systemctl stop httpd

Aron masugdan pag-usab ang serbisyo, ipatuman ang:

$ sudo systemctl start httpd

Kung nakahimo ka mga pagbag-o sa bisan unsang mga file sa pag-configure niini ug kinahanglan nimo nga i-restart aron magamit ang mga pagbag-o, ipatuman ang mando:

$ sudo systemctl restart httpd

Ang pagsugod pag-usab sa serbisyo kasagarang hinungdan sa pagkabalda sa serbisyo. Ang usa ka mas maayo nga alternatibo mao ang yano nga pag-reload nga wala’y bisan unsang pagkabalda sa koneksyon.

$ sudo systemctl reload httpd

Sa pagsugod sa Apache web server awtomatik sa pag-boot o pag-reboot pagdagan ang sugo sa ubos. Kini makasiguro nga ang Apache awtomatikong magsugod nga wala ang imong interbensyon.

$ sudo systemctl enable httpd

Kung gipili nimo nga dili magsugod sa serbisyo nga awtomatiko sa boot, pagdagan:

$ sudo systemctl disable httpd

Pag-set up sa Apache Virtual Hosts

Sa kasagaran, ang Apache web server gi-configure aron mag-alagad o mag-host sa usa lamang ka website. Kung gusto nimo nga mag-host usa ra ka website, nan kini nga lakang wala kinahanglana. Apan kung nagplano ka nga mag-host sa daghang mga domain sa imong server, kinahanglan nimo nga i-configure ang mga virtual host sa Apache.

Ang usa ka virtual host usa ka bulag nga file nga adunay mga pagsulud nga nagtugot kanimo sa pag-set up sa usa ka lahi nga domain gikan sa default. Alang sa kini nga giya, magbutang kami usa ka virtual host alang sa domain nga crazytechgeek.info.

Ang default virtual host nahimutang sa /var/www/html direktoryo. Kini nagtrabaho lamang alang sa usa ka site. Para makahimo ug bulag nga virtual host para sa among domain, maghimo mi ug laing directory structure sulod sa /var/www directory sama sa gipakita.

$ sudo mkdir -p /var/www/crazytechgeek.info/html

Dugang pa, mahimo ka usab maghimo usa ka direktoryo alang sa pagtipig sa mga file sa log.

$ sudo mkdir -p /var/www/crazytechgeek.info/log

Sunod, usba ang mga permiso sa payl gamit ang $USER environment variable sama sa gipakita.

$ sudo chown -R $USER:$USER /var/www/crazytechgeek.info/html

Usab, i-adjust ang mga permiso sa webroot directory sama sa gipakita.

$ sudo chmod -R 755 /var/www

Sunod, paghimo ug sample index.html file sama sa gipakita.

$ sudo vim /var/www/crazytechgeek.info/html/index.html

Pindota ang letra nga i sa keyboard ug idikit ang pipila ka sample content sama sa gipakita nga ipakita sa web browser kung sulayan ang virtual host.

<html>
  <head>
    <title>Welcome to crazytechgeek.info!</title>
  </head>
  <body>
    <h1>Success! The crazytechgeek.info virtual host is up and perfectly working!</h1>
  </body>
</html>

Pag-save ug paggawas sa configuration file.

Uban sa sample index file ug site directory nga gihimo, mahimo ka na nga magpadayon ug maghimo sa virtual host file. Ang virtual host file maglangkob sa configuration sa site sa imong domain ug magtudlo sa Apache kung unsaon kini pagtubag sa mga hangyo sa mga kliyente.

Ang virtual host file maglangkob sa configuration sa site sa imong domain ug magtudlo sa Apache kung unsaon kini pagtubag sa mga hangyo sa mga kliyente. Apan sa pagpadayon, kinahanglan kang maghimo ug 2 ka direktoryo: ang sites-available ug sites-enabled directory.

Ang virtual host file itago sa sites-available directory samtang ang sites-enabled ang direktoryo maglangkob sa simbolikong link sa virtual host.

Paghimo sa duha ka mga direktoryo sama sa gipakita.

$ sudo mkdir /etc/httpd/sites-available
$ sudo mkdir /etc/httpd/sites-enabled

Sunod, usba ang nag-unang configuration file sa Apache web server ug tudloi ang Apache kung asa makit-an ang virtual host sa sulod sa direktoryo nga gipagana sa mga site.

$ sudo vim /etc/httpd/conf/httpd.conf

Idugang ang linya sama sa gipakita sa katapusan sa configuration file.

IncludeOptional sites-enabled/*.conf

Pag-save ug paggawas.

Karon paghimo usa ka virtual host file sama sa gipakita:

$ sudo vim /etc/httpd/sites-available/crazytechgeek.info

Idikit ang sulod sa ubos ug pulihan ang crazytechgeek.info sa imong kaugalingong domain name.

<VirtualHost *:80>
    ServerName www.crazytechgeek.info
    ServerAlias crazytechgeek.info
    DocumentRoot /var/www/crazytechgeek.info/html
    ErrorLog /var/www/crazytechgeek.info/log/error.log
    CustomLog /var/www/crazytechgeek.info/log/requests.log combined
</VirtualHost>

Pag-save ug paggawas sa file.

Karon i-enable ang virtual host file pinaagi sa paghimo og simbolikong link sa sites-enabled directory.

$ sudo ln -s /etc/httpd/sites-available/crazytechgeek.info.conf /etc/httpd/sites-enabled/crazytechgeek.info.conf

Pag-adjust sa SELinux Permissions para sa Virtual Hosts

Ang CentOS 8 ug RHEL 8 nagpadala sa SELinux nga usa ka module sa seguridad alang sa pagpalig-on sa seguridad sa sistema sa Linux. Tungod kay imong gi-configure ang usa ka custom nga direktoryo sa log sa miaging lakang, kinahanglan nimo nga i-update ang pipila ka mga palisiya sa SELinux aron matudloan ang Apache webserver sa pagsulat sa direktoryo.

Adunay 2 nga mga pamaagi sa pag-adjust sa mga palisiya sa SELinux Apache: Pag-adjust sa mga palisiya sa pag-adjust sa unibersal ug ang mga palisiya sa usa ka direktoryo. Ang naulahi gipalabi tungod kay kini mas gipalabi.

Ang pag-edit sa mga permiso sa SELinux para sa log directory naghatag kanimo og hingpit nga kontrol sa mga polisiya sa webserver sa Apache. Kini nga pamaagi taas kaayo ug kinahanglan nimo nga mano-mano ang pag-configure sa tipo sa konteksto alang sa dugang nga mga direktoryo nga gitakda sa virtual host configuration file.

Sa dili pa magsugod, kumpirmahi una ang tipo sa konteksto nga gihatag sa direktoryo sa log sa SELinux:

$ sudo ls -dlZ /var/www/crazytechgeek.info/log/

Ang output kinahanglan nga parehas sa kung unsa ang naa sa ubos.

Gikan sa output, ang set nga konteksto mao ang httpd_sys_content_t. Kini nagpakita nga ang webserver makabasa lang sa mga file sa log directory. Kinahanglan nimo nga usbon kini nga konteksto sa httpd_log_t aron makahimo ang Apache nga makamugna ug makadugang sa mga entry sa log sa direktoryo.

Busa, ipatuman ang sugo:

$ sudo semanage fcontext -a -t httpd_log_t "/var/www/crazytechgeek.info/log(/.*)?"

Kung mahitabo nimo nga makuha ang sayup sa ubos nga \semanage: command not found.

Nagpasabot kini nga ang mga pakete nga naghatag alang sa semanage command wala ma-install. Aron ayuhon kini nga sayup, kinahanglan nimo nga i-install ang mga pakete. Apan una, susiha kung unsang mga pakete ang naghatag alang sa semanage nga mando pinaagi sa pagpadagan:

$ sudo dnf whatprovides /usr/sbin/semanage

Ang output naghatag kanamo sa package nga naghatag alang sa semanage, nga mao ang policycoreutils-python-utils.

Karon i-install ang package sama sa gipakita gamit ang DNF package manager.

$ sudo dnf install policycoreutils-python-utils

Ang sugo alang sa pagbag-o sa konteksto kinahanglan nga magamit na karon.

$ sudo semanage fcontext -a -t httpd_log_t "/var/www/crazytechgeek.info/log(/.*)?"

Aron ma-save ang mga pagbag-o ug himuon kini nga makanunayon, i-isyu ang mando sa restorecon sama sa gipakita:

$ sudo restorecon -R -v /var/www/crazytechgeek.info/log

Mahimo nimong kumpirmahon ang mga pagbag-o pinaagi sa pagpadagan pag-usab sa mando:

$ sudo ls -dlZ /var/www/crazytechgeek.info/log/

Siguroha nga timan-an nga ang matang sa konteksto nausab ngadto sa httpd_log_t ingon sa makita sa output.

I-restart ang Apache alang sa mga pagbag-o nga magamit.

$ sudo systemctl restart httpd

Mahimo nimong kumpirmahon kung ang Apache nagtipig sa mga file sa log sa direktoryo sa log pinaagi sa paglista sa mga sulud niini sama sa gipakita:

$ ls -l /var/www/crazytechgeek.info/log/

Kinahanglan nimong makita ang duha ka mga file sa log sama sa gipakita: log sa sayup ug paghangyo sa mga file sa log.

Pagsulay sa Apache Virtual Host

Sa katapusan, kinahanglan nimo nga sigurado nga ang Apache webserver nagsilbi sa imong virtual host file. Aron mahimo kini, ablihi ang imong browser ug adto sa IP address sa imong server o domain name:

http://domain-name

Hingpit! Gipakita niini nga maayo ang tanan ug ang among virtual host giserbisyuhan sama sa gipaabut.

Sa kini nga giya, nahibal-an namon kung giunsa ang pag-install sa Apache webserver sa CentOS 8 ug RHEL 8 ug kung giunsa usab pag-configure ang usa ka virtual host file aron mag-alagad sa sulud alang sa dugang nga domain. Mobati nga gawasnon sa pag-configure sa daghang mga virtual host nga mga file ingon nga imong gihunahuna nga angay aron ma-accommodate ang dugang nga mga dominyo.

Kung gusto nimo magbutang usa ka kompleto nga stack sa pag-host, girekomenda ko nga mag-install ka usa ka LAMP stack sa CentOS 8.