
Я использую файл VirtualHost, выглядящий как что-то по умолчанию, который я настроил некоторое время назад (до того, как я узнал, как все это работает), и я не совсем уверен, что мне следует оставить. Я не хочу просто пробовать разные вещи, потому что настройка виртуальной машины со всем этим будет хлопотной, а текущая конфигурация находится в производственной среде, так что метод проб и ошибок на самом деле не вариант. Вот файл, с измененными именами, чтобы защитить невиновных:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName www.my.hostname
ServerAlias my.hostname
DocumentRoot /var/www/mysite
<Directory />
Options FollowSymLinks
AllowOverride None
</Directory>
<Directory /var/www/mysite>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ScriptAlias /cgi-bin/ /usr/lib/cgi-bin/
<Directory "/usr/lib/cgi-bin">
AllowOverride None
Options +ExecCGI -MultiViews +SymLinksIfOwnerMatch
Order allow,deny
Allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog ${APACHE_LOG_DIR}/access.log combined
LogFormat "%t %T/%D \"%r\" %>s %b" mysitelog
CustomLog ${APACHE_LOG_DIR}/mysite.access.log mysitelog
Alias /doc/ "/usr/share/doc/"
<Directory "/usr/share/doc/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Deny from all
Allow from 127.0.0.0/255.0.0.0 ::1/128
</Directory>
</VirtualHost>
У меня есть следующие вопросы по этому поводу:
Стоит ли мне избавиться от
<Directory />
блока? Он указан в$APACHE_HOME/conf.d/security
комментарии "В настоящее время это нарушает конфигурации, которые поставляются с некоторыми пакетами веб-приложений Debian". Стоит ли мне раскомментировать эту версию и удалить ее из моего vhost?Это всего лишь PHP, поэтому я полагаю, что нет смысла сохранять блок cgi и псевдоним.
Думаю, я тоже смогу избавиться от этой
doc
штуки. Я даже не совсем уверен, для чего она там, так что бонусные баллы (на самом деле нет), если вы сможете объяснить, для чего она будет использоваться в «нормальной» установке.
Итак, если я прав во всем, что думаю, мой новый файл vhost может выглядеть так:
<VirtualHost *:80>
ServerAdmin [email protected]
ServerName www.my.hostname
ServerAlias my.hostname
DocumentRoot /var/www/mysite
<Directory /var/www/mysite>
Options Indexes FollowSymLinks MultiViews
AllowOverride All
Order allow,deny
allow from all
</Directory>
ErrorLog ${APACHE_LOG_DIR}/error.log
# Possible values include: debug, info, notice, warn, error, crit,
# alert, emerg.
LogLevel warn
LogFormat "%h %l %u %t \"%r\" %>s %b \"%{Referer}i\" \"%{User-Agent}i\"" combined
CustomLog ${APACHE_LOG_DIR}/access.log combined
LogFormat "%t %T/%D \"%r\" %>s %b" mysitelog
CustomLog ${APACHE_LOG_DIR}/mysite.access.log mysitelog
</VirtualHost>
Любые другие советы очень приветствуются. Спасибо! Пожалуйста, дайте мне знать, если понадобится больше информации о моей конфигурации!
решение1
Стоит ли мне избавиться от
<Directory />
блока?
Конечно! Это определенно то, что вы можете сделать на уровне сервера, а не на уровне vhost.
Это всего лишь PHP, поэтому я полагаю, что нет смысла сохранять блок cgi и псевдоним.
Уничтожить его ядерной бомбой.
Думаю, я также смогу избавиться от всей этой документации.
Nuke it. Он там, чтобы вы могли использовать ваш недавно установленный веб-сервер для просмотра документации вашей системы. Это милый пример, но на мой взгляд, он не должен быть в файле конфигурации по умолчанию.
В вашем предложенном файле конфигурации: выглядит хорошо! Единственная рекомендация, которую я бы дал, это изменить блок AllowOverride All
в вашем каталоге на , AllowOverride None
если вы не используете .htaccess
файлы - а если вы используете .htaccess
файлы, я бы рекомендовал уничтожить их и перенести их конфигурацию в блок каталога. (см. здесь подробности о том, почему я так говорю)