Apache კონფიგურაციის ფაილები. Apache– ის კონფიგურაცია: ნაბიჯ ნაბიჯ ინსტრუქციები Apache კონფიგურაციის ფაილი

Apache არის სხვადასხვა პროექტების მთელი ოჯახი, რომელთაგან პირველი იყო ვებ სერვერი. ვებ სერვერი წარმოდგენილია httpd დემონით, ამიტომ Apache ვებ სერვერის პროექტს ეწოდება httpd.

GNU / Linux– ზე httpd ვებ სერვერის კონფიგურაციის ფაილები განლაგებულია სხვადასხვა დირექტორიაში სხვადასხვა განაწილებით: / etc / httpd / conf /, ან / etc / apache2, ან სხვაგვარად. მთავარ კონფიგურაციის ფაილს ჰქვია httpd.conf და ხშირად პარამეტრების ნებისმიერი ჯგუფისთვის გამოყოფილი ინდივიდუალური კონფიგურაციის ფაილები დაკავშირებულია httpd.conf-თან, ჩათვლით დირექტივის გამოყენებით.

ზოგადად, httpd პარამეტრები შეიძლება დაიყოს სამ მთავარ კატეგორიად:

გლობალური პარამეტრების r განყოფილება;

r ძირითადი სერვერის პარამეტრები;

r პარამეტრები ვირტუალური მასპინძლებისთვის.

ამ განყოფილებების გარდა, თქვენ შეგიძლიათ აირჩიოთ ფაილების განსაზღვრული ტიპების, MIME გაფართოებების და ეროვნული ენების დამუშავების პარამეტრები.

გლობალური სერვერის პარამეტრები მოიცავს მათ, რომლებიც გავლენას ახდენენ Apache სერვერის მუშაობაზე მთლიანად. ქვემოთ მოცემულია ძირითადი გლობალური პარამეტრები:

r ServerRoot არის ძირითადი ინსტალაციის დირექტორია, რომლის მიმართაც Apache კონფიგურაციის ფაილები განლაგებულია GNU / Linux ფაილურ სისტემაში, ასევე მისი მუშაობისათვის საჭირო ზოგიერთი ფაილი;


r PidFile - ფაილი, რომელშიც PID არის შეყვანილი Apache სერვერის დაწყებისას

მთავარი სერვერის პროცესი;

r LoadModule არის ბრძანება Apache გაფართოების მოდულის ჩატვირთვისთვის, რომელიც შედგენილია საერთო ბიბლიოთეკის სახით;

r Timeout - კავშირის დაკარგვის სიგნალის გაგზავნამდე წამების რაოდენობა;

r KeepAlive - დაუშვით ან უარყოთ HTTP / 1.1 პროტოკოლში არსებული ხანგრძლივი კავშირების მხარდაჭერა, რაც საშუალებას გაძლევთ დატოვოთ კავშირი შეუწყვეტელ მდგომარეობაში მას შემდეგ, რაც სერვერი გამოგზავნის საჭირო ინფორმაციას;

r KeepAliveTimeOut - მომდევნო მოთხოვნის ლოდინის წამების რაოდენობა, რის შემდეგაც ხანგრძლივი კავშირი შეწყდება;

r MaxKeepAliveRequests - ხანგრძლივ კავშირებზე დაშვებული მოთხოვნების მაქსიმალური რაოდენობა;

r StartServers - httpd შვილი პროცესების რაოდენობა, რომლებიც იწყება Apache სერვერის გაშვებისას;

r MinSpareServers - httpd ბავშვის პროცესების მინიმალური რაოდენობა, რომელიც ელოდება კავშირს (როდესაც გამოჩნდება კავშირები, ამდენი httpd ასლი იწყებს ისე, რომ ბავშვთა პროცესების რაოდენობა, რომელიც ელოდება კავშირს, არ არის ამ მნიშვნელობაზე ნაკლები);

r MaxSpareServers - კავშირის მოლოდინში httpd ბავშვის პროცესების მაქსიმალური რაოდენობა (ზედმეტი პროცესები შეჩერებულია);

r MaxClients - httpd ბავშვის პროცესების მაქსიმალური რაოდენობის შეზღუდვა, რომელიც განსაზღვრავს კავშირების შესაძლო რაოდენობას;

r MaxRequestsPerChild არის მოთხოვნათა მაქსიმალური რაოდენობა, რომლითაც ერთ ბავშვს httpd პროცესის გაშვება ნებადართულია, რომლის მიღწევისთანავე გარანტირებულია შეჩერება მეხსიერების შესაძლო გაჟონვის თავიდან ასაცილებლად.

ServerRoot " / etc / httpd" PidFile გაშვება / httpd.pid ვადაგასული 120

KeepAlive Off MaxKeepAliveRequests 100


KeepAliveTimeout 15

StartServers
MinSpareServers
MaxSpareServers
ServerLimit
მაქს კლიენტები

MaxRequestsPerChild 4000

მოუსმინე 80

LoadModule auth_basic_module modules / mod_auth_basic.so LoadModule auth_digest_module modules / mod_auth_digest.so LoadModule authn_file_module modules / mod_authn_file.so LoadModule authn_aliasModule /_module LoadModule authn_alias_module.

მომხმარებლის apache ჯგუფი apache

უნდა აღინიშნოს, რომ მოდულები შეიძლება არა მხოლოდ დაკავშირებული იყოს LoadModule დირექტივის გამოყენებით, არამედ პირდაპირ დაინსტალირდეს Apache კოდში მისი შედგენისა და შეკრების ეტაპზე. იმის დასადგენად, თუ რომელი მოდულები იყო დაინსტალირებული კოდში კომპილაციის დროს, გაუშვით ბრძანება httpd –l (მაგალითი 28.2).

$ / usr / sbin / httpd -l შედგენილია მოდულებში:

core.c prefork.c http_core.c mod_so.c

ყურადღება მიაქციეთ prefork.c მოდულს, რომელიც არის Apache v2-ისთვის ხელმისაწვდომი რამდენიმე MPM-დან (მრავალდამუშავების მოდულიდან). ეს მოდულები მიზნად ისახავს სხვადასხვა ოპერაციულ სისტემას ან სხვადასხვა დავალებების დამუშავების მოდელებს. მაგალითად, prefork.c მოდული ფოკუსირებულია ბავშვის პროცესების ქვირითობის ტრადიციულ UNIX მოდელზე, ხოლო worker.c ორიენტირებულია ძაფებთან მუშაობაზე.


ძირითადი სერვერის პარამეტრებს შორის, ყველაზე მნიშვნელოვანია შემდეგი:

r Listen - აიძულებს Apache-ს მოუსმინოს მხოლოდ მითითებულ პორტზე;

r მომხმარებელი - მომხმარებელი, რომლის სახელითაც დაიწყება httpd პროცესები;

r ჯგუფი - ჯგუფი, რომლის სახელით დაიწყება ბავშვის პროცესები

r DocumentRoot - დირექტორია, სადაც განთავსებულია ვებ – გვერდის ფაილები;

r UserDir არის დირექტორიის სახელი მომხმარებლის პირადი ვებ გვერდების განთავსებისთვის;

r DirectoryIndex - ფაილების სახელების სია, რომლებიც იხილება დირექტორიაში ძირეული დოკუმენტის წვდომისას;

r AccessFileName არის ფაილის სახელი, რომელიც შეიცავს დირექტივებს დირექტორიაში წვდომის მართვისათვის;

r TypesConfig - განსაზღვრავს MIME კონფიგურაციის ფაილის ადგილმდებარეობას;

r DefaultType - ადგენს დოკუმენტის ნაგულისხმევ MIME ტიპს;

r MimeMagicFile - განსაზღვრავს მაგიური რიცხვის ფაილის ადგილმდებარეობას დოკუმენტის MIME ტიპის დასადგენად;

r HostnameLookups - ადგენს კლიენტის მოთხოვნების შესახებ ინფორმაციის შეტანის ტიპს IP მისამართის ან მასპინძლის სახელის მიხედვით;

r ErrorLog - ჟურნალის ფაილი, რომელზეც დაიწერება შეცდომები

(შეტყობინებები) შეექმნა Apache– ის გაშვებისას;

r LogLevel - ჩანაწერების ინფორმაციის შინაარსის დონე;

r LogFormat - დირექტივა, რომელიც განსაზღვრავს ჟურნალში ინფორმაციის გატანის ფორმატს;

r CustomLog - მიუთითებს ჟურნალის ფაილის ადგილმდებარეობას;

r ServerSignature - გაძლევთ საშუალებას აჩვენოთ ვერსიის ინფორმაცია, ვირტუალური კვანძი და ა.შ. Apache სერვერის მიერ გენერირებულ გვერდებზე;

r Alias ​​- აწესებს ფსევდონიმებს წვდომის ბილიკებისთვის სერვერის დირექტორიაში (სტრიქონის სტრიქონის სიგრძე ნაკლებია წვდომის ბილიკის სტრიქონის სიგრძეზე);

r ScriptAlias- იგივეს აკეთებს როგორც Alias, მაგრამ CGI– ით დირექტორია

სკრიპტები;

r IndexOptions - განსაზღვრავს დირექტორიაში ინდექსირების ტიპს;

r AddIcon - განსაზღვრავს ხატულ ფაილს, რომელიც უნდა იყოს ნაჩვენები კონკრეტულ სიტუაციებში, მაგალითად, დირექტორიაში შიგთავსით გვერდის ჩვენებისას, სხვადასხვა ტიპის ფაილები ასოცირდება სხვადასხვა ხატებთან;

r AddIconByEncoding - ადგენს ხატებს კონკრეტული MIME კოდირებისთვის;


r AddIconByType - ადგენს ხატებს კონკრეტული MIME ტიპის დოკუმენტებისთვის;

r DefaultIcon - ნაგულისხმევი ხატი;

r AddDescription - ამატებს კომენტარის ხაზს გარკვეული სახის დოკუმენტებზე (მაგალითად, .gz - gzipped დოკუმენტი);

r ReadmeName - განსაზღვრავს README ფაილის სახელს, რომელიც დასამატებელია დირექტორიაში არსებული ფაილების სიის დასასრულებლად (დირექტორია ინდექსი);

r HeaderName - განსაზღვრავს HEADER ფაილის სახელს, რომელიც დაემატა დირექტორიაში ფაილების სიის დასაწყისში (დირექტორია ინდექსი);

r IndexIgnore - ფაილების სახელები, რომლებიც იგნორირებულია ინდექსაციის დროს;

r AddEncoding - საშუალებას აძლევს ბრაუზერებს განსაზღვრონ ინფორმაცია დამუშავების პროცესში (მაგალითად, აჩვენონ შეკუმშული gzip ფაილების შინაარსი);

r AddLanguage - ასახავს ფაილის სახელის მითითებულ გაფართოებებს დოკუმენტის კონკრეტულ ენაზე (მაგალითად, AddLanguage ru .ru);

r AddCharset - აყენებს ფაილების სახელების გარკვეული გაფართოების რუქას კონკრეტულ კოდირებაზე;

r LanguagePriority - ენობრივი წესრიგი;

r AddType - ადგენს ფაილის სახელის გაფართოების რუქას MIME ტიპზე;

r AddHandler - ადგენს დამუშავების ტიპს ფაილის სახელის გაფართოებით;

r ErrorDocument - გაძლევთ შეცდომის შეტყობინებების მორგებას;

r BrowserMatch - განსაზღვრავს ინფორმაციის ჩვენების მახასიათებლებს ბრაუზერებისთვის.

კონფიგურაციის ფაილი httpd.conf ხშირად შეიცავს პირობით დირექტივებს, როგორიცაა ... მათი დახმარებით დააყენეთ აპაჩის ისეთი პარამეტრები, რაც შესაძლებელია ამ მოდულის არსებობის შემთხვევაში (მაგალითი 28.3).

მეტსახელი / doc / usr / share / doc

ეს მაგალითი ადგენს doc alias-ს / usr / share / doc დირექტორიასთვის. თუმცა, ასეთი მეტსახელი შეიქმნება მხოლოდ იმ შემთხვევაში, თუ mod_alias.c მოდული არსებობს. ასეთი მეტსახელით (თუ გაქვთ შესაბამისი ნებართვები), შეგიძლიათ გამოიყენოთ ვებ ბრაუზერი URL / გამოყენებით usr / share / doc დირექტორიის შინაარსზე წვდომისათვის http: // localhost / doc.


სხვა სახის პირობითი დირექტივაა ... ეს დირექტივები შეიცავს Apache კონფიგურაციის ბლოკებს, რომლებიც მუშაობენ მხოლოდ დამატებითი პარამეტრების მითითების შემთხვევაში. ამ პარამეტრის დაყენება შესაძლებელია httpd შემსრულებლის -D ვარიანტის გამოყენებით.

Apache– ს ხშირად გააჩნია საკმაოდ ვრცელი HTML დოკუმენტაცია. მაგალითად, Fedora– ს დისტრიბუციებში, ტრადიციულად Apache დოკუმენტაცია ხელმისაწვდომია Apache– ს URL– ზე დაწყების შემდეგ http: // localhost / სახელმძღვანელო.

ვებ ჰოსტინგი

მისი განხორციელება შესაძლებელია ოთხი გზით:

    სტანდარტულად, / var / www / html საქაღალდეში. წვდომა არის http: // localhost /

    ჰოსტინგის ძირითადი პარამეტრები. მაგალითად, http: // localhost / phpmyadmin

    ვირტუალური მასპინძლების მოდულის გამოყენებით ნებისმიერ საქაღალდეში. მაგალითად, http: // mysite /

    მომხმარებლის public_html საქაღალდეში (userdir მოდული). მაგალითად, http: // localhost / ~ მომხმარებლის სახელი

ინსტალაცია

Apache-ს დასაყენებლად, გაუშვით ტერმინალში:

sudo apt-get დააინსტალირეთ apache2

პერსონალიზაცია

პარამეტრებში ცვლილებების შესასრულებლად, თქვენ უნდა გადატვირთოთ Apache დემონი: sudo service apache2 გადატვირთეთ

უბუნტუში, საბოლოო კონფიგურაციის ფაილი (apache2.conf) იყოფა რამდენიმე ფაილში, რომლებიც მდებარეობს სხვადასხვა ქვე დირექტორიაში. დამატებითი დეტალები წერია ფაილის კომენტარებში apache2.conf.

/ etc / apache2 / | - apache2.conf | `- ports.conf |- mods-enabled | | - * .ჩატვირთვა | `- * .conf | - conf-ჩართულია | `- * .conf` - sites-ჩართულია `- * .conf

მოდულის პარამეტრები განთავსებულია დირექტორიაში / etc / apache2 / mods-ხელმისაწვდომია... მოდულების დასაკავშირებლად ან გათიშვისთვის (მოდულის პარამეტრები) გამოიყენეთ შესაბამისი a2enmod ან a2dismod ბრძანებები. მოდულის შეერთების მაგალითი:

sudo a2enmod< mod-name>

შეინახეთ თქვენი პარამეტრები დირექტორიაში მდებარე ფაილებში / etc / apache2 / conf-available... თქვენი პარამეტრების გასააქტიურებლად ან გამორთვისთვის გამოიყენეთ შესაბამისი a2enconf ან a2disconf ბრძანებები. ფაილის საკუთარი პარამეტრებით დაკავშირების მაგალითი:

sudo a2enconf< config-name>

ვირტუალური ჰოსტების პარამეტრები უნდა იყოს შენახული დირექტორიაში მდებარე ფაილებში / etc / apache2 / საიტები-ხელმისაწვდომია... ვირტუალური ჰოსტების დასაკავშირებლად გამოიყენეთ შესაბამისი a2ensite ან a2dissite ბრძანებები. ვირტუალური მასპინძლის დაკავშირების მაგალითი:

sudo a2ensite< site-name>

ნაგულისხმევი კოდირება

ნაგულისხმევი კოდირების დასაზუსტებლად გამოიყენეთ AddDefaultCharset დირექტივა ფაილში /etc/apache2/conf-available/charset.conf(ან გააუქმეთ შესაბამისი ხაზი):

AddDefaultCharset UTF-8

ვირტუალური მასპინძლები

ვირტუალური მასპინძლის კონფიგურაციის ფაილები ინახება მასში /და ა.შ/apache2/sites-available/*.conf... Apache– ს უკვე აქვს ერთი ვირტუალური მასპინძელი კონფიგურირებული ნაგულისხმევად. მისი პარამეტრები ფაილშია 000-ნაგულისხმევი. Conf... თქვენ შეგიძლიათ გამოიყენოთ ეს ვირტუალური ჰოსტი, როგორც მაგალითი.

ვირტუალური ჰოსტის კონფიგურაციის მაგალითი:

# მასპინძლის სახელი ServerName host1.server1 # მასპინძელი root DocumentRoot /var/www/host1.server1 # მიეცით უფლება გადაწეროთ ყველა დირექტივა .htaccess AllowOverride All

დაასახელეთ თქვენი hostname host1.server1.conf კონფიგურაციის ფაილი და შეინახეთ.

კონფიგურაციის ფაილის შექმნის შემდეგ, დაამატეთ თქვენი მასპინძლის სახელი / etc / hosts:

127.0.0.1 host1.server1

შექმნილი ვირტუალური მასპინძლის გასააქტიურებლად გამოიყენეთ a2ensite პროგრამა:

sudo a2ensite host1.server1

ჰოსტი გათიშულია a2dissite უტილიტის მსგავსად:

sudo a2dissite host1.server1

მოდულები

mod_userdir

mod_userdir მოდული საშუალებას გაძლევთ გამოიყენოთ დირექტორიები მომხმარებლის სახლის დირექტორიებში ვებ გვერდების შესანახად. ნაგულისხმევად, Apache ეძებს მოთხოვნილ გვერდებს დირექტორიაში ~ / public_html

mkdir ~ / public_html

Mod_userdir გაშვების გასააქტიურებლად:

sudo a2enmod userdir

და დაამატეთ საჭირო მომხმარებელი www-მონაცემთა ჯგუფს:

sudo adduser $ USER www- მონაცემები

შემდეგ გადატვირთეთ Apache:

გვერდები ხელმისაწვდომი იქნება http: // localhost / ~ მომხმარებლის სახელი, სადაც მომხმარებლის სახელი არის მომხმარებლის სახელი.

CGI

თუ გსურთ სერვერზე cgi სკრიპტების გაშვება, დააკავშირეთ cgi მოდული ბრძანებით

sudo a2enmod cgi

ნაგულისხმევად, cgi სკრიპტები განთავსებულია დირექტორიაში / usr / lib / cgi-bin, მაგრამ შეგიძლიათ განათავსოთ ისინი სადმე, ამის მითითებით თქვენს ვირტუალურ ჰოსტის პარამეტრებში, ან გლობალურად ფაილში არსებული ყველა ჰოსტისთვის /etc/apache2/conf-enabled/serve-cgi-bin.conf.

თუ თქვენი სერვერი მუშაობს გარე ქსელში, მაშინ უსაფრთხოების მიზნით მკაცრად რეკომენდირებულია cgi სკრიპტების განთავსება ვირტუალური მასპინძლის ძირეული დირექტორიის გარეთ

HTTP– ის კონფიგურაცია Apache– ში

Apache ვებ სერვერი სრულად უჭერს მხარს HTTPS. HTTPS მხარდაჭერის ჩასართავად უკვე დაინსტალირებული Apache-ზე, თქვენ უნდა გააკეთოთ შემდეგი.

გასაღების და ssl სერთიფიკატის გენერირება

ხელმოწერილი სერთიფიკატების გამოყენება, პასიური მოსმენისგან დაცვის მიუხედავად, არ იძლევა კლიენტებს გარანტიას, რომ სერვერი არის ზუსტად ის სერვერი, რაც მათ სჭირდებათ. თვით ხელმოწერილი სერთიფიკატების უპირატესობა ის არის, რომ ისინი უფასოა. სერტიფიკატის ხელმოწერილი სერტიფიკატი ღირს ფული.

გასაღების და სერთიფიკატის შესაქმნელად შეიყვანეთ ბრძანება:

Openssl მოთხოვნა -ახალი -x509 -დღიანი 30 -გასული server.key -out server.pem

ჩვენ ვპასუხობთ კითხვას "შეიყვანეთ PEM პაროლი:" პაროლით, დაადასტურეთ და დაიმახსოვრეთ.

ჩვენ ვპასუხობთ ყველა მომდევნო კითხვას თვითნებურად, თქვენ შეგიძლიათ უბრალოდ დააჭიროთ Enter- ს, ეთანხმებით შემოთავაზებულ ვარიანტებს, მხოლოდ კითხვაზე "საერთო სახელი (მაგ., თქვენი სახელი):" ჩვენ ვპასუხობთ იმ საიტის სახელს, რომლისთვისაც ჩვენ ვქმნით სერთიფიკატს, მაგალითად www.example.com.

ყველა კითხვაზე პასუხის გაცემის შემდეგ დირექტორიაში უნდა გამოჩნდეს ორი ახალი ფაილი - server.pem (key) და server.crt (სერთიფიკატი).

გენერირებული გასაღების გამოსაყენებლად, თქვენ უნდა იცოდეთ ჩვენ მიერ შეყვანილი პაროლი და Apache მოგვმართავს ჩატვირთვის დროს, მაგრამ რატომ გვჭირდება დემონების დამატებითი კითხვები? :) ამიტომ, ჩვენ ამოვიღებთ პაროლს გასაღებიდან:

cp server.key (, .orig) openssl rsa -in server.key.orig -out server.key rm server.key.orig

მოდით გადავაკოპიროთ ისინი / etc / ssl და მივცეთ ადმინისტრატორისათვის გასაღები ფაილის მხოლოდ წაკითხვის ნებართვები:

sudo cp server.pem / etc / ssl / certs / sudo cp server.key / etc / ssl / private / sudo chmod 0600 / etc / ssl / private / server.key

Apache კონფიგურაცია

ჯერ უნდა გააქტიურო mod_ssl:

sudo a2enmod ssl

და შემდეგ ჩართეთ ნაგულისხმევი HTTPS საიტის პარამეტრები:

sudo a2ensite ნაგულისხმევი-ssl

ახლა თქვენ უნდა შეცვალოთ ფაილი ნაგულისხმევი HTTPS საიტის პარამეტრებით, მიუთითოთ მასში თქვენი სერთიფიკატების გზები. თავად ფაილს ჰქვია / etc / apache2 / sites-enabled / default-ssl (ან /etc/apache2/sites-enabled/default-ssl.conf).

SSLE ძრავა ჩართულია

ხაზის დამატება

SSL პროტოკოლი ყველა -SSLv2

არ დაუშვას ძველი SSLv2 პროტოკოლის გამოყენება.

# საჯარო სერვერის სერთიფიკატი SSLCertificateFile /etc/ssl/certs/server.pem # სერვერის პირადი გასაღები SSLCertificateKeyFile /etc/ssl/private/server.key

ახლა უბრალოდ გადატვირთეთ Apache:

sudo სერვისი apache2 გადატვირთვა

და თუ ყველა პარამეტრი სწორად არის მითითებული, თქვენი საიტები ხელმისაწვდომი გახდება HTTPS-ის საშუალებით.

HTTPS პროტოკოლი მუშაობს 443 პორტზე, ასე რომ, თუ სერვერი დგას კარიბჭის უკან, მაშინ თქვენ უნდა გადააგზავნოთ ეს პორტი მასზე.

HTTP მოთხოვნების გადამისამართება HTTPS-ზე

თუ გსურთ აუკრძალოთ HTTP- ის გამოყენება, მაშინ ყველაზე გონივრული იქნება ყველა HTTP მოთხოვნის გადამისამართება გვერდებზე მათ HTTPS მისამართზე. მოდით გავაკეთოთ ეს mod_alias– ით. თუ ის არ არის ჩართული, ჩართეთ:

sudo a2enmod alias sudo სერვისი apache2 გადატვირთვა

შემდეგ ჩვენ ვცვლით ფაილს / etc / apache2 / sites-enabled / 000-default, რომელიც პასუხისმგებელია HTTP მოთხოვნების ნაგულისხმევ ვირტუალურ მასპინძელზე. დაამატეთ დირექტივა ამ ფაილს

გადამისამართება/https://example.com/

ამავდროულად, დირექტორიას ყველა პარამეტრი შეიძლება წაიშალოს, რადგან HTTP-ის საშუალებით მაინც ვერ მოხვდებით თქვენს საიტებზე.

ესე იგი, ახლა ისევ გადატვირთეთ Apache და დარწმუნდით, რომ HTTP-ით შესვლისას ავტომატურად გადამისამართდებით HTTPS გვერდზე.

Apache– ის კონფიგურაციის 4 ძირითადი მიდგომა არსებობს:

  1. შედგენა / მონტაჟი: წყაროდან შენობა საშუალებას გაძლევთ შეარჩიოთ საჭირო მოდულები, დააყენოთ საჭირო დროშები, ბილიკები და ა.
  2. ბრძანების ხაზის პარამეტრები: საშუალებას გაძლევთ დააკონფიგურიროთ Apache გაშვებისას.
  3. გლობალური კონფიგურაციის ფაილები: მთავარ ფაილს ნაგულისხმევად ჰქვია httpd.conf.
  4. ლოკალური კონფიგურაციის ფაილები: გამოყენებით .htaccess.

Httpd.conf ფაილში არსებული კონფიგურაციის დირექტივები შეიძლება დაიყოს 3 კატეგორიად:

  1. დირექტივები, რომლებიც აკონტროლებენ საერთო სამუშაო პროცესს.
  2. ვირტუალური მასპინძლის დირექტივები.
  3. ვირტუალური მასპინძლის პარამეტრები.

პირველი ჯგუფის დირექტივები მოიცავს , , , , , .

ისინი გამოიყენება კონკრეტული ფაილის სტრუქტურასთან ან URL-თან მიმართებაში. პირველ შემთხვევაში ასეა მეორეში - ... Apache– ს შეუძლია ერთდროულად ემსახუროს რამდენიმე ვებსაიტს განსხვავებული სახელებით, განახორციელოს ვირტუალური ჰოსტინგი, რაც ხდება დირექტივის საფუძველზე ... იმისათვის, რომ ცვლილებები შეიტანოს მთავარ კონფიგურაციაში, სერვერი უნდა გადატვირთოთ.

ადგილობრივი კონფიგურაცია ხორციელდება .htaccess- ის საფუძველზე. ამ ფაილის სახელი შეიძლება შეიცვალოს AccessFileName განყოფილებაში. .Htaccess ფაილში ცვლილებები ძალაში შედის დაუყოვნებლივ, გადატვირთვის გარეშე, მისი ეფექტი ვრცელდება იმ დირექტორიაში, სადაც ის მდებარეობს, ყველა ქვე დირექტორიაში დაბლოკილია. .Htaccess– ის გადაჭარბებულმა გამოყენებამ შეიძლება გავლენა იქონიოს სერვერის მუშაობაზე.

ძირითადი კონფიგურაციის httpd.conf შინაარსი შეიძლება დაიყოს 5 ნაწილად:

  1. გლობალური დირექტივები.
  2. - გამოიყენება ვირტუალურ სერვერებზე.
  3. , - გამოიყენება დირექტორიებისთვის.
  4. , - გამოიყენება ფაილებისთვის.
  5. , - ვრცელდება URL- ზე.

დირექტივას შეიძლება ჰქონდეს რამდენიმე პარამეტრი, პარამეტრების ტიპი შეიძლება იყოს განსხვავებული.

თითოეული დირექტივა დამუშავებულია კონკრეტული მოდულის მიხედვით.

მაგალითად, დირექტივა

შემდეგი დირექტივა დამუშავდება mod_env მოდულით, დაყენდება გარემოს ცვლადი:



ადგილობრივი .htaccess ფაილის შინაარსი ასევე შეიძლება დაიყოს 5 განყოფილებად:

  1. AuthConfig - ავტორიზაციის კონტროლი.
  2. ლიმიტები - წვდომის კონტროლი.
  3. პარამეტრები - კონკრეტული დირექტორიის პარამეტრები.
  4. FileInfo - დოკუმენტების ატრიბუტების დაყენება.
  5. ინდექსები - კატალოგების ინდექსირება.

უბუნტუში, apache მდებარეობს / etc / apache2 და, კონფიგურაციის ფაილების გარდა, შეიცავს "საიტებისთვის ხელმისაწვდომ" და "საიტებზე ჩართულ" დირექტორიებს. პირველი დირექტორია შეიცავს საიტების სიას, რომლებიც ხელმისაწვდომია სერვერზე, ხოლო მეორე შეიცავს მათ, რომლებსაც სერვერი ემსახურება. ეს შესაძლებელს ხდის სწრაფად დაამატოთ და წაშალოთ საიტები, რომლებსაც სერვერი მოემსახურება, მათ ფიზიკურად DocumentRoot– დან ამოღების გარეშე. გარდა ამისა, სხვა კონფიგურაციის ფაილების დამატება შესაძლებელია Include განცხადების გამოყენებით და დაჯგუფების სიმბოლოების გამოყენება შესაძლებელია მრავალი კონფიგურაციის ფაილის დასამატებლად. ნებისმიერი ინსტრუქცია შეიძლება დაემატოს რომელიმე ამ კონფიგურაციის ფაილს. სერვერი ასევე კითხულობს დოკუმენტის მიმის ტიპების შემცველ ფაილებს; ფაილის სახელი მოცემულია TypesConfig განცხადებით, როგორც წესი,

httpd.conf - Apache სერვერის კონფიგურაცია

Apache არის კონფიგურირებული დირექტივების განთავსებით უბრალო ტექსტური კონფიგურაციის ფაილებში. Apache სერვერის მთავარი კონფიგურაციის ფაილი არის - httpd.conf.
სხვა კონფიგურაციის ფაილების დამატება შესაძლებელია Include დირექტივის გამოყენებით. ნებისმიერი დირექტივის დაყენება შესაძლებელია რომელიმე ამ კონფიგურაციის ფაილში.
Apache 2.4 კონფიგურირებულია ქვედირექტორიაში მდებარე ფაილებით (ნაგულისხმევად) - კონფ(C: \ Program Files \ Apache Software Foundation \ Apache2.4 \ conf \). ეს არის იგივე ფაილები, რომლებიც გამოიყენება OS Unix– ის კონფიგურაციისთვის, მაგრამ არსებობს რამდენიმე დირექტივა სპეციალურად Windows– ისთვის.

მთავარ Apache HTTP 2.4 სერვერის კონფიგურაციის ფაილი ჩვეულებრივ არის დასახელებული - httpd.conf.

ის შეიცავს დირექტივებს და პარამეტრებს, რომლებიც აკონტროლებენ ვებ სერვერის, ვირტუალური სერვერების მუშაობას და ყველაფერს პროგრამული მოდულები Apache 2.4. ... Apache არის მოდულური სერვერი. ეს ნიშნავს, რომ მხოლოდ ძირითადი ფუნქციონალობა შედის მთავარ სერვერზე. ფუნქციების გაფართოება, შესაძლებელია დინამიურად დატვირთული მოდულებით. კონფიგურაციის ფაილები შეიცავს ერთ დირექტივას თითო ხაზზე. უკანა ხაზი "\" შეიძლება გამოყენებულ იქნას, როგორც ბოლო სიმბოლო სტრიქონზე, რათა მიუთითოს, რომ დირექტივა გრძელდება შემდეგი ხაზი... არ უნდა იყოს სხვა სიმბოლოები ან სივრცეები უკანა ხაზსა და ხაზის ბოლოს შორის. კონფიგურაციის ფაილების დირექტივები უმნიშვნელოა, მაგრამ დირექტიული არგუმენტები ხშირად დიდი მნიშვნელობისაა. ხაზები, რომლებიც იწყება "#" სიმბოლოთი, განიხილება კომენტარები და იგნორირებულია. კომენტარები არ შეიძლება იყოს ხაზში კონფიგურაციის დირექტივის შემდეგ. დირექტივამდე ცარიელი ხაზები და სივრცეები იგნორირებულია.

დირექტივაარის კონფიგურაციის ბრძანება, რომელიც აკონტროლებს Apache სერვერის ქცევის ერთ ან მეტ ასპექტს.
ძირითადი კონფიგურაციის ფაილებში განთავსებული დირექტივები არის სერვერის მასშტაბით .

კონფიგურაციის ფაილების სინტაქსის შეცდომების შესამოწმებლად გამოიყენეთ ბრძანება httpd.exe -t.

Apache 2.4– ის დაყენებისას შემოღებულ იქნა შემდეგი:

ქსელის დომენში - server-apache24.ru
სერვერის სახელით - www.server-apache24.ru
ადმინისტრატორის ელფოსტის მისამართში - [ელფოსტა დაცულია]

აქედან გამომდინარე, server-apache24.ru- იქნება Apache სერვერის მთავარი საიტის სახელი.

Apache სერვერის მთავარი საიტი კონფიგურებულია ფაილში - httpd.conf.

ცვლილებების შეტანა Apache სერვერის კონფიგურაციის ფაილში - httpd.conf

დომენის სახელის მიხედვით Apache სერვერის მთავარ საიტზე შესასვლელად - server-apache24.ruშექმენით დირექტორია დისკზე - C: \ server-apache24.ru

server-apache24.ru

  • C: \ server-apache24.ru
    • მორები
      • access.log
      • შეცდომა
    • www
      • index.html

დირექტორია სერვერი-apache24.ru

დისკის ძირში C:უნდა შეიქმნას დირექტორია server-apache24.ru
მასში აუცილებლადუნდა იყოს საქაღალდეები:
მორები"ცარიელი" ფაილებით access.logდა შეცდომა.ლოგი
და
wwwფაილით index.html

იხილეთ httpd.conf ფაილში ხაზები -
209 სერვერი ადმინისტრატორი [ელფოსტა დაცულია]
218 სერვერის სახელი www.server-apache24.ru:80
243 DocumentRoot "C: /server-apache24.ru/www"
245

httpd.conf - Apache 2.4 სერვერის კონფიგურაცია

httpd.conf.
ძირითადი კონფიგურაციის ფაილის დირექტივები ვრცელდება მთელ სერვერზე

ყველა ჩანაწერი, გარდა წითლად მონიშნულისა, უნდა იყოს კომენტარირებული. ხაზები, რომლებიც იწყება პერსონაჟით "#" არის კომენტარები.

# # ეს არის მთავარი Apache HTTP სერვერის კონფიგურაციის ფაილი. ის შეიცავს # კონფიგურაციის დირექტივას, რომელიც აძლევს სერვერს მის მითითებებს. # იხილეთ დეტალური ინფორმაციისთვის. # კერძოდ, იხილეთ # # თითოეული კონფიგურაციის დირექტივის განხილვისთვის. # # უბრალოდ არ წაიკითხოთ ინსტრუქციები აქ იმის გაგების გარეშე, # რას აკეთებენ ისინი. ისინი "აქ მხოლოდ მინიშნებების ან შეხსენების სახით არიან. თუ არ ხართ დარწმუნებული # გაიარეთ კონსულტაცია ონლაინ დოკუმენტებთან. თქვენ გაფრთხილებული ხართ. # # კონფიგურაცია და logfile სახელები: თუ თქვენ მიერ მითითებული ფაილების სახელები მრავალი # სერვერის საკონტროლო ფაილებისთვის იწყება " / "(ან" დისკზე: / "Win32-ისთვის), # სერვერი გამოიყენებს ამ აშკარა გზას. თუ ფაილის სახელები * არა * იწყება #-ით "/", ServerRoot-ის მნიშვნელობა წინასწარ არის დაყენებული - ასე რომ, "logs / access_log" # ერთად ServerRoot დაყენებული "/ usr / local / apache2" იქნება ინტერპრეტირებული # სერვერის მიერ, როგორც " / usr / local / apache2 / logs / access_log ", ხოლო" / logs / access_log "# იქნება ინტერპრეტირებული როგორც" / ჟურნალები / access_log ". # # შენიშვნა: სადაც მითითებულია ფაილების სახელები, თქვენ უნდა გამოიყენოთ შემდგომი დახრილი # უკანა ხაზების ნაცვლად (მაგალითად, "c: / apache" ნაცვლად "c: \ apache"). # თუ დისკის ასო გამოტოვებულია, დისკი, რომელზეც httpd.exe მდებარეობს #, გამოყენებული იქნება ნაგულისხმევად. მიზანშეწონილია, რომ ყოველთვის მიაწოდოთ # მკაფიო დისკის ასო აბსოლუტურ ბილიკებს, რათა თავიდან აიცილოთ დაბნეულობა. # # ServerRoot: დირექტორიის ხის ზედა ნაწილი, რომლის ქვეშ ინახება სერვერის # კონფიგურაცია, შეცდომა და ჟურნალის ფაილები. # # ნუ დაამატებთ დახრილს დირექტორიის ბილიკის ბოლოს. თუ თქვენ მიუთითებთ # ServerRoot- ზე არა -ლოკალური დისკი, აუცილებლად მიუთითეთ ლოკალური დისკი # Mutex დირექტივაზე, თუ ფაილზე დაფუძნებული mutexes გამოიყენება. თუ გსურთ გააზიაროთ # იგივე ServerRoot მრავალი httpd დემონისთვის, თქვენ უნდა შეცვალოთ მინიმუმ # PidFile. # ServerRoot "C: / Program Files / Apache Software Foundation / Apache2.4" # # Mutex: გაძლევთ საშუალებას დააყენოთ mutex მექანიზმი და mutex ფაილის დირექტორია # ცალკეული მუტექსებისთვის, ან შეცვალოთ გლობალური ნაგულისხმევი # # კომენტარის დატოვება და შეცვალოთ დირექტორია, თუ mutexes არის ფაილზე დაფუძნებული და ნაგულისხმევი # mutex ფაილის დირექტორია არ არის ლოკალურ დისკზე ან არ არის შესაფერისი სხვა # მიზეზის გამო. პორტები, ნაგულისხმევის ნაცვლად. აგრეთვე იხილეთ # დირექტივა. # # შეცვალეთ ეს სპეციალურ IP მისამართებზე მოსასმენად როგორც ნაჩვენებია ქვემოთ, რათა # თავიდან აიცილოს Apache-ს ყველა შეკრულ IP მისამართზე. # # მოუსმინეთ 12.34.56.78:80 მოუსმინეთ 80 # # დინამიური გაზიარებული ობიექტი (DSO) მხარდაჭერა # # იმისათვის, რომ შეძლოთ გამოიყენოთ მოდულის ფუნქციონირება, რომელიც აშენებულია როგორც DSO თქვენ # უნდა განათავსოთ შესაბამისი `LoadModule 'ხაზები ამ ადგილას ასე რომ, მასში შემავალი # დირექტივები რეალურად ხელმისაწვდომია _ მათ გამოყენებამდე. # სტატიკურად შედგენილი მოდულები (ის, რომლებიც ჩამოთვლილია `httpd -l“-ით) არ სჭირდებათ # აქ ჩატვირთვა. LoadModule alias_module modules / mod_alias.so LoadModule allowmethods_module modules / mod_allowmethods.so LoadModule asis_module modules / mod_asis.so LoadModule auth_basic_module modules / mod_auth_basic.so #LoadModule auth_digest_module modules / mod_auth_digest.so #LoadModule authn_anon_module modules / mod_authn_anon.so LoadModule authn_core_module modules / mod_authn_core. ასე #LoadModule authn_dbd_module modules / mod_authn_dbd.so #LoadModule authn_dbm_module modules / mod_authn_dbm.so LoadModule authn_file_module modules / mod_authn_file.so #LoadModule authn_socache_module modules / mod_authn_socache.so #LoadModule authnz_ldap_module modules / mod_authnz_ldap.so LoadModule authz_core_module modules / mod_authz_core.so #LoadModule authz_dbd_module თვ Dules / mod_authz_dbd.so #LoadModule authz_dbm_module modules / mod_authz_dbm.so LoadModule authz_groupfile_module modules / mod_authz_groupfile.so LoadModule authz_host_module modules / mod_authz_host.so #LoadModule authz_owner_module modules / mod_authz_owner.so LoadModule authz_user_module modules / mod_authz_user.so LoadModule autoindex_module modules / mod_autoindex.so # LoadModule ბუფერული_მოდულის მოდულები / mod_buffer.so #LoadModule cache_module modules / mod_cache.so #LoadModule cache_disk_module modules / mod_cache_disk.so #LoadModule cern_meta_module modules / mod_cern_model.modu_model.modu.model.modu.model.modu.model.modu.model.model.modu.model.modu.model.model.model.model.model.model.model.model.model.moda.moda.moda.moda.moda.moda. მოდული #LoadModule dav_fs_module modules / mod_dav_fs.so #LoadModule dav_lock_module modules / mod_dav_lock.so #LoadModule dbd_module modules / mod_dbd.so modules so #LoadModule d umpio_module modules / mod_dumpio.so LoadModule env_module modules / mod_env.so #LoadModule expires_module modules / mod_expires.so #LoadModule ext_filter_module modules / mod_ext_filter.so #LoadModule file_cache_modile modules / modo მოდულები mod_headers.so #LoadModule heartbeat_module modules / mod_heartbeat.so #LoadModule heartmonitor_module modules / mod_heartmonitor.so #LoadModule ident_module modules / mod_ident.so LoadModule imagemap_module modules / mod_imagefoam.so LoadModule module include_module.so LoadMod modules include_module.so LoadMod modules include_module.so module_modbodio_ module #LoadModule lbmethod_byrequests_module modules / mod_lbmethod_byrequests.so #LoadModule lbmethod_bytraffic_module modules / mod_lbmethod_bytraffic.so #LoadModule lbmethod_heartbeat_module modules / mod_lbmethod_bytraffic_module. მოდულები / mod_ldap.so #LoadModule logio_module modules / mod_logio.so LoadModule log_config_module modules / mod_log_config.so #LoadModule log_debug_module modules / mod_log_debug.so #LoadModule log_forensic_module modules / mod_logodime მოდულები ასე #LoadModule mime_magic_module modules / mod_mime_magic.so LoadModule negotiation_module modules / mod_negotiation. ასე #LoadModule proxy_module modules / mod_proxy.so #LoadModule proxy_ajp_module modules / mod_proxy_ajp.so #LoadModule proxy_balancer_module modules / mod_proxy_balancer.so #LoadModule proxy_connect_module modules / mod_proxy_connect.so #LoadModule proxy_express_module modules / mod_proxy_express.so #LoadModule proxy_fcgi_module modules / mod_proxy_fcgi.so # LoadModule proxy_ftp_module modules / mod_proxy_ftp.so #LoadModule proxy_html_module modules / mod_proxy_html.so #LoadModule proxy_http_module modules / mod_proxy_http.so #LoadModule proxy_dule_scgi modules. #LoadModule ratelimit_module modules / mod_ratelimit.so #LoadModule reflector_module modules / mod_reflector.so #LoadModule remoteip_module modules / mod_remoteip.so #LoadModule request_module modules / mod_remoteip.so #LoadModule modules / module_module / module_module / module LoadModule session_cookie_module modules / mod_session_cookie.so #LoadModule session_crypto_module modules / mod_session_crypto.so #LoadModule session_dbd_module modules / mod_session_dbd.so LoadModule setenvif_module modules / mod_setenvif.so #LoadModule slotmem_plain_module modules / mod_slotmem_plain.so #LoadModule slotmem_shm_module modules / mod_slotmem_shm.so #LoadModule socache_dbm_module მოდულები / mod_socache_dbm.so #LoadModule socache_memcache_module modules / mod_socache_memocache მოდულები PHP ინსტალაციებიწაშალეთ კომენტარები Load, Add, PHP lines #LoadModule php7_module "c: /php7/php7apache2_4.dll" #AddHandler application / x-httpd-php .php #დააკონფიგურირეთ გზა php.ini #PHPIniDir "c: / php7" # # თუ გსურთ, რომ httpd გაშვებული იყოს როგორც სხვა მომხმარებელი ან ჯგუფი, თქვენ უნდა გაუშვათ # httpd როგორც root თავდაპირველად და ის შეიცვლება. # # მომხმარებელი / ჯგუფი: მომხმარებლის სახელი (ან # რიცხვი) მომხმარებლის / ჯგუფისათვის httpd როგორც გასაშვებად. # როგორც წესი, კარგი პრაქტიკაა შექმნათ თავდადებული მომხმარებელი და ჯგუფი # გაშვებული httpd, როგორც სისტემური სერვისების უმეტესობისას. # მომხმარებლის დემონი ჯგუფის დემონი # "მთავარი" სერვერის კონფიგურაცია # # ამ განყოფილების დირექტივები ადგენს "მთავარი" # სერვერის მიერ გამოყენებულ მნიშვნელობებს, რომელიც პასუხობს ნებისმიერ მოთხოვნას, რომელიც არ არის დამუშავებული # განმარტებით. ეს მნიშვნელობები ასევე მიუთითეთ ნაგულისხმევი # ნებისმიერი კონტეინერისთვის, რომელიც შეგიძლიათ განსაზღვროთ ფაილში მოგვიანებით. : თქვენი მისამართი, სადაც სერვერთან დაკავშირებული პრობლემები უნდა იყოს # ელექტრონული ფოსტით. ეს მისამართი გამოჩნდება სერვერის მიერ გენერირებულ გვერდებზე, როგორიცაა # შეცდომის დოკუმენტები. მაგ. [ელფოსტა დაცულია]# სერვერი ადმინისტრატორი [ელფოსტა დაცულია]# # ServerName იძლევა სახელს და პორტს, რომელსაც სერვერი იყენებს საკუთარი თავის იდენტიფიცირებისთვის. # ეს ხშირად შეიძლება ავტომატურად განისაზღვროს, მაგრამ ჩვენ გირჩევთ მიუთითოთ # ეს ცალსახად, რათა თავიდან აიცილოთ პრობლემები გაშვებისას. # # თუ თქვენს ჰოსტს არ აქვს რეგისტრირებული DNS სახელი, შეიყვანეთ მისი IP მისამართი აქ. თქვენ უნდა # მკაფიოდ დაუშვათ წვდომა ვებ შინაარსის დირექტორიებზე სხვა # ბლოკებში ქვემოთ. # AllowOverride none Require all dened # # გაითვალისწინეთ, რომ ამ მომენტიდან თქვენ კონკრეტულად უნდა დაუშვათ # კონკრეტული ფუნქციის ჩართვა - ასე რომ, თუ რაღაც "არ მუშაობს ისე, როგორც # მოელით, დარწმუნდით, რომ თქვენ სპეციალურად ჩართოთ ის # ქვემოთ. # # # DocumentRoot: დირექტორია, საიდანაც თქვენ მოემსახურებით თქვენს # დოკუმენტებს. ნაგულისხმევად, ყველა მოთხოვნა ამოღებულია ამ დირექტორიიდან, მაგრამ # სიმბოლური ბმულები და მეტსახელები შეიძლება გამოყენებულ იქნას სხვა ადგილების მითითებისთვის. # # DocumentRoot "C: / პროგრამა ფაილები / Apache პროგრამული უზრუნველყოფის ფონდი / Apache2.4 / htdocs "იყო DocumentRoot" C: /server-apache24.ru/www " # იყო # # პარამეტრების დირექტივის შესაძლო მნიშვნელობებია" არა "," ყველა ", # ან ნებისმიერი კომბინაცია: # ინდექსები მოიცავს FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # გაითვალისწინეთ, რომ "MultiViews" უნდა იყოს დასახელებული * ცალსახად * --- " პარამეტრები ყველა "# არ მოგცემთ # # პარამეტრების დირექტივა არის რთული და მნიშვნელოვანი. დამატებითი ინფორმაციისთვის იხილეთ # //httpd.apache.org/docs/2.4/mod/core.html#options #. # # პარამეტრები ინდექსები FollowSymLinks იყო პარამეტრები ინდექსები მოიცავს FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews # # AllowOverride აკონტროლებს რა დირექტივები შეიძლება განთავსდეს .htaccess ფაილებში. # ეს შეიძლება იყოს "ყველა", "არცერთი" ან საკვანძო სიტყვების ნებისმიერი კომბინაცია: # AllowOverride FileInfo AuthConfig Limit # # AllowOverride None was AllowOverride All # # აკონტროლებს, ვის შეუძლია ამ სერვერიდან ნივთების მიღება. # მოითხოვეთ ყველა გაცემული AddHandler სერვერის მიერ გაანალიზებული .shtml .shtm .html .htm # # DirectoryIndex: ადგენს ფაილს, რომელსაც Apache მოემსახურება, თუ დირექტორია # მოთხოვნილია. # DirectIIndex index.html # # შემდეგი სტრიქონები ხელს უშლის .htaccess და .htpasswd ფაილებს # კლიენტების მიერ # ნახვად. # მოითხოვეთ ყველა უარყოფილი # # ErrorLog: შეცდომის ჟურნალის ადგილმდებარეობის შესახებ. # თუ თქვენ არ მიუთითებთ ErrorLog დირექტივას # კონტეინერში, ამ ვირტუალურ მასპინძელთან დაკავშირებული შეცდომის შეტყობინებები აქ # დარეგისტრირდება. თუ თქვენ * do * განსაზღვრავთ შეცდომის ჟურნალის ფაილს # კონტეინერისთვის, ეს ჰოსტის შეცდომები დარეგისტრირებული იქნება იქ და არა აქ. error.log # # LogLevel: აკონტროლეთ error_log– ში შესული შეტყობინებების რაოდენობა. # შესაძლო მნიშვნელობებია: გამართვა, ინფორმაცია, შეტყობინება, გაფრთხილება, შეცდომა, კრიტი, # გაფრთხილება, გაჩენა. # LogLevel გაფრთხილება # # შემდეგი დირექტივები განსაზღვრავს ზოგიერთი ფორმატის მეტსახელი # CustomLog დირექტივით გამოსაყენებლად (იხ. ქვემოთ). # LogFormat "% h% l% u% t \"% r \ "%> s% b \"% (რეფერერი) i \ "\"% ( მომხმარებელი-აგენტი) მე \ "" კომბინირებული LogFormat "% h% l% u% t \"% r \ "%> s% b" საერთო # თქვენ უნდა ჩართოთ mod_logio.c% I და% O LogFormat "% h% l% u% t \ "% r \"%> s% b \ "% (რეფერერი) i \" \ "% (მომხმარებლის აგენტი) i \"% I% O "კომბინირებული # # მდებარეობა და ფორმატი წვდომის ჟურნალის ფაილი (საერთო ჟურნალის ფაილის ფორმატი). მასში და * არა * ამ ფაილში. # # CustomLog "logs / access.log" გავრცელებული იყო CustomLog c: /server-apache24.ru/logs/access.log საერთო # # თუ გირჩევნიათ logfile წვდომის, აგენტის და რეფერენტის ინფორმაციით # (Combined Logfile Format) თქვენ შეგიძლიათ გამოიყენოთ შემდეგი დირექტივა. # #CustomLog "logs / access.log" კომბინირებული # # გადამისამართება: საშუალებას გაძლევთ უთხრათ კლიენტებს დოკუმენტების შესახებ, რომლებიც # ადრე არსებობდა თქვენი სერვერის სახელების სივრცეში, მაგრამ აღარ არსებობს. კლიენტი # გააკეთებს ახალ მოთხოვნას დოკუმენტზე მის ახალ ადგილას. # მაგალითი: # გადამისამართება მუდმივი / foo //www.server-apache24.ru/bar # # მეტსახელი: ასახავს ვებ ბილიკებს ფაილური სისტემის ბილიკებში და გამოიყენება # კონტენტზე წვდომისთვის, რომელიც არ არის DocumentRoot-ის ქვეშ. # მაგალითი: # Alias ​​/ webpath / full / filesystem / path # # თუ თქვენ ჩართავთ ბილიკს / on / webpath მაშინ სერვერი # მოითხოვს, რომ ის იყოს URL- ში. თქვენ ასევე მოგიწევთ # მოგაწოდოთ განყოფილება, რომელიც საშუალებას მისცემს წვდომას # ფაილური სისტემის გზაზე. # # ScriptAlias: ეს აკონტროლებს რომელი დირექტორიები შეიცავს სერვერის სკრიპტებს. # ScriptAliases არსებითად იგივეა, რაც მეტსახელები, გარდა იმისა, რომ # დოკუმენტი სამიზნე დირექტორიაში განიხილება როგორც აპლიკაციები და # გაშვებულია სერვერის მიერ მოთხოვნისას და არა როგორც დოკუმენტები, რომლებიც გაგზავნილია # კლიენტზე. "/" უკან დახევის შესახებ იგივე წესები ვრცელდება ScriptAlias# დირექტივებზე, როგორც Alias. # # ScriptAlias ​​/ cgi-bin / "C: / პროგრამის ფაილები / Apache Software Foundation / Apache2.4 / cgi-bin /" იყო ScriptAlias ​​/ cgi-bin / "C: /server-apache24.ru/cgi -bin/" # # ScriptSock: ხრახნილ სერვერებზე მიუთითეთ გზა UNIX # სოკეტისკენ, რომელიც გამოიყენება mod_cgid-ის CGI დემონთან კომუნიკაციისთვის. # #Scriptsock cgisock # # "C: / პროგრამის ფაილები / Apache Software Foundation / Apache2.4 / cgi-bin" უნდა შეიცვალოს რაც არ უნდა იყოს თქვენი ScriptAliased # CGI დირექტორია, თუ თქვენ გაქვთ ის კონფიგურირებული. # # AllowOverride არცერთი ვარიანტი არცერთი არ მოითხოვს ყველა მინიჭებულ # # TypesConfig მიუთითებს ფაილზე, რომელიც შეიცავს mappings სიას # ფაილის სახელის გაფართოებიდან MIME- ტიპამდე. # TypesConfig conf / mime.types # # AddType გაძლევთ საშუალებას დაამატოთ ან უარყოთ MIME კონფიგურაციის # ფაილი, რომელიც მითითებულია TypesConfig ფაილის კონკრეტული ტიპებისთვის. # #AddType განაცხადის / x-gzip .tgz # # AddEncoding საშუალებას გაძლევთ გქონდეთ გარკვეული ბრაუზერების არაკომპრესირებული # ინფორმაცია. შენიშვნა: ყველა ბრაუზერი ამას არ უჭერს მხარს. # #AddEncoding x-compress .Z #AddEncoding x-gzip .gz .tgz # # თუ ზემოთ მითითებულია AddEncoding დირექტივები, მაშინ თქვენ # ალბათ უნდა განსაზღვროთ ეს გაფართოებები მედიის ტიპების მითითებისთვის: # AddType პროგრამა / x- შეკუმშვა. Z AddType პროგრამა / x-gzip .gz .tgz AddType პროგრამა / x-httpd-php .php # # AddHandler გაძლევთ საშუალებას შეიტანოთ გარკვეული ფაილის გაფართოებები "დამმუშავებლებზე": # ქმედებები, რომლებიც არ არის დაკავშირებული ფაილის ტიპთან. ეს შეიძლება იყოს ჩაშენებული სერვერზე # ან დაემატოს Action დირექტივას (იხ. ქვემოთ) # # CGI სკრიპტების გამოსაყენებლად ScriptAliased დირექტორიების გარეთ: # (ასევე დაგჭირდებათ "ExecCGI" დაამატოთ "Options" დირექტივაში. ) # #AddHandler cgi-script .cgi AddHandler cgi-script .cgi .pl # ტიპის რუქებისთვის (მოლაპარაკებული რესურსები): #AddHandler ტიპის რუქა var # # ფილტრები საშუალებას გაძლევთ დამუშავდეთ შინაარსი კლიენტამდე გაგზავნამდე. # # .Shtml ფაილები სერვერისათვის მოიცავს (SSI): # (თქვენ ასევე უნდა დაამატოთ "მოიცავს" "პარამეტრების" დირექტივას.) # AddType ტექსტი / html .shtml AddOutputFilter INCLUDES .shtml # # mod_mime_magic მოდული საშუალებას აძლევს სერვერს გამოიყენოს სხვადასხვა მინიშნებები თავად ფაილის # შიგთავსიდან მისი ტიპის დასადგენად. MIMEMagicFile # დირექტივა ეუბნება მოდულს, თუ სად მდებარეობს მინიშნების განმარტებები. # #MIMEMagicFile conf / magic # # დააკონფიგურიროთ შეცდომის პასუხები სამი გემოვნებით: # 1) ჩვეულებრივი ტექსტი 2) ლოკალური გადამისამართებები 3) გარე გადამისამართებები # # რამდენიმე მაგალითი: #ErrorDocument 500 "სერვერმა გააკეთა boo boo." #ErrorDocument 404 /missing.html #ErrorDocument 404 "/cgi-bin/missing_handler.pl" #ErrorDocument 402 //www.server-apache24.ru/subscription_info.html ErrorDocument 404 C: /server-apache24.ru/www/404error .html შეცდომის დოკუმენტი 500 C: /server-apache24.ru/www/500error.html # # MaxRanges: დიაპაზონების მაქსიმალური რაოდენობა მოთხოვნაში # მთელი რესურსის დაბრუნებამდე, ან ერთ-ერთი სპეციალური # მნიშვნელობა "ნაგულისხმევი", " არცერთი" ან "შეუზღუდავი". # ნაგულისხმევი პარამეტრია 200 დიაპაზონის მიღება. #MaxRanges შეუზღუდავი # # ჩართვა MAP და ჩართვა გაგზავნის ფაილი: სისტემებზე, რომლებიც მას მხარს უჭერენ, # მეხსიერების რუქა ან sendfile syscall შეიძლება გამოყენებულ იქნას # ფაილის მიწოდებისთვის. ეს ჩვეულებრივ აუმჯობესებს სერვერის მუშაობას, მაგრამ უნდა # გამორთული იყოს ქსელში დამონტაჟებული # ფაილური სისტემებიდან მომსახურების გაწევისას, ან თუ ამ ფუნქციების მხარდაჭერა სხვაგვარად # გატეხილია თქვენს სისტემაში. # ნაგულისხმევი: EnableMMAP ჩართვა, EnableSendfile Off # #EnableMMAP გამორთული #EnableSendfile ჩართულია # დამატებითი კონფიგურაცია # # კონფიგურაციის ფაილები conf / extra / დირექტორიაში შეიძლება # იყოს ჩართული დამატებითი ფუნქციების დასამატებლად ან # სერვერის ნაგულისხმევი კონფიგურაციის შესაცვლელად, ან თქვენ შეგიძლიათ უბრალოდ დააკოპიროთ მათი შინაარსი აქ და შეცვალოთ # საჭიროებისამებრ. # Server-pool მართვა (MPM სპეციფიკური) #Include conf / extra / httpd-mpm.conf # მრავალენოვანი შეცდომის შეტყობინებები Include conf / extra / httpd-multilang-errordoc.conf # Fancy directory listings include conf / extra / httpd-autoindex .conf # ენის პარამეტრები ჩართეთ conf / extra / httpd-languages.conf # მომხმარებლის სახლის დირექტორიები ჩართეთ conf / extra / httpd-userdir.conf # რეალურ დროში ინფორმაცია მოთხოვნაზე და კონფიგურაციაზე # ჩართეთ conf / extra / httpd-info.conf # ვირტუალური ჰოსტები მოიცავს conf / extra / httpd-vhosts.conf # ლოკალური წვდომა Apache HTTP სერვერის სახელმძღვანელოზე #Include conf / extra / httpd-manual.conf # განაწილებული ავტორიზაცია და ვერსიები (WebDAV) #Include conf / extra / httpd-dav. conf # სხვადასხვა ნაგულისხმევი პარამეტრები ჩართეთ conf / extra / httpd-default.conf # კონფიგურაცია mod_proxy_html HTML4 / XHTML1 გასაგებად ჩართეთ conf / extra / proxy-html.conf # უსაფრთხო (SSL / TLS) კავშირები # ჩართეთ conf / extra / httpd-ssl .conf # # შენიშვნა: შემდეგი უნდა იყოს მხარდაჭერილი # SSL– ის დაწყების გარეშე პლატფორმებზე / dev / random ექვივალენტი # სტატიკურად შედგენილი mod_ssl. # SSLRandomSeed გაშვების ჩაშენებული SSLRandomSeed დაკავშირება ჩაშენებული # # გააუქმეთ ქვემოთ მოცემული კომენტარი, რათა გაუმკლავდეთ მომხმარებლის აგენტებს, რომლებიც განზრახ # არღვევენ ღია სტანდარტებს DNT-ის ბოროტად გამოყენებით (DNT * უნდა იყოს * კონკრეტული # საბოლოო მომხმარებლის არჩევანი) # # #BrowserMatch "MSIE 10.0;" bad_DNT # # #RequestHeader unset DNT env = bad_DNT #


ცვლილებები .
ბრძანება - httpd.exe -k გადატვირთვა, საშუალებას გაძლევთ დაასრულოთ Apache სერვერის მიერ შესრულებული ნებისმიერი ოპერაცია და აიძულებს Apache-ს ხელახლა წაიკითხოს კონფიგურაციის ფაილი.


Apache სერვერის ინსტალაციის შეცდომების აღმოფხვრა

Apache-ს გააჩნია პროგრამა, სახელწოდებით Apache Service Monitor. მასთან ერთად, თქვენ შეგიძლიათ ნახოთ და მართოთ ყველა დაინსტალირებული Apache სერვისის მდგომარეობა ქსელში არსებულ ნებისმიერ კომპიუტერზე.

გადატვირთეთ Apache 2.4

რადგანაც ცვლილებებიმთავარ კონფიგურაციის ფაილებში ის ძალაში შედის მხოლოდ Apache სერვერის დაწყების ან გადატვირთვისას,
თქვენ უნდა გადატვირთოთ სერვერი.

ApacheMonitor

ApacheMonitor ხატის ნახვა შესაძლებელია ღილაკზე დაჭერით - აჩვენეთ ფარული ხატები

ორჯერ დააწკაპუნეთ მაუსის მარცხენა ღილაკს ხატულაზე Apache სერვისის მონიტორი.

თქვენ შეგიძლიათ გაუშვათ Apache სერვერი ღილაკზე დაჭერით Რესტარტი
Apache სერვისის მონიტორის ფანჯარაში.
ან - გაჩერდიდა მერე - დაწყება.

თუ თქვენ შეიტანეთ ცვლილებები მხოლოდ httpd.conf ფაილში,

შემდეგ ბრაუზერის მისამართის ზოლში შეყვანით - localhostან - 127.0.0.1 ,
თქვენ ნახავთ გვერდს - შეცდომა 403 (შეცდომა 403).

წვდომა აკრძალულია!

თქვენ არ გაქვთ მოთხოვნილ დირექტორიაში წვდომის უფლება. არ არსებობს ინდექსის დოკუმენტი ან დირექტორია დაცულია წაკითხვისგან.
თუ ფიქრობთ, რომ ეს სერვერის შეცდომაა, გთხოვთ, დაუკავშირდეთ ვებმასტერს.

შეცდომა 403

127.0.0.1
Apache / 2.4.4 (Win64)

წვდომა უარყოფილია!

თქვენ არ გაქვთ მოთხოვნილ დირექტორიაში წვდომის უფლება. ინდექსის დოკუმენტი აკლია ან დირექტორია დაცულია წაკითხვისგან.
თუ ფიქრობთ, რომ ეს სერვერის შეცდომაა, გთხოვთ, დაუკავშირდეთ თქვენს ვებმასტერს.

შეცდომა 403

შედით ადმინისტრატორის უფლებებით ბრძანების ხაზში - ადმინისტრატორი - ბრძანების ხაზი
და შეიყვანე:
"C: \ Program Files \ Apache Software Foundation \ Apache2.4 \ bin \ httpd.exe" 2> C: \ errapache.txt

Microsoft Windows (გ) Microsoft Corporation 2016. ყველა უფლება დაცულია. C: \ Windows \ system32> "C: \ Program Files \ Apache Software Foundation \ Apache2.4 \ bin \ httpd.exe" 2> C: \ errapache.txt C: \ Windows \ system32>

დისკზე C:/ფაილი შეიქმნება errapache.txt


AH00112: გაფრთხილება: DocumentRoot არ არსებობს AH00112: გაფრთხილება: DocumentRoot არ არსებობს (OS 10048) ჩვეულებრივ დასაშვებია სოკეტის მისამართის (პროტოკოლის / ქსელის მისამართის / პორტის) მხოლოდ ერთი გამოყენება. : AH00072: make_sock: ვერ დაუკავშირდა მისამართს [::]: 80 (OS 10048) ჩვეულებრივ ნებადართულია სოკეტის მისამართის მხოლოდ ერთი გამოყენება (პროტოკოლი / ქსელის მისამართი / პორტი). : AH00072: make_sock: ვერ უკავშირდება მისამართს 0.0.0.0:80 AH00451: არ არის მოსასმენი სოკეტი, დახურულია AH00015: ვერ ხერხდება ჟურნალების გახსნა

AH00112: გაფრთხილება:
C: / პროგრამის ფაილები / Apache პროგრამული უზრუნველყოფის ფონდი / Apache2.4 / docs / dummy-host.server-apache24.ru
C: / პროგრამის ფაილები / Apache პროგრამული უზრუნველყოფის ფონდი / Apache2.4 / docs / dummy-host2.server-apache24.ru
ისინი არ არსებობენ.

მაგრამ მთავარია OS 10048 შეცდომები:

ვერ მივაწერე მისამართი [::]: 80)
ვერ უკავშირდება მისამართს 0.0.0.0:80

შეიყვანეთ ბრძანების სტრიქონი და შეიყვანეთ:
netstat -aon

ადმინისტრატორი: ბრძანების ხაზი

Microsoft Windows (გ) Microsoft Corporation 2016. ყველა უფლება დაცულია. C: \ Windows \ system32> netstat -aonაქტიური კავშირები სახელი ლოკალური მისამართი გარე მისამართი მდგომარეობა PID TCP 0.0.0.0:80 0.0.0.0 0 LISTENING 1612 TCP [::]: 80 [::]: 0 LISTENING 1612 TCP 127.0.0.1:49601 TCP 0.0.0.1:49601 0.0.0.0.1:49601 TCP 0.0.0.0.1:49601 09.0.0.1:49601 09601. 127.0.0.1:49694 127.0.0.1:49693 დაარსდა 5612 TCP 127.0.0.1:51341 0.0.0.0 0 LISISTING 3920 TCP 127.0.0.1:52006 0.0.0.0 0 LISTENING 3708 TCP 192.168.0.100:139 0.0.0.0 0 LISTENING 4 TCP 192. .0.100: 51330 34.226.135.28:443 დაარსდა 1232 TCP 192.168.0.100:51345 52.196.85.70:443 დაარსდა 1232 TCP 192.168.0.100:52796 88.212.253.127:21 ESTABLISHED 1128 .128.233: 443 CLOSE_WAIT 3712 TCP 192.168.0.100:53192 151.101.112.64:443 CLOSE_WAIT 3712 TCP 192.168.0.100:53223 23.61.217.175:443 CLOSE_WAIT 3712 TCP 192.168.0.100:53230 185.29.133.52:443 CLOSE_WAIT 3712 TCP 192.168.0.100:53246 2.18.74.149:443 CLOSE_WAIT 3712 TCP 192.168.0.100:53271 52.205.235.141:443 ESTABLISHED

პროცესის ID, უფრო ხშირად ცნობილი როგორც PID, უნიკალური ნომერია. სისტემაში გაშვებულ თითოეულ პროცესს აქვს უნიკალური იდენტიფიკატორი.
TCP 0.0.0.0:80 0.0.0.0 0 მოსმენა 1612
TCP [::]: 80 [::]: 0 LISTENING 1612

Გახსენი Პროცესების ადმინისტრატორი

მხოლოდ Apache2.4 სერვისს აქვს PID - 1612

კატალოგში C: / პროგრამის ფაილები / Apache პროგრამული უზრუნველყოფის ფონდი / Apache2.4 / conf / extra /
გახსენით ფაილი Notepad-ში - httpd-vhosts.conf

სანამ რაიმე ცვლილებას შეიტანთ, გთხოვთ შექმნათ სარეზერვო ფაილი - httpd-vhosts.conf.

ჩანაცვლება VirtualHost სექციებში
ჩართული

httpd-vhosts.conf - Apache 2.4 სერვერის კონფიგურაციის ფაილის შინაარსი

# ვირტუალური მასპინძლები # # საჭირო მოდულები: mod_log_config # თუ გსურთ შეინარჩუნოთ რამოდენიმე დომენი / სახელის სახელი თქვენს # აპარატზე, შეგიძლიათ დააყენოთ VirtualHost კონტეინერები მათთვის. კონფიგურაციების უმეტესობა # იყენებს მხოლოდ სახელზე დაფუძნებულ ვირტუალურ მასპინძლებს, ასე რომ სერვერს არ სჭირდება ფიქრი # IP მისამართებზე. ეს მითითებულია ვარსკვლავებით ქვემოთ მოცემულ დირექტივებში. # # გთხოვთ იხილოთ დოკუმენტაცია #

კატალოგში C: \ Windows \ System32 \ drivers \ etc \
გახსენით ფაილი Notepad-ში - მასპინძლები
და დაამატე ხაზი მას:

127.0.0.1 ლოკალური ჰოსტი www.server-apache24.ru server-apache24.ru

დაიწყეთ Apache სერვერი ღილაკზე დაჭერით Რესტარტი
Apache Service Monitor-ში.

შეიყვანეთ ბრაუზერის მისამართების ზოლში - server-apache24.ru
და ნახავთ თქვენს მიერ შექმნილ Apache2 სერვერის მთავარი საიტის ინდექს გვერდს.

საიტის ინდექსი უნდა იყოს განთავსებული www ქვე დირექტორიაში (C: \ server-apache24.ru \ www \)

Apache 2.4 სერვერის დაყენების შემდეგ შეიყვანეთ ბრძანების სტრიქონი და შეიყვანეთ ბრძანებები:

httpd.exe -t

თქვენ მიიღებთ ორ გაფრთხილებას.

ადმინისტრატორი: ბრძანების ხაზი

Microsoft Windows (გ) Microsoft Corporation 2016. ყველა უფლება დაცულია. C: \ Windows \ system32> cd C: \ Program Files \ Apache Software Foundation \ Apache2.4 \ bin \ C: \ Program Files \ Apache Software Foundation \ Apache2.4 \ bin> httpd.exe -t AH00112: გაფრთხილება: DocumentRoot არ არსებობს AH00112: გაფრთხილება: DocumentRoot არ არსებობს სინტაქსი OK C: \ Program Files \ Apache Software Foundation \ Apache2.4 \ bin>

ადრე ჩვენს Linux-ის საფუძვლების სერიაში, ჩვენ განვიხილეთ Apache ვებ სერვერთან მუშაობის საფუძვლები. ეს არის მსოფლიოში ყველაზე ფართოდ გამოყენებული ვებ სერვერი ინტერნეტში (2015 წლის ივლისის მონაცემებით, Apache– ს ჰქონდა 38%, IIS– ს ჰქონდა 26%და Nginx– ს ჰქონდა 15%). ამიტომ, რაც უფრო მეტს იცნობთ მის შესახებ და ესმით როგორ მუშაობს, მით უფრო მეტ წარმატებას მიაღწევთ მისი გატეხვისას.

დღეს ჩვენ განვიხილავთ Apache სერვერის კონფიგურაციის საფუძვლებს. როგორც ადრე დავწერეთ, Linux-ზე ან Unix-ზე თითქმის ყველა აპლიკაციის კონფიგურაცია და კონფიგურაცია ხდება კონფიგურაციის ფაილების მეშვეობით, რომლებიც უბრალო ტექსტია. არც Apache არის გამონაკლისი აქ. ამიტომ, ამ სტატიაში ჩვენ ყურადღებას გავამახვილებთ apache2.conf კონფიგურაციის ფაილზე, რომელიც მდებარეობს / etc / apache2 დირექტორიაში.

ნაბიჯი 1. გაუშვით Apache2

დავიწყოთ Apache2– ის გაშვებით. ჩვენ ამას გავაკეთებთ Kali გრაფიკული გარსის მეშვეობით, გადადით Applications -> Kali Linux -> System Services -> HTTP -> apache2 start, როგორც ნაჩვენებია ქვემოთ მოცემულ ეკრანის სურათზე.

ან გაუშვით ის ბრძანების სტრიქონში ტერმინალში შემდეგი ბრძანების აკრეფით

Kali> სერვისი apache2 დაწყება

ეს იწყებს Apache2 დემონს და ამიერიდან, ვებ სერვერი უნდა ემსახურებოდეს ჩვენს შინაარსს ინტერნეტში.

ნაბიჯი 2. შეამოწმეთ სერვერის ჯანმრთელობა

იმის შესამოწმებლად, მუშაობს თუ არა ჩვენი Apache სერვერი, მოდით გადავიდეთ localhost– ზე ან ბრაუზერში 127.0.0.1. თუ თქვენ ხედავთ გვერდს, როგორც ქვემოთ მოცემულ ეკრანის სურათზე, მაშინ ეს ნიშნავს, რომ სერვერი კარგად მუშაობს!

ნაბიჯი 3. გახსენით კონფიგურაციის ფაილი

Apache– ის კონფიგურაციისთვის, ჩვენ უნდა მივიდეთ / etc / apache2 დირექტორიაში.

Kali> cd / etc / apache2

მოდით გამოვყოთ ამ დირექტორიაში არსებული ყველა ფაილის სია:

კალი> ლს -ლ

როგორც ხედავთ, ამ დირექტორიაში არის რამდენიმე ფაილი და ქვე დირექტორიები. ჯერჯერობით ჩვენ მხოლოდ apache2.conf ფაილი გვაინტერესებს, მაგრამ გაითვალისწინეთ, რომ გვაქვს ports.conf ფაილი და sites_available საქაღალდე, რომელიც ცოტა მოგვიანებით დაგვჭირდება და არის კიდევ რამდენიმე კონფიგურაციის ფაილი და საქაღალდე.

ჩვენ შეგვიძლია გავხსნათ apache2.conf ნებისმიერ ტექსტურ რედაქტორში, მაგრამ აქ ჩვენ ვიყენებთ Leafpad- ს. ფაილის გახსნა შესაძლებელია მხოლოდ კონსოლში აკრეფით:

კალი> leafpad /etc/apache2/apache2.conf

როგორც ხედავთ, ეს ბრძანება ხსნის ტექსტურ ფაილს ყველა კონფიგურაციის ინფორმაციით ჩვენი Apache ვებ სერვერისთვის. სერვერის დასაყენებლად, ჩვენ ახლა შევეცდებით გაგიცნოთ ამ ფაილის ყველა ძირითად პუნქტს.

ნაბიჯი 4. ServerRoot

მოდით გადავიდეთ ქვემოთ, გამოტოვოთ ყველა კომენტარი და ვიპოვოთ ხაზი # 70, სადაც იწყება გლობალური პარამეტრების განყოფილება. აქ ჩვენ ვხედავთ ServerRoot პარამეტრებს. ეს არის დირექტორიის ხის ზედა ნაწილი, სადაც Apache სერვერი ინახავს ყველა სერვერთან დაკავშირებულ ფაილს. ხაზი # 84 განსაზღვრავს ServerRoot- ს. ჩვენ შეგვიძლია უბრალოდ გამოვხატოთ ეს ხაზი, თუ გვსურს / etc / apache2 დავაყენოთ როგორც ServerRoot. ჩვენ გირჩევთ ამის გაკეთებას.

ნაბიჯი 5. დროის ამოწურვა

შემდეგ განყოფილებაში გვაქვს ცვლადები, რომლებიც განსაზღვრავენ პარამეტრის მნიშვნელობებს: Timeout, KeepAlive, MaxKeepAliveRequests და KeepAliveTimeout.

  • Დროის ამოწურვა: ეს არის დრო, რომლის განმავლობაშიც სერვერმა უნდა შეასრულოს მომხმარებლის მოთხოვნა. მისი ნაგულისხმევი მნიშვნელობაა 300, რაც იმას ნიშნავს, რომ სერვერმა უნდა დაამუშაოს თითოეული მოთხოვნა 300 წამის ან 5 წუთის განმავლობაში. ეს ნამდვილად ძალიან გრძელია და შეიძლება დაყენდეს 30 წამზე.
  • შემორჩენილი: ეს ნიშნავს, რომ სერვერი ცოცხალი რჩება (ინარჩუნებს კავშირს) ერთიდაიგივე კლიენტის მრავალჯერადი მოთხოვნისათვის. ნაგულისხმევი არის ჩართული. ეს ნიშნავს, რომ კლიენტებს არ სჭირდებათ ახალი კავშირის შექმნა ჩვენი სერვერის ყოველი მოთხოვნისთვის. ეს მიდგომა დაზოგავს სერვერის რესურსებს.
  • MaxKeepAliveRequests: ეს მნიშვნელობა განსაზღვრავს წამების მაქსიმალურ რაოდენობას ერთ კლიენტთან დამყარებული კავშირიდან მიღებულ მოთხოვნებს შორის. თუ ამ მნიშვნელობას დავაყენებთ 0-ზე, მაშინ დროის რაოდენობა შეუზღუდავია.
  • KeepAliveTimeout: ეს არის დროის ინტერვალი მოთხოვნათა შორის იმის დასადგენად, არის თუ არა კავშირი ცოცხალი (დამყარებულია).

ჩვენ გირჩევთ, რომ დატოვოთ ყველა ნაგულისხმევი მნიშვნელობა, გარდა "ვადის ამოწურვის" პარამეტრისა. თითოეული სიტუაცია განსხვავებულია და შეიძლება დაგჭირდეთ ამ ნაგულისხმევი პარამეტრების შეცვლა, რათა სერვერის მოქმედება თქვენს გარემოზე მორგდეს.

ნაბიჯი 6. Apache2 მომხმარებელი და ჯგუფები

მოდით გადავახვიოთ რამდენიმე სტრიქონი apache2.conf-ში, სანამ არ მივიღებთ #177 სტრიქონს. აქ შეგვიძლია დავაყენოთ Apache2 მომხმარებელი და ჯგუფები. გაითვალისწინეთ კომენტარი # 177 სტრიქონზე. მასში ნათქვამია, რომ ჩვენ შეგვიძლია დავაყენოთ ეს ცვლადები envvars ფაილში (გარემოს ცვლადები). ჩვენ დავტოვებთ ამ კითხვას მომავალი სტატიებისთვის, მაგრამ ჯერჯერობით, უბრალოდ გაითვალისწინეთ, რომ მომხმარებელიც და ჯგუფიც ცვლადებია, რომლებიც მოდის / etc / apache2 / envvars– დან.

დაბოლოს, ბოლო განყოფილება, რომელსაც დიდი მნიშვნელობა აქვს Apache უსაფრთხოებისთვის, იწყება #193 ხაზიდან. ეს განყოფილება უზრუნველყოფს, რომ ვებ კლიენტებს არ ჰქონდეთ წვდომა .htaccess და .htpasswd ფაილებზე.

ნაბიჯი 7. ხე

შემდეგი განყოფილება აღწერს, თუ როგორ მართავს Apache ჟურნალებს (logs).

პირველ ქვეგანყოფილებაში ჩვენ მივმართავთ HostNameLookups პარამეტრს. ეს დირექტივა ეუბნება Apache2– ს უნდა შეასრულოს თუ არა DNS ძებნა, როდესაც ის დაარეგისტრირებს დადგენილ კავშირს. ნაგულისხმევი გამორთვისას, Apache2 ბევრად უკეთესად მუშაობს.

ნაბიჯი 8. ხელმისაწვდომი საიტები

ახლა მოდით შევხედოთ site_available დირექტორია (ხელმისაწვდომი საიტები) და, რაც მთავარია, ფაილს, რომელიც მასში ნაგულისხმევია. მას ხშირად უწოდებენ ნაგულისხმევი ვირტუალური მასპინძლების ფაილს. გახსენით ეს ფაილი კონსოლში აკრეფით:

Kali> leafpad / etc / apache2 / site_available / ნაგულისხმევი

როგორც ხედავთ, ამ ფაილში სამი კრიტიკული სფეროა. პირველი ხაზი განსაზღვრავს რომელ პორტს უსმენს ვებ სერვერი. აქ განსაზღვრულია, რომ ის უსმენს ნებისმიერ პორტს 80 პორტში (*: 80). მეორე ხაზი განსაზღვრავს ელ.ფოსტის მისამართს, რომელზეც უნდა გაიგზავნოს შეტყობინებები სერვერთან დაკავშირებული პრობლემების შემთხვევაში. სტანდარტულად, არის მისამართი. თუ თქვენ ხართ სისტემის ადმინისტრატორი, შეგიძლიათ შეიყვანოთ თქვენი ელ.ფოსტის მისამართი აქ. მესამე ელემენტი შეიძლება იყოს ყველაზე მნიშვნელოვანი - DocumentRoot. ის განსაზღვრავს სად განთავსდება ამ ვირტუალური ჰოსტის შინაარსი, ნაგულისხმევი არის / var / www. ჩვენ გირჩევთ დატოვოთ ყველაფერი ისე, როგორც ეს დეველოპერებმა განსაზღვრეს.

ნაბიჯი 9. პორტები

დაბოლოს, ჩვენ შეგვიძლია კიდევ უფრო დაბლა მივიდეთ apache2.conf ფაილში სტრიქონი # 248 - "include port.conf". ეს დირექტივა უბრალოდ ეუბნება Apache-ს შევიდეს port.conf ფაილში, რათა მოძებნოს პორტები, რომლებზეც უნდა მოუსმინოს.