¿Dónde ubicar mi sitio web local a partir de la versión 2.4.7 de apache2?

50

Recientemente instalé Ubuntu 14.04, luego instalé lamp-servery coloqué mis páginas web en el /var/wwwdirectorio, pero cuando abrí localhost en el navegador no había nada. Creo que eso sucedió porque Zend actualizó Apache.

Cualquiera sea la razón, quiero saber dónde guardar mis archivos php para poder acceder a ellos desde mi navegador.

akabhirav
fuente
Aunque no es una respuesta a la pregunta de la OP, la siguiente respuesta puede ayudar a algunos visitantes que sales a esta cuestión al tratar de solucionar un problema relacionado: askubuntu.com/a/525120/1183
Augustin

Respuestas:

76

La versión de apache2 que se publicó cuando se realizó el lanzamiento de Ubuntu 14.04 es 2.4.7 y, a partir de esta versión, parece que, por razones de seguridad, el nuevo directorio raíz para el servidor es:

/var/www/html

Entonces, a partir de ahora, aquí es donde debe colocar los archivos para su sitio web (local). No debería volver a tener este problema con las futuras actualizaciones.


De todos modos, si desea cambiar este directorio con otro, debe modificar (como raíz) la siguiente línea del /etc/apache2/sites-available/000-default.confarchivo ( sudo nano /etc/apache2/sites-available/000-default.conf):

DocumentRoot /var/www/html

a

DocumentRoot /path/to/another/directory

Después de esto, para que los nuevos cambios surtan efecto, debe reiniciar el servidor apache con el siguiente comando:

sudo service apache2 restart
Radu Rădeanu
fuente
10
Interesante, intenté buscar el razonamiento detrás de este movimiento. Si alguien está interesado, encontré este informe de error en Debian que lo explica.
Dan
44
Recibo un error prohibido después de este cambio.
Darshana
1
@Darshana La configuración predeterminada en apache2.4 no permite que apache acceda a nada en el exterior /var/www/html. Si coloca su sitio en otro lugar que no sea ese directorio (o sus subdirectorios), obtendrá un error 403. Debe agregar una <Directory /path/to/your/site>directiva a sus configuraciones de VHost con una requiredirectiva .
Dan
Esto no funcionó para mí.
user124384
Lo mismo aquí ... Ahora me da error 403 prohibido! ¿Cómo debo resolverlo (En más simple, forma noober POR FAVOR)
abhishah901
27

En lugar de /etc/apache2/sites-available/000-default.confvolver a modificar la versión anterior, prefiero mantener los archivos de paquete predeterminados sin modificar.

Una razón para esto es que no se rompería durante la próxima actualización nuevamente, lo que podría restablecer el 000-default.confarchivo.
Además, tales modificaciones no se realizan solo para molestarnos, la modificación se realizó por una buena razón, como explica este informe de error en Debian .

Nuestros servidores web [sic] establecen la raíz del documento por defecto en / var / www, mientras que los administradores locales del sitio tienden a usar /var/www/example.com. Esto tiene implicaciones de seguridad si los visitantes acceden a la raíz del documento predeterminada, sin pasar por la / supuesto / raíz del documento de example.com. Eso es problemático si los datos confidenciales están fuera de la supuesta raíz del documento (por ejemplo, considere un archivo de configuración /var/www/example-com-db.conf hipotético).

Una mejor solución sería mover los archivos de los sitios de /var/wwwa /var/www/html/.

# 1. move all files excluding the `html` directory
sudo mv /var/www/[!html]* /var/www/html
# 2. Move the hidden files as well which are skipped in previous command
sudo mv /var/www/.[!.]?* /var/www/html/

Además, otra posible solución es crear otro host virtual y deshabilitar el predeterminado con el comando sudo a2dissite 000-default

Dan
fuente