Configurando Apache VirtualHost para vários sites

Configurando Apache VirtualHost para vários sites

Estou tentando configurar um site na minha máquina e estou tendo alguns problemas. Criei um protótipo do site usando o Flask e o servidor de depuração e agora gostaria de hospedá-lo um pouco enquanto o depuro ainda mais. Isso é apenas para uso interno na rede da minha empresa.

Não consigo configurar o Apache corretamente. Atualmente, administro um site padrão vinculado ao meu diretório inicial, para que possa obter arquivos de outras máquinas por meio de um navegador da web.

Não mudei apache2.confnada, mas aqui está meu httpd.conf

<Location /server-status>
    SetHandler server-status

    Order Deny, Allow
    Deny from all
    Allow from .mycompany.com
</Location>

Minha configuração padrão, localizada em /etc/apache2/sites-available/default, tem

<VirtualHost *:80>
    ServerAdmin [email protected]

    DocumentRoot /var/www
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /var/www/>
        Options Indexes FollowSymLinksMultiViews
        AllowOverride None
        Order allow,deny
        allow from .mycompany.com
    </Directory>
    <Directory /var/www/home/>
        Options Indexes FollowSymLinks MultiViews
        AllowOVerride None
        Order allow,deny
        allow from .mycompany.com
    </Directory>

    ErrorLog ${APACHE_LOG_DIR}/error.log

    LogLevel warn

    CustomLog ${APACHE_LOG_DIR}/access.log combined

</VirtualHost>

Embora o aplicativo que estou tentando ativar tenha o seguinte arquivo de configuração, localizado em/etc/apache2/sites-available/Powermon

LoadModule fastcgi_module /usr/lib/apache2/modules/mod_fastcgi.so

User p_user
Group p_group
FastCgiServer /home/p_user/Powermon/runp.fcgi -idle-timeout 300 -processes 5

<VirtualHost *:80>
    ServerName powermon
    DocumentRoot /home/p_user/Powermon/app/static
    Alias /static /home/p_user/Powermon/app/static

    AddHandler fastcgi-script fcgi
    ScriptAlias / /home/p_user/Powermon/runp.fcgi

    ErrorLog /home/p_user/Powermon/logs/powermon_error_log

    <Location />
        SetHandler fastcgi-script
    </Location>
</VirtualHost>

Dentro dos sites habilitados eu vi

000-default -> ../sites-available/default

Então eu adicionei

010-powermon -> ../sites-available/Powermon

E quando corro apache2ctl -Seu vejo

VirtualHost configuration:
wildcard NameVirtualHosts and _default_servers:
*:80            is a NameVirtualHost
    default server dhcp-ip-address.mycompany.com (/etc/apache2/sites-enabled/000-default:1)
    port 80 namevhost dhcp-ip-address.mycompany.com (/etc/apache2/sites-enabled/000-default:1)
    port 80 namevhost powermon (/etc/apache2/sites-enabled/010-powermon:7)
Syntax OK

Atualmente, quando acesso machine-name/um navegador, posso navegar em meu diretório inicial e visualizar os arquivos conforme necessário. Idealmente, quero poder acessar machine-name/powermone ver meu aplicativo em execução.

Responder1

Você diz que deseja configurar hosts virtuais do Apache, mas depois diz o seguinte:

Atualmente, quando acesso machine-name/um navegador, posso navegar em meu diretório inicial e visualizar os arquivos conforme necessário. Idealmente, quero poder acessar machine-name/powermone ver meu aplicativo em execução.

Um caminho em um host não é um host virtual. Sua configuração é definida da seguinte forma: O tráfego powermonvai para uma configuração. O tráfego dhcp-ip-address.mycompany.comvai para outra configuração.

Portanto, a única maneira de uma configuração de host virtual Apache funcionar é acessar esta URL e obter uma coisa:

dhcp-ip-address.mycompany.com

Então vá para este URL e obtenha outra coisa:

powermon

A única maneira de realmente conseguir isso por meio da configuração do host virtual Apache é alterar /etc/hostso arquivo do seu cliente de navegação na web desta forma. Vamos supor que esses hosts virtuais estejam em um servidor com endereço IP 123.456.78.90. Abra seu hostsarquivo - estou em um Mac, então é assim que eu faria - assim nano:

sudo nano /etc/hosts

E adicione esta linha no final do arquivo:

123.456.78.90 powermon

Agora, quando você aponta seu navegador para:

http://powermon

Você obterá a configuração do host virtual Apache que possui.

Mas, novamente, você está confundindo o conceito de caminho de servidor com host virtual de servidor. Então você precisa resolver isso antes de fazer qualquer outra coisa. Além disso, a configuração do seu host virtual powermonparece desarticulada. Os itens de fora <VirtualHost *:80>devem ir para dentro. Caso contrário, essas opções de configuração serão usadas pela defaultconfiguração de todo o servidor de qualquer maneira. E as configurações User& Grouptambém parecem confusas. Os scripts devem ser configurados para serem utilizáveis ​​pelo usuário e grupo do Apache. Não o contrário. Mas assumindo boa fé, é assim que eu estruturaria:

Usuário p_user Grupo p_group

Nome do servidor powermon DocumentRoot /home/p_user/Powermon/app/static Alias ​​/static /home/p_user/Powermon/app/static

    LoadModule fastcgi_module /usr/lib/apache2/modules/mod_fastcgi.so

    FastCgiServer /home/p_user/Powermon/runp.fcgi -idle-timeout 300 -processes 5

    AddHandler fastcgi-script fcgi
    ScriptAlias / /home/p_user/Powermon/runp.fcgi

    ErrorLog /home/p_user/Powermon/logs/powermon_error_log

    <Location />
        SetHandler fastcgi-script
    </Location>

</VirtualHost>

Responder2

Tem certeza de que criou um link virtual para o arquivo: /etc/apache2/sites-available/Powermon ?

Alguns gostam:

cd /etc/apache2/sites-enabled/
ln -s ../sites-available/Powermon

informação relacionada