Форум программистов, компьютерный форум, киберфорум
Apache, htaccess
Войти
Регистрация
Восстановить пароль
Блоги Сообщество Поиск Заказать работу  
 
Рейтинг 4.78/9: Рейтинг темы: голосов - 9, средняя оценка - 4.78
0 / 0 / 0
Регистрация: 12.11.2019
Сообщений: 41

Как сконфигурировать апач, чтоб подключить несколько сайтов, на локальной машине? (Виртуальные хосты)

17.02.2020, 06:52. Показов 2074. Ответов 9
Метки нет (Все метки)

Студворк — интернет-сервис помощи студентам
Здравствуйте. Я понимаю что это делается через виртуальные хосты. но те пояснения которые находил, они как то комкано рассказывают, или рассчитаны на людей с опытом, а просто и доходчиво может кто то пояснить?
Хочу получить следующее обращение к разным сайтам.
site1.localhost
site2.localhost
site3.localhost

Помогите пожалуйста, Спасибо)

PS apache 2.4 / Debian
0
cpp_developer
Эксперт
20123 / 5690 / 1417
Регистрация: 09.04.2010
Сообщений: 22,546
Блог
17.02.2020, 06:52
Ответы с готовыми решениями:

Необходимо настроить виртуальные хосты для доступа из интернета и локальной сети
Здровствуйте все. Помогите пожалуйста разобраться с проблемой. Ситуация следующая, есть компьютер под Windows 7 x64. К интернету...

Как правильно настроить работу двух сайтов на 1 локальной машине (1 IP) средствами IIS
Как правильно настроить работу двух сайтов на 1 локальной машине (1 IP) средствами IIS? По умолчанию сайт1 идет на 80 порте. Разнести...

Как автоматически добавить виртуальные хосты в днс роутера?
Добрый день. Требуется что бы dns роутера по запросу *.webserver.lan отправлял на webserver.lan. Зарание благодарю.

9
Невнимательный
 Аватар для ft4l
3107 / 1281 / 358
Регистрация: 08.02.2013
Сообщений: 7,496
Записей в блоге: 2
17.02.2020, 17:31
Цитата Сообщение от Kondor1075 Посмотреть сообщение
как то комкано рассказывают,
Ну так у всех свои пути/способы ...
Кто-то вообще предпочитает всё в одном httpd.conf держать, под виндой ))

я, как начинающий в этих линуксах, сделал просто...
создал из под root каталог /var/xxx ,
сделал ему chown xxx /var/xxx
Чтобы складывать там всякое, в тч папки с сайтами
создал например такой /var/xxx/vhost.conf
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
#### Access to dirs
<Directory /var/xxx/www-*>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require local
</Directory>
 
<Directory /var/xxx/www-*/cgi>
    Options +ExecCGI
    AddHandler cgi-script cgi pl
    Require local
</Directory>
 
 
####    php
<Virtualhost *:80>
    ServerName php.xx
    DocumentRoot /var/xxx/www-php
    DirectoryIndex index.php index.html
    <Directory /var/xxx/www-php>
#       Require all granted
#   Options Indexes FollowSymLinks
    <FilesMatch \.php$>
        SetHandler "proxy:unix:/var/run/php/php7.3-fpm.sock|fcgi://localhost/"
        #       Else we can just use a tcp socket:
        #   SetHandler "proxy:fcgi://127.0.0.1:9000"
        </FilesMatch>
    </Directory>
    <LocationMatch "/status">
            ############ в /etc/php/7.3/fpm/pool.d/www.conf
            ############ разкоментировал  pm.status_path = /status
            ############ systemctl restart php7.3-fpm
            ############ systemctl restart apace2
            Require local
            ProxyPass unix:/var/run/php/php7.3-fpm.sock|fcgi://localhost/status
    </LocationMatch>
</VirtualHost>
Потом если посмотреть ls -l /etc/apache2/sites-enabled
то можно увидеть что-то типа
Code
1
 000-default.conf -> ../sites-available/000-default.conf
в этом файле уже есть один <VirtualHost *:80>
у меня, например, кроме запросов с Host: php.xx
Должно всё работать как для того VirtualHost
а для самодельного сделал
ln -s /var/xxx/vhost.conf /etc/apache2/sites-enabled/
## a2enmod alias proxy_fcgi
systemctl restart apache2

вроде из под root тоже , не помню...
Ну типа если папки с сайтами не /var/xxx/www-php а www-site1 , www-site2. www-site3
там соответственно Ваши пути/имена и Ваши site1.localhost где ServerName
ServerAlias тоже можно прикрутить для всяких www.site1.localhost
Соответственно нужны три блока <VirtualHost *:80>
Возможно удобнее три файла, или больше , но пока обхожусь одним файлом не несколько хостов
Ось Xubuntu .... в Debian возможно отличаются пути к конфигам
Не комкано никак не получится ))

Добавлено через 16 минут
и забыл
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
xxx@xx:~$ cat /etc/hosts
127.0.0.1   localhost
127.0.1.1   xx
127.0.1.1       php.xx
127.0.1.1       pl.xx
127.0.0.1   xx.xx
 
# The following lines are desirable for IPv6 capable hosts
::1     ip6-localhost ip6-loopback
fe00::0 ip6-localnet
ff00::0 ip6-mcastprefix
ff02::1 ip6-allnodes
ff02::2 ip6-allrouters
Добавлено через 9 минут
Нашёл опечатку
0
1306 / 998 / 232
Регистрация: 01.10.2018
Сообщений: 3,886
18.02.2020, 13:27
Несколько сайтов на одной виртуальной машине

Создаете отдельный файл для каждого виртуального хоста в sites-available, добавляете/убираете ссылки на них в sites-enabled при помощи a2ensite/a2dissite с указанием имени соответствующего конфигурационного файла без расширения в качестве параметра.

Добавлено через 10 минут
Для локальной машины и разрешения (непубличных) имен также добавьте соответствующие строки в файл hosts, о чем выше написали: https://losst.ru/fajl-hosts-v-linux
1
0 / 0 / 0
Регистрация: 12.11.2019
Сообщений: 41
20.02.2020, 22:37  [ТС]
Спасибо за ответы, еще практический вопрос
Конфиг
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
<VirtualHost 127.0.0.1:88>
        ServerName test
        ServerAlias test
    AddDefaultCharset UTF8
        UseCanonicalName Off
        ServerSignature Off
            <Directory /home/test>
                Require local
            </Directory>
 
            PerlOptions +Parent
            PerlSwitches -I/home/test
 
            PerlRequire test.pm
 
            <Location /home/test>
                              SetHandler perl-script
                              PerlHandler test
                  Options +ExecCGI
            </Location>
</VirtualHost>
Перл
Perl
1
2
3
4
5
6
7
8
9
10
11
12
13
package test;
use strict;
use warnings;
 
use utf8;
use CGI qw(-utf8);
 
use if $ENV{MOD_PERL}, 'Apache2::compat';
 
print "Content-type: text/html\n\n";
print "Поехали!";
 
1;
Выдает ошибку
Use of uninitialized value $uri in concatenation (.) or string at /usr/lib/x86_64-linux-gnu/perl5/5.28/Apache2/Status.pm line 133.\n

Это второй сайт на локальной машине. В hosts все прописано

либо я туплю под вечер, либо... что то упустил, Что кто скажет?
0
Невнимательный
 Аватар для ft4l
3107 / 1281 / 358
Регистрация: 08.02.2013
Сообщений: 7,496
Записей в блоге: 2
21.02.2020, 15:56
Цитата Сообщение от Kondor1075 Посмотреть сообщение
PerlHandler test
Code
1
2
3
4
5
6
7
8
9
10
11
12
13
xxx@xx MINGW32 ~
$ cat <<\X | perl -M5.010 -Mtest
 
say $_."\t\t".$INC{$_} for sort keys %INC;
 
X
 
Carp.pm         C:/X/site/lib/Carp.pm
Exporter.pm             C:/X/site/lib/Exporter.pm
overloading.pm          C:/X/site/lib/overloading.pm
strict.pm               C:/X/site/lib/strict.pm
test.pm         C:/X/site/lib/test.pm
warnings.pm             C:/X/site/lib/warnings.pm
Windows .... на самом деле имя файла Test.pm
наверно зависит от типа файловой системы...

Цитата Сообщение от Kondor1075 Посмотреть сообщение
uninitialized value $uri in concatenation (.) or string at .../Status.pm line 133.\n
Perl
1
2
3
        $r->print(
            map { qq[<a href="$uri?$_">$status{$_}</a><br />\n] } sort { lc $a cmp lc $b } keys %status
        );
Похоже на то что это при обработке чего-то типа
<Location /perl-status>
или точнее
PerlResponseHandler Apache2::Status

Цитата Сообщение от Kondor1075 Посмотреть сообщение
127.0.0.1:88
в адресной строке что-то типа ://test:88/home/test ?
<Location> Directive
Description: Applies the enclosed directives only to matching URLs
Syntax: <Location URL-path
Context: server config, virtual host
Status: Core
Module: core
Добавлено через 6 минут
Syntax: <Location URL-path|URL> ... </Location>
Внутри [TABLE][/TABLE] порезало
0
0 / 0 / 0
Регистрация: 12.11.2019
Сообщений: 41
01.03.2020, 18:40  [ТС]
Здравствуйте снова. И снова про конфигурирование. Сбросил апач на исходные, отключил все сайты кроме дефолтного, получил на локалхост начальное Ит воркс... что хочу. добавить один виртхост чтоб он обрабатывал скрипты .pl как cgi и второй виртхост чтоб он работал через mod_perl
получил что то вроде

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<VirtualHost 127.0.0.1:88>
        ServerName test_cgi
        ServerAlias test_cgi
        AddDefaultCharset UTF8
        UseCanonicalName Off
        ServerSignature Off
        DocumentRoot /home/test_cgi
        
 
    ScriptAlias /cgi-bin/ /home/test_cgi/
    AddHandler cgi-script .cgi .pl
    <Directory /home/test_cgi> 
        AllowOverride None
        Options ExecCGI
        Require local
    </Directory>
</VirtualHost>
и

Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<VirtualHost 127.0.0.1:88>
#        ServerName test
#        ServerAlias test
#       AddDefaultCharset UTF8
#        UseCanonicalName Off
#        ServerSignature Off
        DocumentRoot /home/test_m
        Alias /perl/ /home/test_m/
        PerlModule ModPerl::Registry
        <Location /perl/>
                AllowOverride None
                SetHandler perl-script
                PerlHandler ModPerl::Registry
                Options ExecCGI
                PerlSendHeader On
                Require local
        </Location>        
</VirtualHost>
А ни то ни другое не работает. Подскажите где ошибаюсь? Спасибо

да, я испльзую порт 88, так прописал в ports.conf
0
0 / 0 / 0
Регистрация: 12.11.2019
Сообщений: 41
02.03.2020, 20:34  [ТС]
Переименовал папку, внес в название точку, test_cgi.tt в папке лежит простейший скрипт index.pl
Perl
1
2
3
#!/usr/bin/perl
print "Content-type: text/html\n\n";
print "Hello world!";
слегка подправил конфиг виртуального хоста
Bash
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<VirtualHost 127.0.0.1:88>
        ServerName test_cgi.tt
        ServerAlias www.test_cgi.tt
        AddDefaultCharset UTF8
        UseCanonicalName Off
        ServerSignature Off
        DocumentRoot /home/test_cgi.tt
        
 
    ScriptAlias /test_cgi.tt/ /home/test_cgi.tt/
    
    <Directory /home/test_cgi.tt> 
        AddHandler cgi-script .cgi .pl
        AllowOverride None
        Options +ExecCGI
        Require local
    </Directory>
</VirtualHost>
в hosts поправил 127.0.0.1 test_cgi.tt

перегрузил апач
при обращении по адресу test_cgi.tt:88
отдает браузеру файл скрипта, скрипт не выполняется
посидел подумал, отключил сайт через a2dissite

перегрузил апач
при обращении по адресу test_cgi.tt:88
отдает браузеру файл скрипта
сижу думаю
подключение сайта(вир. хоста) вообще не влияет сейчас на результат...

Добавлено через 23 минуты
Цитата Сообщение от x_lab Посмотреть сообщение
127.0.1.1 php.xx
127.0.1.1 pl.xx
эти строки что делают?
0
0 / 0 / 0
Регистрация: 12.11.2019
Сообщений: 41
03.03.2020, 19:36  [ТС]
Цитата Сообщение от Kondor1075 Посмотреть сообщение
перегрузил апач
при обращении по адресу test_cgi.tt:88
отдает браузеру файл скрипта
сижу думаю
у меня не был подключен модуль cgi...

сейчас буду минимизировать конфиг виртуального хоста, убирать лишнее
0
52 / 37 / 9
Регистрация: 13.06.2019
Сообщений: 209
04.03.2020, 07:25
Цитата Сообщение от Kondor1075 Посмотреть сообщение
эти строки что делают?
это надо в файл hosts
чтобы браузер на DNS-запросы "какой IP у сайта php.xx ?"
получал ответ "127.0.0.1"

Добавлено через 8 минут
Цитата Сообщение от Kondor1075 Посмотреть сообщение
сейчас буду минимизировать
примерно:

vhosts.conf
Bash
1
2
3
4
5
6
7
8
9
10
...
<VirtualHost test_cgi.tt>   # или test_cgi.tt:88 если апач слушает 88 порт а не 80
    ServerName test_cgi.tt
    DocumentRoot /home/test_cgi.tt
    <Directory /home/test_cgi.tt> 
        AddHandler cgi-script .cgi .pl
        Options +ExecCGI
        Require local
    </Directory>
</VirtualHost>
hosts
Bash
1
2
...
127.0.0.1 test_cgi.tt   # или на каком адресе висит апач?
1
52 / 37 / 9
Регистрация: 13.06.2019
Сообщений: 209
05.03.2020, 06:31
Kondor1075,
Поторопился я с предыдущим постом. Обсуждал что то подобное здесь но с файлами .htaccess

По крайней мере, вот это у меня не правильно <VirtualHost test_cgi.tt>
у вас было правильно <VirtualHost 127.0.0.1:88>
1
Надоела реклама? Зарегистрируйтесь и она исчезнет полностью.
raxper
Эксперт
30234 / 6612 / 1498
Регистрация: 28.12.2010
Сообщений: 21,154
Блог
05.03.2020, 06:31
Помогаю со студенческими работами здесь

Несколько сайтов на одной машине
Добрый день всем. Ситуация следующая: Имеются два компьютера com1 и com2. com1 выступает в роли клиента, который обращается к...

Как подключить несколько сайтов к одному акку Адсенс?
Здравствуйте! Я когда-то поставил на свой форум адсенс, отправлял его на рассмотрение, приняли. Сейчас у меня появились ещё 4 блога, разных...

Несколько сайтов на одной виртуальной машине
Доброго времени суток. Имеется два доменных имени. Имеется папка /var/www/html с которой работает один сайт. Имеется папка...

Как модернизировать счетчик, чтоб он показывал и за сегодня, и хосты?
Вот храню в файле количество посещений за сегодня. Как модернизировать счетчик, чтоб он показывал и за сегодня, и хосты??? Именно как...

Виртуальные хосты
Доброго времени. У меня возникли проблемы при настройке виртуальных хостов в apache. Операционная система Windows 7. Apache 2.4 в составе...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
10
Ответ Создать тему
Новые блоги и статьи
SDL3 для Web (WebAssembly): Обработчик клика мыши в браузере ПК и касания экрана в браузере на мобильном устройстве
8Observer8 02.02.2026
Содержание блога Для начала пошагово создадим рабочий пример для подготовки к экспериментам в браузере ПК и в браузере мобильного устройства. Потом напишем обработчик клика мыши и обработчик. . .
Философия технологии
iceja 01.02.2026
На мой взгляд у человека в технических проектах остается роль генерального директора. Все остальное нейронки делают уже лучше человека. Они не могут нести предпринимательские риски, не могут. . .
SDL3 для Web (WebAssembly): Вывод текста со шрифтом TTF с помощью SDL3_ttf
8Observer8 01.02.2026
Содержание блога В этой пошаговой инструкции создадим с нуля веб-приложение, которое выводит текст в окне браузера. Запустим на Android на локальном сервере. Загрузим Release на бесплатный. . .
SDL3 для Web (WebAssembly): Сборка C/C++ проекта из консоли
8Observer8 30.01.2026
Содержание блога Если вы откроете примеры для начинающих на официальном репозитории SDL3 в папке: examples, то вы увидите, что все примеры используют следующие четыре обязательные функции, а. . .
SDL3 для Web (WebAssembly): Установка Emscripten SDK (emsdk) и CMake для сборки C и C++ приложений в Wasm
8Observer8 30.01.2026
Содержание блога Для того чтобы скачать Emscripten SDK (emsdk) необходимо сначало скачать и уставить Git: Install for Windows. Следуйте стандартной процедуре установки Git через установщик. . . .
SDL3 для Android: Подключение Box2D v3, физика и отрисовка коллайдеров
8Observer8 29.01.2026
Содержание блога Box2D - это библиотека для 2D физики для анимаций и игр. С её помощью можно определять были ли коллизии между конкретными объектами. Версия v3 была полностью переписана на Си, в. . .
Инструменты COM: Сохранение данный из VARIANT в файл и загрузка из файла в VARIANT
bedvit 28.01.2026
Сохранение базовых типов COM и массивов (одномерных или двухмерных) любой вложенности (деревья) в файл, с возможностью выбора алгоритмов сжатия и шифрования. Часть библиотеки BedvitCOM Использованы. . .
SDL3 для Android: Загрузка PNG с альфа-каналом с помощью SDL_LoadPNG (без SDL3_image)
8Observer8 28.01.2026
Содержание блога SDL3 имеет собственные средства для загрузки и отображения PNG-файлов с альфа-каналом и базовой работы с ними. В этой инструкции используется функция SDL_LoadPNG(), которая. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2026, CyberForum.ru