Si tengo un DocumentRoot especificado en mi VirtualHost, ¿necesito un¿especificado?

Si tengo un DocumentRoot especificado en mi VirtualHost, ¿necesito un¿especificado?

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:

  1. ¿Debería deshacerme del <Directory />bloqueo? Se especifica $APACHE_HOME/conf.d/securitycon 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?

  2. Esto no es más que PHP, así que supongo que no hay razón para mantener el bloque cgi y el alias.

  3. Supongo que también puedo deshacerme de esas doccosas. 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 Allbloque en su directorio a AllowOverride Nonesi no está usando .htaccessarchivos, y si está usando .htaccessarchivos, recomendaría destruirlos y colocar su configuración en el bloque del directorio. (Consulte aquí para obtener detalles sobre por qué digo eso.)

información relacionada