Cambie la carpeta raíz del documento Apache al disco duro secundario

28

Instalé la edición del servidor ubuntu 12.04 para mi PC servidor. Había instalado el servidor de la lámpara. Necesito cambiar la ubicación var / www a mi ubicación del disco duro secundario. me configuré tantas veces en gedit / etc / apache2 / sites-available / default aquí está mi código

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    #DocumentRoot /var/www
    DocumentRoot /media/myserver/
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    #<Directory /var/www/>
        <Directory /media/myserver/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        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

    CustomLog ${APACHE_LOG_DIR}/access.log combined

    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>

y también usado

sudo chown -R var/www /media/myserver/

y

chmod -R 755 /media/myserver/

todavía no pude conectar mi / media / myserver y mi navegador muestra el siguiente mensaje

Forbidden

You don't have permission to access / on this server.

Dígale a alguien cómo montar myserver en mi var / www, gracias de antemano

Kevin - Dhinesh babu
fuente
¿se formateó y montó la segunda unidad en el directorio / media / myserver? ¿agregaste una entrada fstab para esa unidad?
damien
¿Ha comprobado si la barra inclinada final en la raíz del documento es el problema, observe dónde está comentado no existe, pero en su edición, sí existe?
Chris
¿Intentaste cambiar el archivo apache2.conf?
Golden_flash

Respuestas:

40

Tendrá que editar apache2.confy 000-default.confcambiar la raíz del documento de apache.

El servidor Apache está instalado en var/www/html. Este es el directorio raíz predeterminado de apache.

Cambie el directorio raíz de Apache o mueva el proyecto a /var/www/html.

  1. Para cambiar el directorio raíz de Apache, ejecute:

    cd /etc/apache2/sites-available
    
  2. Luego abra el 000-default.confarchivo con el comando:

    nano 000-default.conf
    
  3. Edite la DocumentRootopción:

    DocumentRoot /path/to/my/project
    
  4. Luego reinicie el servidor apache:

    sudo service apache2 restart
    

Si obtiene Forbidden You don't have permission to access / on this serverdespués de cambiar la raíz de apache, siga estos pasos

  1. Encuentre el apache2.confubicado en /etc/apache2y ábralo usando:

    nano apache2.conf
    
  2. Use Ctrl+ Wy busque Directorio (debe estar en la línea 153)

  3. Debe tener un aspecto como este

    <Directory />
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all denied
    </Directory>
    
  4. Cámbialo a

    <Directory />
        Options Indexes FollowSymLinks Includes ExecCGI
        AllowOverride All
        Require all granted
    </Directory>
    
  5. Reiniciar apache

    sudo service apache2 restart
    

Hice un script que cambia la raíz de apache en un solo comando. Lo puedes encontrar en mi github .

Harjot
fuente
Es una especie de trabajo para mí, pero tengo que agregar <Directory /path/to/my/project>Options Indexes FollowSymLinks AllowOverride All Require all denied </Directory>. En /etc/apache2/apahce2.confantes de reiniciar el servicio apache2.
2016
19

Quizás un poco tarde. Pero aún..

Debe editar los permisos de su directorio en apache.conf en / etc / apache2

Busque esto

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

y agregue este código debajo de él, lo que le da permiso para acceder a su directorio

 <Directory /media/myserver/>
            Options Indexes FollowSymLinks
            AllowOverride None
            Require all granted
    </Directory>
onurbekiroglu
fuente
3

Simplemente cambie la raíz del documento en su configuración activada. /etc/apache2/sites-enabled/000-default y luego asegúrese de volver a cargar su apache.

Intenta con esto:

<VirtualHost *:80>
    ServerAdmin webmaster@localhost

    DocumentRoot /media/myserver/
    <Directory />
        Options FollowSymLinks
        AllowOverride None
    </Directory>
    <Directory /media/myserver/>
        Options Indexes FollowSymLinks MultiViews
        AllowOverride None
        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

    CustomLog ${APACHE_LOG_DIR}/access.log combined
</VirtualHost>

Entonces se debe otorgar el permiso adecuado de esta manera:

sudo adduser <username> www-data
sudo chown -R www-data:www-data /media/myserver/
sudo chmod -R g+rw /media/myserver/
Achu
fuente
Sí, mi amigo, ya había hecho esto. vea el código anterior, comenté la raíz del documento predeterminado e inserté la nueva raíz del documento. después de apache2 pare y comience. No ha funcionado. es error 403, y mostró permiso de acceso denegado y mi navegador
Kevin - Dhinesh babu
¿Has visto mi última edición?
Achu
Sí, vi esto. todavía se muestra que no tiene permiso para acceder / en este servidor
Kevin - Dhinesh babu
2

Como solución rápida (segura y rápida), puede hacer que el punto de montaje de su disco duro externo sea el directorio raíz predeterminado (/ var / www de forma predeterminada).

Asignar el punto de montaje a un directorio existente es seguro, pero no se puede acceder al contenido anterior a menos que desmonte el controlador.

Para obtener más información sobre cómo crear un punto de montaje, consulte esto .

Yahya Tawil
fuente
De acuerdo con esa idea, montaría cierta carpeta, usando bindfs, como se describe aquí: askubuntu.com/a/1024308/566421
pa4080
1

sudo gedit etc/apache2/apache2.conf agregue esto Opciones Índices FollowSymLinks MultiViews AllowOverride Ninguno Orden allow, denegar permiso de todos

en configuración virtual:/etc/apache2/sites-available/site.conf

ServerAdmin [email protected]
ServerName anilrmg.localhost.com
ServerAlias www.anilrmg.localhost.com
DocumentRoot /home/anilrmg/projects/code/anilrmg

sudo a2dissite 000-default.conf

Anil Gupta
fuente
1

Para aquellos que usan adiciones de invitados VirtualBox y obtienen a you don't have permission to access /on this serverpesar de todo lo mencionado anteriormente:

Si está intentando configurar la carpeta raíz del documento de Apache en una carpeta compartida de VirtualBox, y ha intentado todo lo anterior y eso no ayudó, hay un paso más.

En resumen, la solución es agregar el usuario 'www-data' al grupo 'vboxsf':

sudo usermod -a -G vboxsf www-data

No puede cambiar el propietario y / o el grupo de la carpeta compartida VirtualBox, pero la solución anterior funcionó bien para mí.

Yuri Fedorov
fuente
1

¡También me encuentro con el mismo problema y podría resolverlo!

Lo que necesitas hacer es

  1. usted modifica apache2.conf. Intercambiar /var/www/a su camino: <Directory /your/path/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>

  2. Modifique 000-default.conf:

    DocumentRoot /your/path/

  3. cambie la propiedad de los directorios a usted mismo desde el administrador de archivos o terminal (por ejemplo, sudo chown pi: ruta) Sin esto, obtendrá el mensaje "No tiene permiso para acceder / en este servidor". mensaje de error.

Eso es todo.

eatysweaty
fuente