Віртуальний хостинг дозволяє вер-серверам хостити більше, ніж один веб-сайт на одній машині. Саме так працюють веб-хостинги.
У даному ЯКЦЕ я спробую пояснити, як хостити на на одній машині
кілька сайтів, і отримувати до них доступ не лише за адресою типу
http://localhost/web-site, але й за будь яким, прив’язаним до низ
доменним ім’ям, наприклад, http://www.my-web-site.org.ua/.
Встановлення apache2
sudo apt-get install apache2-common apache2-utils
Налаштування
Відкриємо основний конфіґураційний файл, /etc/apache2/apache2.conf. Пошук за словом virtual приведе нас до наступного рядка:
/etc/apache2/sites-enabled/
Він означає, що коли ми запустимо apache, він прочитає файли у теці /etc/apache2/sites-enabled/. Давайте переглянемо її вміст:
cd /etc/apache2/sites-enabled/
ls -l
total 0
lrwxrwxrwx 1 root root 36 2008-01-07 17:01 000-default -> /etc/apache2/sites-available/default
Щож, це лише посилання на на файл у теці /etc/apache2/sites-enabled/. Ви мали б замислитися над тим, що тут робить посилання. Власне, такий підхід дозволяє вам:
1. мати простий конфіґураційний файл;
2. змінювати або створювати нові хости редагуванням/створенням файлів у /etc/apache2/sites-available;
3. не потрібно перезапускати веб-сервер після блокування одного хосту,
оскільки, для цього достатньо просто видалити посилання у теці /etc/apache2/sites-enabled/ на файл у теці /etc/apache2/sites-available/.
Тепер припустимо, що ви бажаєте прив’язати доменне ім’я
my-web-site.org.ua до конкретного веб-сайту на вашій машині, який
розміщується у теці /var/www/my-web-site/.
Для цього, перше за все, необхідно створити новий в /etc/apache2/sites-available, наприклад, my-web-site.conf:
sudo vim my-web-site.conf
І додати до нього наступні рядки:
ServerAdmin webmaster@localhost
ServerAlias www.my-web-site.org.ua
DocumentRoot /var/www/my-web-site/
#якщо бажаєте використовувати awstats
ScriptAlias /awstats/ /usr/lib/cgi-bin/
#вказуємо власний файл журналу для даного хосту
CustomLog /var/log/apache2/my-web-site.org.ua-access.log combined
Ну ось, ми створили новий віртуальний хост, але він й досі не є
активним/дозволеним. Для цього, як сказано вище, нам всього лиш
потрібно додати посилання на файл /etc/apache2/sites-available/my-web-site.conf. Для цього:
cd /etc/apache2/sites-enabled/
sudo ln -s /etc/apache2/sites-available/my-web-site.conf my-web-site.conf
Тепер apache готовий до перезапуску, однак, спершу ми повинні
повідомити Linux про те, щоб вона шукала хости з адресами
my-web-site.org та www.my-web-site.org.ua не в тенетах, а на локальній
машині. Для цього потрібно відредагувати файл /etc/hosts наступним чином:
127.0.0.1 localhost.localdomain localhost dev.example.com www.dev.example.com
Тепер apache можна сміливо перезапустити:
sudo /etc/init.d/apache2 reload
Для тесту відкрийте свій оглядач тенет (сподіваюся, це не Internet
Explorer ;)), і наберіть адресу http://www.my-web-site.org.ua.
Чому Debian рулить
Зрозуміло, що, якщо ви хостите на одній машині велику кількість
віртуальних веб-хостів, вам здасться морокною робота по їхньому
тимчасовому блокуванню та розблокуванню, тому в Дебіені для цього є дві
прості, але дуже зручні утилітки.
Для того, що заблокувати віртуальний хост:
sudo a2ensite mysiteavailable-site
І для його розблокування:
sudo a2dissite mysiteavailable-site
Де mymysiteavailable-site — ім’я віртуального хосту, яке відповідає імені файлу у теці /etc/apache2/sites-available/, наприклад, my-web-site.conf
Немає коментарів:
Дописати коментар