Я использую несколько выглядящий по умолчанию файл VirtualHost, который я настроил некоторое время назад (до того, как я получил много знаний о том, как это работает), и я не совсем уверен, что мне следует хранить. Я не хочу просто пробовать что-то, потому что настроить виртуальную машину со всем этим материалом было бы сложно, а текущая конфигурация находится в производственной среде, поэтому метод проб и ошибок на самом деле не вариант. Вот файл с именами, измененными для защиты невиновных:
<VirtualHost *:80>
ServerAdmin dummy@example.com
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 для веб-приложений». Должен ли я раскомментировать эту версию и удалить ее с моего виртуального хоста?
Это не что иное, как PHP, поэтому я предполагаю, что нет смысла хранить блок cgi и псевдоним.
Думаю, я также могу избавиться от doc
прочее. Я даже не совсем уверен, для чего это нужно, поэтому бонусные баллы (не совсем), если вы можете объяснить, для чего они будут использоваться в «нормальной» настройке.
Итак, если я прав во всем, о чем думаю, мой новый файл vhost может выглядеть так:
<VirtualHost *:80>
ServerAdmin dummy@example.com
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>
Любые другие советы очень приветствуются. Спасибо! Пожалуйста, дайте мне знать, если потребуется дополнительная информация из моей конфигурации!
Должен ли я избавиться от
<Directory />
блок?
Конечно! Это определенно то, с чем вы можете справиться на уровне сервера, а не на виртуальном хосте.
Это не что иное, как PHP, поэтому я предполагаю, что нет смысла хранить блок cgi и псевдоним.
Ядерная бомба.
Думаю, я также могу избавиться от документации.
Ядерная бомба. Он там, чтобы вы могли использовать свой недавно установленный веб-сервер для просмотра документации вашей системы. Это симпатичный пример, но, на мой взгляд, он не относится к конфигурационному файлу по умолчанию.
В предложенном вами конфигурационном файле: выглядит хорошо! Я бы порекомендовал изменить AllowOverride All
в вашем блоке каталога, чтобы AllowOverride None
если вы не используете .htaccess
файлы - и если вы используете .htaccess
файлы, я бы рекомендовал уничтожить их и вытащить их конфигурацию в блок каталогов. (см. здесь, чтобы узнать, почему я говорю это)