Kā CentOS 8 instalēt Apache ar virtuālo resursdatoru


Apache tīmekļa serveris ir atvērtā koda un populārs HTTP tīmekļa serveris, kuram joprojām ir milzīga tirgus daļa mitināšanas nozarē. Tas piegādā daudzas funkcijas, tostarp moduļu uzlabojumus, daudzprotokolu atbalstu, vienkāršotu konfigurāciju un vairāku valodu atbalstu, pieminot tikai dažus.

Šajā ceļvedī mēs iepazīstināsim jūs ar Apache tīmekļa servera instalēšanu CentOS 8 un RHEL 8 ar virtuālā resursdatora vidi. Šīs apmācības rakstīšanas laikā Apache jaunākā versija ir Apache 2.2.43.

Apache tīmekļa servera instalēšana

Lai sāktu, vispirms atjauniniet savu CentOS 8 vai RHEL 8 sistēmas pakotņu sarakstu, izmantojot šādu komandu dnf.

$ sudo dnf update

Kad atjaunināšana ir pabeigta, instalējiet Apache tīmekļa serveri, izpildot šādu komandu.

$ sudo dnf install httpd

Pēc instalēšanas jūs varat pārbaudīt Apache versiju, palaižot komandu rpm.

$ rpm -qi httpd

Komanda izdrukā informācijas masīvu, piemēram, paketes versiju, izlaišanas datumu, būvējumu un arhitektūru.

Lai palaistu Apache HTTP tīmekļa pakalpojumu, palaidiet komandu systemctl.

$ sudo systemctl start httpd

Lai apstiprinātu, vai pakalpojums darbojas, izpildiet.

$ sudo systemctl status httpd

No izejas “aktīvais” statuss zaļā krāsā norāda, ka Apache tīmekļa serveris ir izveidots un darbojas.

Lai novērstu jebkādas šaubas par tīmekļa servera darbību, pieprasiet Apache testa lapu, pārlūkojot sava servera IP adresi vai domēna nosaukumu, kā parādīts.

http://server-ip  

Servera IP varat iegūt, izpildot komandu čokurošanās.

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

Pārlūkojot servera IP adresi, jums jāparāda šāda tīmekļa lapa.

Tas ir drošs apstiprinājums tam, ka tīmekļa serveris darbojas.

Apache tīmekļa servera pārvaldība

Kad Apache ir instalēts un darbojas, Apache pārvaldīšanai varat izmantot pārbaudes rīku systemctl.

Piemēram, lai apturētu Apache, palaidiet komandu:

$ sudo systemctl stop httpd

Lai vēlreiz sāktu pakalpojumu, izpildiet:

$ sudo systemctl start httpd

Ja esat veicis izmaiņas kādā no tā konfigurācijas failiem un jums ir jārestartē, lai veiktu izmaiņas, izpildiet komandu:

$ sudo systemctl restart httpd

Pakalpojuma restartēšana parasti izraisa pakalpojuma traucējumus. Labāka alternatīva ir vienkārši atkārtoti ielādēt bez pārtraukumiem savienojumu.

$ sudo systemctl reload httpd

Lai automātiski palaistu Apache tīmekļa serveri pēc sāknēšanas vai pārstartēšanas, palaidiet zemāk esošo komandu. Tas nodrošinās, ka Apache tiek palaista automātiski bez jūsu iejaukšanās.

$ sudo systemctl enable httpd

Ja izvēlaties nesākt pakalpojumu automātiski, palaižot:

$ sudo systemctl disable httpd

Apache virtuālo saimnieku iestatīšana

Pēc noklusējuma Apache tīmekļa serveris ir konfigurēts tā, lai apkalpotu vai mitinātu tikai vienu vietni. Ja vēlaties mitināt tikai vienu vietni, šī darbība nav nepieciešama. Bet, ja jūs plānojat savā serverī mitināt vairākus domēnus, jums jākonfigurē virtuālie Apache resursdatori.

Virtuālais resursdators ir atsevišķs fails, kas satur konfigurācijas, kas ļauj iestatīt atsevišķu domēnu no noklusējuma. Šajā ceļvedī mēs izveidosim virtuālo resursdatoru domēnam crazytechgeek.info.

Noklusētais virtuālais resursdators atrodas direktorijā /var/www/html . Tas darbojas tikai vienā vietnē. Lai mūsu domēnam izveidotu atsevišķu virtuālo resursdatoru, direktorijā /var/www izveidosim citu direktoriju, kā parādīts.

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

Turklāt varat arī izveidot direktoriju žurnālfailu glabāšanai.

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

Pēc tam rediģējiet faila atļaujas, izmantojot vides mainīgo $USER , kā parādīts.

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

Pielāgojiet arī tīmekļa saknes direktorija atļaujas, kā parādīts.

$ sudo chmod -R 755 /var/www

Pēc tam izveidojiet index.html faila paraugu, kā parādīts.

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

Tastatūrā nospiediet burtu i un ielīmējiet kādu parauga saturu, kā parādīts, kas tiks parādīts tīmekļa pārlūkprogrammā, testējot virtuālo resursdatoru.

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

Saglabājiet konfigurācijas failu un izejiet no tā.

Ar izveidoto indeksa faila un vietnes direktorija paraugu tagad varat turpināt un izveidot virtuālo resursdatora failu. Virtuālajā resursdatora failā būs jūsu domēna vietnes konfigurācija, un Apache norādīs, kā tas reaģēs uz klientu pieprasījumiem.

Virtuālajā resursdatora failā būs jūsu domēna vietnes konfigurācija, un Apache norādīs, kā tas reaģēs uz klientu pieprasījumiem. Bet turpinot, jums ir jāizveido 2 direktoriji: direktoriji sites-available un sites-enabled .

Virtuālā resursdatora fails tiks saglabāts direktorijā sites-available , savukārt direktorijā sites-enabled būs simboliskā saite uz virtuālo resursdatoru.

Izveidojiet abus direktorijus, kā parādīts attēlā.

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

Pēc tam modificējiet Apache tīmekļa servera galveno konfigurācijas failu un norādiet Apache, kur atrast virtuālo resursdatoru direktorijā, kurā iespējotas vietnes.

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

Pievienojiet rindu, kā parādīts konfigurācijas faila beigās.

IncludeOptional sites-enabled/*.conf

Saglabāt un iziet.

Tagad izveidojiet virtuālo resursdatora failu, kā parādīts:

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

Ielīmējiet zemāk esošo saturu un aizstājiet crazytechgeek.info ar savu domēna vārdu.

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

Saglabājiet un izejiet no faila.

Tagad iespējojiet virtuālo resursdatora failu, izveidojot simbolisku saiti direktorijā vietnes iespējotas .

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

Virtuālo saimnieku SELinux atļauju pielāgošana

CentOS 8 un RHEL 8 tiek piegādāti ar SELinux, kas ir drošības modulis Linux sistēmas drošības stiprināšanai. Tā kā iepriekšējā darbībā konfigurējāt pielāgotu žurnālu direktoriju, jums jāatjaunina dažas SELinux politikas, lai norādītu Apache tīmekļa serverim rakstīt direktorijā.

Pielāgojot SELinux Apache politikas, pastāv divas pieejas: Vispārīgi pielāgojot politikas un direktorijā esošās politikas. Pēdējam ir priekšroka, jo tas ir vēlams.

Rediģējot žurnāla direktorija SELinux atļaujas, varat absolūti kontrolēt Apache tīmekļa servera politikas. Šī metode ir diezgan ilga, un tai ir nepieciešams manuāli konfigurēt konteksta tipu papildu direktorijiem, kas norādīti virtuālā resursdatora konfigurācijas failā.

Pirms sākat, vispirms apstipriniet konteksta tipu, ko žurnāla direktorijam piešķīra SELinux:

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

Rezultātam jābūt līdzīgam tam, kas mums ir zemāk.

No izejas iestatītais konteksts ir httpd_sys_content_t. Tas norāda, ka tīmekļa serveris var lasīt failus tikai žurnāla direktorijā. Jums jāmaina šis konteksts uz httpd_log_t, lai Apache ļautu ģenerēt un direktorijā pievienot žurnāla ierakstus.

Tāpēc izpildiet komandu:

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

Ja jums rodas kļūda zem “semanage: komanda nav atrasta”.

Tas nozīmē, ka pakotnes, kas nodrošina komandu semanage, nav instalētas. Lai novērstu šo kļūdu, jums jāinstalē šie pakotnes. Bet vispirms pārbaudiet, kuras paketes nodrošina semanage komandu, palaižot:

$ sudo dnf whatprovides /usr/sbin/semanage

Rezultāts dod mums paketi, kas nodrošina semanage, kas ir policycoreutils-python-utils.

Tagad instalējiet pakotni, kā parādīts, izmantojot DNF pakotņu pārvaldnieku.

$ sudo dnf install policycoreutils-python-utils

Komandai konteksta maiņai tagad vajadzētu darboties.

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

Lai saglabātu izmaiņas un padarītu tās pastāvīgas, izsniedziet komandu restorecon, kā parādīts:

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

Izmaiņas var apstiprināt, vēlreiz palaižot komandu:

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

Noteikti ņemiet vērā, ka konteksta tips ir mainīts uz httpd_log_t , kā redzams izvadē.

Restartējiet Apache, lai lietotu izmaiņas.

$ sudo systemctl restart httpd

Tagad jūs varat apstiprināt, vai Apache saglabā žurnāla failus žurnāla direktorijā, uzskaitot tā saturu, kā parādīts:

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

Jums vajadzētu būt iespējai redzēt divus žurnāla failus, kā parādīts: kļūdu žurnāls un pieprasījuma žurnāla faili.

Apache virtuālā resursdatora pārbaude

Visbeidzot, jums jābūt pārliecinātam, ka Apache tīmekļa serveris apkalpo jūsu virtuālo resursdatora failu. Lai to izdarītu, atveriet pārlūkprogrammu un dodieties uz sava servera IP adresi vai domēna nosaukumu:

http://domain-name

Lieliski! Tas norāda, ka viss noritēja labi un mūsu virtuālais resursdators tiek apkalpots, kā paredzēts.

Šajā ceļvedī mēs esam iemācījušies, kā instalēt Apache tīmekļa serveri CentOS 8 un RHEL 8, kā arī konfigurēt virtuālo resursdatora failu, lai tas apkalpotu papildu domēna saturu. Konfigurējiet vairākus virtuālos resursdatora failus, kā jūs uzskatāt par piemērotiem, lai pielāgotu papildu domēnus.

Ja vēlaties izveidot pilnu mitināšanas kaudzīti, es iesaku CentOS 8 instalēt LAMP kaudzīti.