
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 -S
sehe 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/powermon
und 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 gehenmachine-name/powermon
und meine App laufen sehen können.
Ein Pfad auf einem Host ist kein virtueller Host. Ihre Konfiguration ist wie folgt eingestellt: Der eingehende Datenverkehr powermon
geht an eine Konfiguration. Der eingehende Datenverkehr dhcp-ip-address.mycompany.com
geht 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/hosts
wie 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 hosts
Datei – 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 powermon
scheint Ihre virtuelle Hostkonfiguration für unzusammenhängend. Die Elemente außerhalb von <VirtualHost *:80>
sollten hinein. Andernfalls werden diese Konfigurationsoptionen sowieso von der serverweiten default
Konfiguration 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