web-dev-qa-db-fra.com

Changer le dossier racine du document Apache sur le disque dur secondaire

J'ai installé l'édition du serveur Ubuntu 12.04 pour mon PC serveur. j'avais installé le serveur de lampe. J'ai besoin de changer l'emplacement de var/www en mon emplacement de disque dur secondaire. j'ai été configuré si souvent à 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.

S'il vous plaît dites à personne comment monter myserver sur mon var/www, merci d'avance

26

Vous devrez éditer Apache2.conf et 000-default.conf pour changer 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.

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

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

    cd /etc/Apache2/sites-available
    
  2. Ouvrez ensuite le fichier 000-default.conf à l’aide de la commande suivante:

    nano 000-default.conf
    
  3. Editez l’option DocumentRoot:

    DocumentRoot /path/to/my/project
    
  4. Puis redémarrez le serveur Apache:

    Sudo service Apache2 restart
    

Si vous obtenez Forbidden You don't have permission to access / on this server après avoir changé la racine d’Apache, procédez comme suit:

  1. Recherchez le Apache2.conf situé dans /etc/Apache2 et ouvrez-le en utilisant:

    nano Apache2.conf
    
  2. Utilisation Ctrl+W et rechercher un répertoire (il devrait être à la ligne 153)

  3. Ça devrait ressembler à ça

    <Directory />
        Options Indexes FollowSymLinks
        AllowOverride All
        Require all denied
    </Directory>
    
  4. Le changer en

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

    Sudo service Apache2 restart
    

J'ai créé un script qui modifie la racine Apache en une seule commande. Vous pouvez le trouver sur mon github .

33
Harjot

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

Vous devez modifier vos autorisations de répertoire dans Apache.conf sous/etc/Apache2.

Rechercher ceci

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

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

Alors essayez 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, la permission appropriée devrait être donnée comme ceci:

Sudo adduser <username> www-data
Sudo chown -R www-data:www-data /media/myserver/
Sudo chmod -R g+rw /media/myserver/
3
Achu

En guise de solution de contournement rapide (sûre et rapide), vous pouvez associer le point de montage de votre pilote dur externe au répertoire racine par défaut (/ var/www par défaut).

L'affectation du point de montage à un répertoire spécifique 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 à this .

2
yahya tawil

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

Ce que tu dois faire c'est

  1. vous modifiez Apache2.conf. Echangez /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. changez la propriété des répertoires à vous-même depuis le gestionnaire de fichiers ou le terminal (par exemple, Sudo chown pi: path). Sans cela, vous obtiendrez le message "Vous n'êtes pas autorisé à accéder à/sur ce serveur." Message d'erreur.

C'est tout.

1
eatysweaty

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

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

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é de VirtualBox, mais la solution ci-dessus a bien fonctionné pour moi.

1
Yuri Fedorov

Sudo gedit etc/Apache2/Apache2.conf ajouter ceci Options Index FollowSymLinks MultiViews AllowOverride Aucun Ordre autoriser, refuser autoriser de tous

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

1
Anil Gupta