
Estoy usando un archivo VirtualHost de aspecto algo predeterminado que configuré hace un tiempo (antes de tener mucho conocimiento de cómo funciona esto), y no estoy exactamente seguro de qué debo conservar. No quiero simplemente probar cosas porque configurar una máquina virtual con todo esto sería una molestia, y la configuración actual está en un entorno de producción, por lo que la prueba y error no es realmente una opción. Aquí está el archivo, con nombres cambiados para proteger a los inocentes:
<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>
Mis preguntas al respecto son:
¿Debería deshacerme del
<Directory />
bloqueo? Se especifica$APACHE_HOME/conf.d/security
con el comentario "Esto actualmente rompe las configuraciones que vienen con algunos paquetes Debian de aplicaciones web". ¿Debo descomentar esta versión y eliminar la de mi vhost?Esto no es más que PHP, así que supongo que no hay razón para mantener el bloque cgi y el alias.
Supongo que también puedo deshacerme de esas
doc
cosas. Ni siquiera estoy realmente seguro de para qué sirve eso, así que puntos de bonificación (en realidad no) si puedes explicar para qué se usaría en una configuración "normal".
Entonces, suponiendo que estoy en lo cierto en todo lo que estoy pensando, mi nuevo archivo vhost podría verse así:
<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>
Cualquier otro consejo será bienvenido. ¡Gracias! ¡Avíseme si necesita más información de mi configuración!
Respuesta1
¿Debería deshacerme del
<Directory />
bloqueo?
¡Seguro! Definitivamente es algo que puedes manejar a nivel de servidor en lugar de en el vhost.
Esto no es más que PHP, así que supongo que no hay razón para mantener el bloque cgi y el alias.
Pedir prestado.
Supongo que también puedo deshacerme de las cosas del documento.
Pedir prestado. Está ahí para que pueda utilizar su servidor web recién instalado para explorar la documentación de su sistema. Es un lindo ejemplo, pero en mi opinión, realmente no pertenece a un archivo de configuración predeterminado.
En el archivo de configuración propuesto: ¡se ve bien! La única recomendación que haría es cambiar el AllowOverride All
bloque en su directorio a AllowOverride None
si no está usando .htaccess
archivos, y si está usando .htaccess
archivos, recomendaría destruirlos y colocar su configuración en el bloque del directorio. (Consulte aquí para obtener detalles sobre por qué digo eso.)