0 / 0 / 0
Регистрация: 12.11.2019
Сообщений: 41

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

17.02.2020, 06:52. Показов 1917. Ответов 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
2816 / 1192 / 354
Регистрация: 08.02.2013
Сообщений: 6,896
Записей в блоге: 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
1272 / 968 / 228
Регистрация: 01.10.2018
Сообщений: 3,756
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
2816 / 1192 / 354
Регистрация: 08.02.2013
Сообщений: 6,896
Записей в блоге: 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
50 / 35 / 9
Регистрация: 13.06.2019
Сообщений: 208
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
50 / 35 / 9
Регистрация: 13.06.2019
Сообщений: 208
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
Ответ Создать тему
Опции темы

Новые блоги и статьи
Мастер-класс по микросервисам на Node.js
Reangularity 21.06.2025
Node. js стал одной из самых популярных платформ для микросервисной архитектуры не случайно. Его неблокирующая однопоточная модель и событийно-ориентированный подход делают его идеальным для. . .
Управление Arduino из WPF приложения
Wired 21.06.2025
Зачем вообще связывать Arduino с WPF-приложением? Казалось бы, у Arduino есть собственная среда разработки, своя экосистема, свои способы управления. Однако при создании серьезных проектов. . .
Звёздная пыль
kumehtar 20.06.2025
Я просто это себе представляю: как создавался этот мир. Как энергия слипалась в маленькие частички. Как они собирались в первые звёзды, как во вселенной впервые появился Свет. Как эти звёзды. . .
Создание нейросети с PyTorch
AI_Generated 19.06.2025
Ключевое преимущество PyTorch — его питоновская натура. В отличие от TensorFlow, который изначально был построен как статический вычислительный граф, PyTorch предлагает динамический подход. Это. . .
JWT аутентификация в ASP.NET Core
UnmanagedCoder 18.06.2025
Разрабатывая веб-приложения, я постоянно сталкиваюсь с дилеммой: как обеспечить надежную аутентификацию пользователей без ущерба для производительности и масштабируемости? Классические подходы на. . .
Краткий курс по С#
aaLeXAA 18.06.2025
Здесь вы найдете все необходимые функции чтоб написать програму на C# Задание 1: КЛАСС FORM 1 public partial class Form1 : Form { Spisok listin = new Spisok(); . . .
50 самых полезных примеров кода Python для частых задач
py-thonny 17.06.2025
Эффективность работы разработчика часто измеряется не количеством написаных строк, а скоростью решения задач. Готовые сниппеты значительно ускоряют разработку, помогают избежать типичных ошибок и. . .
C# и продвинутые приемы работы с БД
stackOverflow 17.06.2025
Каждый . NET разработчик рано или поздно сталкивается с ситуацией, когда привычные методы работы с базами данных превращаются в источник бессонных ночей. Я сам неоднократно попадал в такие ситуации,. . .
Angular: Вопросы и ответы на собеседовании
Reangularity 15.06.2025
Готовишься к техническому интервью по Angular? Я собрал самые распространенные вопросы, с которыми сталкиваются разработчики на собеседованиях в этом году. От базовых концепций до продвинутых. . .
Архитектура Onion в ASP.NET Core MVC
stackOverflow 15.06.2025
Что такое эта "луковая" архитектура? Термин предложил Джеффри Палермо (Jeffrey Palermo) в 2008 году, и с тех пор подход только набирал обороты. Суть проста - представьте себе лук с его. . .
КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin
Copyright ©2000 - 2025, CyberForum.ru