Einrichten von Apache VirtualHost für mehrere Sites

Einrichten von Apache VirtualHost für mehrere Sites

Ich versuche, eine Website auf meinem Computer einzurichten, und habe dabei einige Probleme. Ich habe mit Flask und dem Debug-Server einen Prototyp der Website erstellt und möchte sie nun für eine Weile hosten, während ich sie weiter debugge. Dies ist nur für die interne Verwendung innerhalb meines Firmennetzwerks bestimmt.

Ich scheine Apache nicht richtig konfigurieren zu können. Ich betreibe derzeit eine Standardsite, die auf mein Home-Verzeichnis verweist, sodass ich über einen Webbrowser Dateien von anderen Rechnern abrufen kann.

Ich habe meine apache2.confüberhaupt nicht geändert, aber hier ist meine httpd.conf

<Location /server-status>
    SetHandler server-status

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

Meine Standardkonfiguration, die sich unter befindet /etc/apache2/sites-available/default, hat

<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>

Während die App, die ich zu aktivieren versuche, die folgende Konfigurationsdatei hat, befindet sie sich unter/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>

Unter sites-enabled sah ich

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

Also fügte ich hinzu

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

Und wenn ich laufe, apache2ctl -Ssehe ich

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

Wenn ich also derzeit machine-name/in einem Browser auf gehe, kann ich in meinem Home-Verzeichnis navigieren und mir bei Bedarf Dateien ansehen. Idealerweise möchte ich auf gehen machine-name/powermonund meine App laufen sehen können.

Antwort1

Sie sagen, Sie möchten virtuelle Apache-Hosts einrichten, aber dann sagen Sie Folgendes:

Wenn ich also derzeit machine-name/in einem Browser auf gehe, kann ich in meinem Home-Verzeichnis navigieren und mir bei Bedarf Dateien ansehen. Idealerweise möchte ich auf gehen machine-name/powermonund meine App laufen sehen können.

Ein Pfad auf einem Host ist kein virtueller Host. Ihre Konfiguration ist wie folgt eingestellt: Der eingehende Datenverkehr powermongeht an eine Konfiguration. Der eingehende Datenverkehr dhcp-ip-address.mycompany.comgeht an eine andere Konfiguration.

Die einzige Möglichkeit, einen virtuellen Apache-Host einzurichten, besteht darin, diese URL aufzurufen und eines zu erhalten:

dhcp-ip-address.mycompany.com

Gehen Sie dann zu dieser URL und holen Sie sich etwas anderes:

powermon

Die einzige Möglichkeit, dies über die Einrichtung eines virtuellen Apache-Hosts wirklich zu erreichen, besteht darin, die Datei Ihres Webbrowser-Clients /etc/hostswie folgt zu ändern. Nehmen wir an, diese virtuellen Hosts befinden sich auf einem Server mit der IP-Adresse 123.456.78.90. Öffnen Sie Ihre hostsDatei – ich verwende einen Mac, also würde ich es so machen – folgendermaßen nano:

sudo nano /etc/hosts

Und fügen Sie diese Zeile am Ende der Datei hinzu:

123.456.78.90 powermon

Wenn Sie nun in Ihrem Webbrowser auf Folgendes zeigen:

http://powermon

Sie erhalten das von Ihnen eingerichtete virtuelle Apache-Host-Setup.

Aber Sie verwechseln wieder das Konzept eines Serverpfads mit einem virtuellen Serverhost. Das müssen Sie also klären, bevor Sie irgendetwas anderes tun. Außerdem powermonscheint Ihre virtuelle Hostkonfiguration für unzusammenhängend. Die Elemente außerhalb von <VirtualHost *:80>sollten hinein. Andernfalls werden diese Konfigurationsoptionen sowieso von der serverweiten defaultKonfiguration verwendet. Und die User& Group-Einstellungen scheinen auch umständlich. Die Skripte sollten so eingestellt sein, dass sie von der Apache-Benutzer- und -Gruppe verwendet werden können. Nicht umgekehrt. Aber wenn ich ehrlich bin, würde ich es so strukturieren:

Benutzer p_user Gruppe p_group

Servername powermon Dokumentstammverzeichnis /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>

Antwort2

Sind Sie sicher, dass Sie einen Softlink zur Datei /etc/apache2/sites-available/Powermon erstellt haben?

Einige wie:

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

verwandte Informationen