Я пытаюсь создать веб-сайт на своем компьютере, но у меня возникли проблемы. Я создал прототип веб-сайта, используя 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 polkid@mycompany.com
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
и посмотрите, как работает мое приложение.
Вы говорите, что хотите настроить виртуальные хосты 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
config все равно. И 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>
Вы уверены, что создали мягкую ссылку на файл: / etc / apache2 / sites-available / Powermon?
Некоторые, например:
cd /etc/apache2/sites-enabled/
ln -s ../sites-available/Powermon