我正在尝试在我的计算机上建立一个网站,但遇到了一些问题。我已经使用 Flask 和调试服务器对网站进行了原型设计,现在想在进一步调试时暂时托管它。这仅供我公司网络内部使用。
我似乎无法正确配置 Apache。我目前运行一个链接到我的主目录的默认站点,因此我可以通过 Web 浏览器从其他机器获取文件。
我根本没有改变apache2.conf
,但这是我的 httpd.conf
<Location /server-status>
SetHandler server-status
Order Deny, Allow
Deny from all
Allow from .mycompany.com
</Location>
我的默认配置位于 内/etc/apache2/sites-available/default
,具有
<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>
我尝试启用的应用程序具有以下配置文件,位于/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>
在启用站点后我看到
000-default -> ../sites-available/default
所以我补充道
010-powermon -> ../sites-available/Powermon
当我跑步时apache2ctl -S
我看到
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
因此,目前当我在浏览器中访问时machine-name/
,我可以导航到我的主目录并根据需要查看文件。理想情况下,我希望能够访问machine-name/powermon
并查看我的应用程序的运行情况。
答案1
您说您想要设置 Apache 虚拟主机,但是您又这样说:
因此,目前当我在浏览器中访问时
machine-name/
,我可以导航到我的主目录并根据需要查看文件。理想情况下,我希望能够访问machine-name/powermon
并查看我的应用程序的运行情况。
主机上的路径不是虚拟主机。您的配置设置如下:流量到powermon
会转到一个配置。流量到dhcp-ip-address.mycompany.com
会转到另一个配置。
因此,Apache 虚拟主机设置的唯一工作方式是访问此 URL 并获取以下内容:
dhcp-ip-address.mycompany.com
然后访问这个 URL 并得到另一件事:
powermon
通过 Apache 虚拟主机设置真正实现此目的的唯一方法是像这样更改 Web 浏览客户端的/etc/hosts
文件。假设这些虚拟主机位于 IP 地址为 123.456.78.90 的服务器上。打开您的hosts
文件 — 我在 Mac 上,因此我会这样做 — 如下所示nano
:
sudo nano /etc/hosts
并将此行添加到文件底部:
123.456.78.90 powermon
现在,当您将 Web 浏览器指向:
http://powermon
您将获得已设置的 Apache 虚拟主机。
但是,您再次混淆了服务器路径和服务器虚拟主机的概念。因此,您需要在执行其他任何操作之前解决该问题。此外,您的虚拟主机配置powermon
似乎脱节。 之外的项目<VirtualHost *:80>
应该放在里面。否则,这些配置选项无论如何都会被服务器范围的default
配置使用。而且User
&Group
设置似乎也很笨拙。脚本应设置为可供 Apache 用户和组使用。而不是相反。但假设是善意的,这就是我将如何构造它:
用户 p_user 组 p_group
服务器名称 powermon DocumentRoot /home/p_user/Powermon/app/static 别名 /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>
答案2
您确定您创建了指向文件的软链接:/etc/apache2/sites-available/Powermon?
例如:
cd /etc/apache2/sites-enabled/
ln -s ../sites-available/Powermon