Changer le dossier racine du document Apache en disque dur secondaire

28

J'ai installé l'édition du serveur ubuntu 12.04 pour mon ordinateur serveur. j'avais installé le serveur de lampe. j'ai besoin de changer l'emplacement var / www pour mon emplacement de disque dur secondaire. j'ai été configuré tant de fois sur gedit / etc / apache2 / sites-available / default voici mon code

<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>

et aussi utilisé

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

et

chmod -R 755 /media/myserver/

je n'ai toujours pas pu connecter mon / media / myserver et mon navigateur affiche le message suivant

Forbidden

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

Veuillez dire à quiconque comment monter myserver sur mon var / www, merci d'avance

Kevin - Dhinesh babu
la source
le deuxième disque a-t-il été formaté et monté dans le répertoire / media / myserver? avez-vous ajouté une entrée fstab pour ce lecteur?
damien
Avez-vous vérifié si la barre oblique à la racine du document est le problème?
Chris
Avez-vous essayé de changer le fichier apache2.conf?
Golden_flash

Réponses:

40

Vous devrez modifier apache2.conf et 000-default.confchanger la racine du document d'apache.

Le serveur Apache est installé sur var/www/html . Il s'agit du répertoire racine par défaut d'Apache.

Modifiez le répertoire racine d'Apache ou déplacez le projet vers /var/www/html.

  1. Pour modifier le répertoire racine d'Apache, exécutez:

    cd /etc/apache2/sites-available
    
  2. Ouvrez ensuite le 000-default.conffichier à l'aide de la commande:

    nano 000-default.conf
    
  3. Modifiez l' DocumentRootoption:

    DocumentRoot /path/to/my/project
    
  4. Redémarrez ensuite le serveur apache:

    sudo service apache2 restart
    

Si vous obtenez Forbidden You don't have permission to access / on this serveraprès avoir changé la racine d'Apache, suivez ces étapes

  1. Trouvez le apache2.confsitué dans /etc/apache2et ouvrez-le en utilisant:

    nano apache2.conf
    
  2. Utilisez Ctrl+ Wet recherchez Répertoire (il devrait être à la ligne 153)

  3. ça devrait ressembler à ça

    <Directory />
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all denied
    </Directory>
    
  4. Remplacez-le par

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

    sudo service apache2 restart
    

J'ai fait un script qui change la racine d'apache en une seule commande. Vous pouvez le trouver sur mon github .

Harjot
la source
C'est une sorte de travail pour moi mais je dois ajouter <Directory /path/to/my/project>Options Indexes FollowSymLinks AllowOverride All Require all denied </Directory>. Dans /etc/apache2/apahce2.confavant de redémarrer le service apache2.
r0ng
19

Peut-être un peu tard. Mais reste..

Vous devez modifier les autorisations de votre répertoire dans apache.conf sous / etc / apache2

Recherchez

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

et ajoutez ce code sous celui-ci, qui donne la permission d'accéder à votre répertoire

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

Modifiez simplement la racine du document dans votre configuration activée. /etc/apache2/sites-enabled/000-default puis assurez-vous de recharger votre apache.

Essayez donc avec ceci:

<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>

Ensuite, l'autorisation appropriée doit être donnée comme suit:

sudo adduser <username> www-data
sudo chown -R www-data:www-data /media/myserver/
sudo chmod -R g+rw /media/myserver/
Achu
la source
oui mon ami j'ai déjà fait ça. voir le code ci-dessus, j'ai commenté la racine de document par défaut et inséré une nouvelle racine de document. après apache2 arrêter et démarrer. ça ne marche pas. c'est une erreur 403, et la permission d'accès a été refusée et mon navigateur
Kevin - Dhinesh babu
Avez-vous vu ma dernière édition?
Achu
oui j'ai vu ça. c'est toujours montrer que vous n'avez pas la permission d'accéder à / sur ce serveur
Kevin - Dhinesh babu
2

Comme solution rapide (sûre et rapide), vous pouvez placer le point de montage de votre pilote dur externe dans le répertoire racine par défaut (/ var / www par défaut).

L'affectation du point de montage à un répertoire existant est sûre mais l'ancien contenu ne peut être atteint que si vous avez démonté le pilote.

Pour en savoir plus sur la création d'un point de montage, reportez-vous à ceci .

yahya tawil
la source
Selon cette idée, je monterais certains dossiers, en utilisant bindfs, comme il est décrit ici: askubuntu.com/a/1024308/566421
pa4080
1

sudo gedit etc/apache2/apache2.conf ajouter ceci Options Index FollowSymLinks MultiViews AllowOverride None Order allow, deny allow from all

en configuration virtuelle:/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
la source
1

Pour ceux qui utilisent les ajouts d'invité VirtualBox et obtiennent you don't have permission to access /on this servermalgré tout ce qui est mentionné ci-dessus:

Si vous essayez de définir le dossier racine du document Apache sur un dossier partagé VirtualBox, et que vous avez tout essayé ci-dessus et que cela n'a pas aidé, il y a une étape de plus.

En bref, la solution consiste à ajouter l'utilisateur 'www-data' au groupe 'vboxsf':

sudo usermod -a -G vboxsf www-data

Vous ne pouvez pas changer le propriétaire et / ou le groupe du dossier partagé VirtualBox, mais la solution ci-dessus a bien fonctionné pour moi.

Yuri Fedorov
la source
1

Je rencontre aussi le même problème et je pourrais le résoudre!

Ce que vous devez faire c'est

  1. vous modifiez apache2.conf. Échangez /var/www/vers votre chemin: <Directory /your/path/> Options Indexes FollowSymLinks AllowOverride None Require all granted </Directory>

  2. Modifiez 000-default.conf:

    DocumentRoot /your/path/

  3. changer la propriété des répertoires pour vous-même à partir du gestionnaire de fichiers ou du terminal (par exemple sudo chown pi: path) Sans cela, vous obtiendrez le "Vous n'avez pas la permission d'accéder à / sur ce serveur." Message d'erreur.

C'est tout.

en sueur
la source