
Я пытаюсь настроить веб-сайт на своей машине и у меня возникли некоторые проблемы. Я создал прототип веб-сайта с помощью Flask и отладочного сервера и теперь хотел бы разместить его на некоторое время, пока я его отлаживаю. Это только для внутреннего использования в сети моей компании.
Похоже, я не могу правильно настроить Apache. В настоящее время я использую сайт по умолчанию, который ссылается на мой домашний каталог, поэтому я могу получать файлы с других машин через веб-браузер.
Я вообще ничего не менял 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 — изменить /etc/hosts
файл вашего клиента веб-браузера следующим образом. Предположим, что эти виртуальные хосты находятся на сервере с IP-адресом 123.456.78.90. Откройте ваш hosts
файл — я работаю на Mac, поэтому вот как я это сделаю — следующим образом nano
:
sudo nano /etc/hosts
И добавьте эту строку в конец файла:
123.456.78.90 powermon
Теперь, когда вы указываете в своем веб-браузере:
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