¿Cómo cambio el directorio raíz de un servidor Apache? [cerrado]

Resuelto Spencer Cooley asked hace 13 años • 15 respuestas

¿Cómo puedo cambiar la raíz del documento del servidor Apache? Básicamente quiero localhostvenir del /users/spencer/projectsdirectorio en lugar de /var/www.


Terminé averiguándolo. Algunos sugirieron que cambiara el httpd.confarchivo, pero terminé encontrando un archivo /etc/apache2/sites-available/defaulty cambié el directorio raíz de /var/wwwa /home/myusername/projects_foldery funcionó.

Spencer Cooley avatar May 05 '11 08:05 Spencer Cooley
Aceptado

Tenga en cuenta que esto solo se aplica a Ubuntu 14.04 LTS (Trusty Tahr) y versiones más recientes.

En mi Ubuntu 14.04 LTS, la raíz del documento estaba configurada en /var/www/html. Se configuró en el siguiente archivo:

/etc/apache2/sites-available/000-default.conf

Entonces solo haz un

sudo nano /etc/apache2/sites-available/000-default.conf

y cambia la siguiente línea a lo que quieras:

DocumentRoot /var/www/html

También haz un

sudo nano /etc/apache2/apache2.conf

y encuentra esto:

<Directory /var/www/html/>
Options Indexes FollowSymLinks
AllowOverride None
Require all granted
</Directory>

Y cambie /var/www/htmla su directorio preferido y guárdelo.

Después de guardar los cambios, simplemente reinicie el servidor web Apache 2 y listo :)

sudo service apache2 restart

Si prefiere un editor de texto gráfico, puede simplemente reemplazarlo sudo nanocon un archivo gksu gedit.

mozzbozz avatar Apr 19 '2014 21:04 mozzbozz

Necesita cambiar la DocumentRootconfiguración en su httpd.confarchivo. Lo más probable es que esté debajo de algo como /etc/apache2/conf/httpd.conf.

Utilice su editor favorito (recomiendo Vim ), busque DocumentRooty cámbielo a /users/spencer/projects. También mire un poco más abajo para ver una configuración similar a esta:

<Directory "/var/www">

También querrás cambiar lo que está entre comillas a tu nuevo directorio. Esto le da a Apache acceso para leer desde ese directorio cuando un usuario realiza una solicitud que lo llama.

Ahora reinicie su servicio Apache ( httpd -k restart) y debería estar listo para comenzar.

Los archivos de configuración del sitio Apache 2 ahora normalmente se guardan en /etc/apache2/sites-available/(Debian, Ubuntu, etc.).

RDL avatar May 05 '2011 01:05 RDL

Tuve que editar /etc/apache2/sites-available/default. Las líneas son las mismas que menciona RDL .

Nick avatar Sep 08 '2012 21:09 Nick

Esto es para Ubuntu 14.04 (Trusty Tahr):

En el archivo /etc/apache2/apache2.confdebería ser como se muestra a continuación sin el nombre del directorio:

<Directory /home/username>
    Options Indexes FollowSymLinks
    AllowOverride All
    Require all granted
</Directory>

Y en el archivo /etc/apache2/sites-available/000-default.confdebe incluir el nombre del directorio personalizado, es decir, www :

DocumentRoot /home/username/www

Si no es como el anterior, te dará un error al cargar el servidor:

Prohibido No tienes permiso para acceder a/en este servidor

androsfat avatar Aug 22 '2015 15:08 androsfat

La forma correcta de cambiar de directorio o ejecutar desde varios directorios en un puerto diferente para Apache 2 es la siguiente:

Para Apache 2, los archivos de configuración se encuentran debajo /etc/apache2y no utilizan un solo archivo de configuración como en versiones anteriores, sino que se dividen en archivos de configuración más pequeños, siendo /etc/apache2/apache2.confel archivo de configuración principal. Para servir archivos desde un directorio diferente, necesitamos un nuevo archivo de configuración de virtualhost. Los archivos de configuración de virtualhost se encuentran en /etc/apache2/sites-available(no edite archivos dentro de sitios habilitados). La instalación predeterminada de Apache utiliza el archivo conf de virtualhost 000-default.conf.

Comience creando un nuevo archivo virtualhost copiando el archivo virtualhost predeterminado utilizado por la instalación predeterminada de Apache (el que se ejecuta en localhost en el puerto 80). Cambie al directorio /etc/apache2/sites-availabley luego haga una copia sudo cp 000-default.conf example.com.conf, ahora edite el archivo sudo gedit example.com.confpara:

<VirtualHost *:80>
    ServerAdmin example@localhost
    DocumentRoot /home/ubuntu/example.com
</VirtualHost>

He eliminado las líneas no importantes del archivo anterior por motivos de brevedad. Aquí DocumentRootestá la ruta al directorio desde el cual se entregarán los archivos del sitio web, como por ejemplo index.html.

Cree el directorio desde el cual desea servir los archivos, por ejemplo, mkdir example.comy cambie el propietario y el grupo predeterminado del directorio, por ejemplo, si su nombre de usuario que inició sesión ubuntucambia los permisos como sudo chown ubuntu:www-data example.com. Esto otorga acceso completo al usuario ubuntuy permite acceso de lectura y ejecución al grupo www-data.

Ahora edite el archivo de configuración de Apache /etc/apache2/apache2.confemitiendo el comando sudo gedit apache2.confy busque la línea <Directory /var/www/>y debajo de la etiqueta de cierre </Directory>, agregue lo siguiente a continuación:

<Directory /home/ubuntu/example.com>
    Options Indexes FollowSymLinks Includes ExecCGI
    AllowOverride All
    Require all granted
</Directory>

Ahora hay dos comandos para habilitar o deshabilitar los archivos de configuración de virtualhost, que son a2ensitey a2dissiterespectivamente. Ahora, dado que nuestro example.com.confarchivo usa el mismo puerto ( 80) que usa el archivo de configuración predeterminado ( 000-default.conf), tenemos que deshabilitar el archivo de configuración predeterminado emitiendo el comando sudo a2dissite 000-default.confy habilitar nuestro archivo de configuración de host virtual alsudo a2ensite example.com.conf

Ahora reinicie o vuelva a cargar el servidor con el comando sudo service apache2 restart. Ahora Apache sirve archivos desde el directorio example.comen localhostel puerto predeterminado de 80.

Básicamente, el a2ensitecomando crea un enlace simbólico al archivo de configuración en el directorio habilitado para el sitio.

No edite archivos dentro del directorio habilitado para sitios (o habilitado para *), como se señala en esta respuesta .

Para cambiar el puerto y ejecutar desde múltiples directorios en diferentes puertos:

Ahora, si necesita ejecutar el directorio en un puerto diferente, cambie el número de puerto de 80 a 8080 editando el archivo virtualhost como:

<VirtualHost *:8080>
    ServerAdmin user@localhost
    DocumentRoot /home/ubuntu/work
</VirtualHost>

y editando /etc/apache2/ports.confy agregando Listen 8080justo debajo de la líneaListen 80

Ahora podemos habilitar el archivo de configuración de virtualhost predeterminado que se ejecuta en el puerto 80, ya que el directorio example.com usa el puerto 8080, como sudo a2ensite 000-default.conf.

Ahora reinicie o vuelva a cargar el servidor con el comando sudo service apache2 restart. Ahora se puede acceder a ambos directorios desde localhosty localhost:8080.

lordvcs avatar May 02 '2017 17:05 lordvcs