Настройване на виртуален хост в Apache
Настройването на виртуален хост в уеб сървъра на Apache не е точно тема за PHP, но много PHP разработчици използват уеб сървъра на Apache, за да тестват уеб страници на своята машина за разработка.
Има много информация как да направите това, но първия път, когато го опитах, установих, че съществуващата информация е по-скоро объркваща, отколкото полезна. Надяваме се, че тази страница ще опрости малко процеса. Моля, имайте предвид, че тази информация се отнася за настройка на виртуален хост в Apache на машина с Windows за използване като локален сървър за тестване. Настройването на виртуален хост за действителен производствен сървър е извън обхвата на тази статия и трябва да се обърнете към официалната документация на Apache за това.
Първият файл, който ще трябва да редактираме, е файлът httpd.conf на Apache. Ако сте инсталирали софтуера Apache, използвайки изтеглянето от сайта на Apacheweb, трябва да имате елемент от менюто, който ще отвори този файл за редактиране. Щракнете върху Старт->Програми->Apache HTTP сървър->Конфигуриране на Apache сървър->Редактиране на конфигурационния файл на Apache httpd.conf. Ако нямате този елемент от стартовото меню, стартирайте вашия текстов редактор и отворете файла. Той ще бъде в подпапка с име conf на вашата папка Apache. Например моята е тук:
C:\Program Files\Apache Group\Apache\conf\httpd.conf
Имайте предвид, че Apache промени предпочитания метод за конфигуриране на Apacheserver с пускането на Apache 2.2. За версии, започващи с 2.2, предпочитаната конфигурация е по-модулна. Настройването на виртуален хост, както е описано тук, ще продължи да работи с по-новите версии, но за да следвате модулния подход, редактирането на httpd.conf е само в коментар (премахнете # от началото на следния ред:
#Include conf/extra/httpd-vhosts.conf
Всичко останало се въвежда във файла httpd-vhosts.conf, който ще се намира в допълнителната папка под папката, съдържаща httpd.conf. Както споменахме, описаният тук метод все още ще работи.
Версия 2.2 също промени някои от параметрите за конфигурация на защитата по подразбиране. За да настроите нещата така, както ще ви трябват, ще трябва да добавите следния блок към вашия httpd.conf файл , точно над виртуалните хостове или към вашия файл httpd-vhosts.conf:
Order Deny,AllowAllow from allГорното предполага, че използвате структурата на директорията, описана по-долу. Коригирайте това, ако е необходимо, за да отразява действителната ви директория.
Сега за този пример ще приемем, че вашите уеб сайтове се намират в папка на вашето C устройство, наречена Моите сайтове. Всеки уеб сайт има собствена подпапка в тази папка, като тази:
C:\My Sites\Site1 C:\My Sites\Site2Кажете също за този пример, че домейните за двата сайта са site1.com и site2.com. Ще настроим виртуални хостове за тези два сайта, използвайки имената на домейни site1.local и site2.local. По този начин ще можете да разберете с един поглед дали разглеждате сайта на живо или вашия сайт за тестване.
В действителност можете да наричате домейните както искате. Можете лесно да ги наименувате microsoft.monkeybutt и ibm.greentambourine. Избирам да използвам конвенцията за използване на едно и също име на домейн заедно с .local TLD, за да опростя и минимизирам въвеждането, необходимо за превключване между сайта на живо и сайта за тестване. Единственият важен момент, и то наистина важен, е НИКОГА да не използвате действително, истинско, живо име на домейн. Ако сте използвали например site1.com за локален виртуален хост, никога няма да можете действително да достигнете до живия сайт. Всички заявки за живия сайт ще бъдат пренасочени към вашия локален виртуален хост.
Отидете най-отдолу на вашия файл httpd.conf във вашия текстов редактор. Трябва да видите пример за виртуален хост там. Всеки ред от този пример ще започва с октоторп (#). Знакът octothorpe маркира реда като коментар, така че примерът не се изпълнява. Добавете следните редове под този пример:
NameVirtualHost 127.0.0.1 DocumentRoot "C:\My Sites\Site1" ServerName site1.local DocumentRoot "C:\My Sites\Site2" ServerName site2.localТова е всичко, което трябва да направите! Запазете и затворете файла. Това ще каже на сървъра Apache всичко, което трябва да знае, за да може да обслужва страниците, използвайки имената на домейни site1.local и site2.local. Една забележка е, че в горния пример имаме интервал в пътя. Поради това поставяме кавички около основната директория на документа. Ако пътят няма интервали init, не цитирайте пътя. Ако директорията, използвана за вашите сайтове, беше например MySites вместо My Sites, основният ред на документа ще изглежда по следния начин:
DocumentRoot C:\MySites\Site1Очевидно е, че ако сте въвели http://site1.local в браузъра си, той няма да бъде намерен от DNS сървъра на вашия интернет доставчик. След това ще редактирате друг файл, за да заобиколите това. Вторият файл, който трябва да редактирате, се нарича hosts, без файлово разширение. Това е системен файл на Windows и ще ви позволи да въведете конкретни адреси за определени домейни, вместо да използвате DNS търсене. Нормалното местоположение за този файл е:
C:\WINNT\system32\drivers\etc\hosts
или
C:\Windows\system32\drivers\etc\hosts
Ако не го намерите там, потърсете в директорията на Windows думата hosts в името на файла. Файлът, който искате, се нарича hosts, без файлово разширение. Правилният файл ще започне със следните редове:
# Copyright (c) 1993-1999 Microsoft Corp.## Това е примерен HOSTS файл, използван от Microsoft TCP/IP за Windows.Още веднъж, в този файл знакът octothorpe е маркер за коментар. Редовете, започващи с него, са коментари. По всяка вероятност там няма да има нищо, освен коментари. Ако има други некоментирани записи, оставете ги на мира. Просто отидете в края на файла, под всички коментари и всички съществуващи записи и добавете следните два реда:
127.0.0.1 site1.local127.0.0.1 site2.localТова е всичко, което трябва да направите там. Запазете и затворете файла hosts.
Почти сте готови! Единственото оставащо нещо, което трябва да направите, е да рестартирате сървъра Apache. Трябва да направите това, защото Apache чете конфигурационния файл само при първото стартиране. Щракнете върху Старт->Програми->Apache HTTP сървър->ControlApache сървър->Рестартиране. Ако нямате този елемент от менюто, отворете командния ред и преминете към директорията на Apache, въведете следната команда и натиснете клавиша Enter:
apache -w -n "Apache" -k рестартиране
Трябва да видите съобщение като това:
Услугата Apache се рестартира. Услугата Apache се рестартира.
Това е! Вие сте готови! Затворете командния прозорец и стартирайте вашия уеб браузър. В адресната лента на браузъра въведете http://site1.local и натиснете клавиша Enter. Сега трябва да видите вашето локално копие на вашия site1.
Добре, сега ще спомена едно много малко, но вероятно важно предупреждение. Когато създавате виртуални хостове по този начин, http://localhost по подразбиране вече няма да работи. В много случаи това е маловажно. Въпреки това, ако използвате нещо като phpMyAdmin, пак ще ви трябва. Решението за това е да се създаде един допълнителен виртуален хост, наречен "localhost", който сочи към оригиналната папка htdocs на Apache. Може да изглежда нещо подобно:
DocumentRoot C:\Apache\htdocs ServerName localhostНе забравяйте да включите този допълнителен виртуален хост, когато редактирате файла Windowshosts.
Имайте предвид, че има други незадължителни настройки, които можете да използвате, за да конфигурирате виртуалния хост. Горното използва само два реда и това е всичко, което е наистина необходимо. Можете да прочетете за други опции в Apachedocumentation. Имайте предвид, че тази връзка е към уеб сайта на Apache и ще отвори нов прозорец на браузъра.
Надявам се, че това е по-скоро полезно, отколкото объркващо. Късмет!
PREV: Elite Dangerous - Кодове за грешки и корекции
NEXT: Не може да се свърже със сървър на база данни (mysql workbench)