Comment puis-je faire fonctionner à nouveau mon annuaire d'utilisateurs pour le partage Web?

26

J'ai activé le partage Web dans Lion et un site Web à http://localhost/~user, où se usertrouve mon répertoire utilisateur. Lorsque je suis passé à Mountain Lion, le partage Web (Apache) est resté activé et je peux aller sur localhost et obtenir le message "Ça marche!" page Web par défaut, mais je ne peux plus accéder à ma page utilisateur. L'erreur est

Interdit

Vous n'êtes pas autorisé à accéder à / ~ utilisateur / sur ce serveur.

Comment réactiver la page Web de mon annuaire d'utilisateurs?

indiv
la source

Réponses:

18

Voici comment vous pouvez réactiver la page Web avec la ligne de commande à l'aide de Terminal.

Copiez d'abord cela et collez-le dans Terminal. Vous devrez peut-être appuyer sur enteraprès avoir collé pour l'exécuter. Il vous demandera votre mot de passe car il ajoute un fichier à votre répertoire système.

USER_DIR=$(basename $(echo ~))
sudo bash -c "cat > /etc/apache2/users/$USER_DIR.conf" <<TEXT
<Directory "/Users/$USER_DIR/Sites">
     Options Indexes MultiViews
     AllowOverride None
     Order allow,deny
     Allow from all
</Directory>
TEXT

Exécutez ensuite cette commande pour redémarrer le serveur Web:

sudo apachectl restart
indiv
la source
Désolé, mon erreur, vous en avez également besoin pour le nom du fichier conf. Néanmoins, $ (basename ~) devrait également fonctionner
nohillside
1
J'ai fait quelque chose de légèrement différent de ça. Merci indiv pour les informations qui m'ont aidé à créer une solution personnalisée pour ma configuration. J'ai ajouté le bloc "Répertoire" que vous avez à /etc/apache2/extra/httpd-userdir.conf avec un "*" à la place de "$ USER_DIR". Cela active les répertoires d'utilisateurs pour tous les utilisateurs qui ont un répertoire "Sites".
Jason
1

J'ai dû ajouter ce FollowSymLinksqui suit à mon /etc/apache2/users/username.conf:

<Directory "/Users/username/Sites/">
Options Indexes MultiViews FollowSymLinks
AllowOverride None
Order deny,allow
Allow from all
</Directory>

( usernamedoit être remplacé par votre vrai nom d'utilisateur)

Matthieu Riegler
la source
1

Voici une commande de terminal d' une ligne qui activera le serveur apache intégré de macOS et vous permettra d'utiliser le répertoire Sites dans votre dossier utilisateur. Il est compatible avec la dernière version de macOS à ce jour (Mojave) et a également été testé pour fonctionner avec Sierra et High Sierra. Je soupçonne que cela fonctionnera également avec d'autres versions - j'ai fait de mon mieux pour l'écrire de manière pérenne.

mkdir ~/Sites ; sudo bash -c "printf '<Directory \"/Users/`whoami`/Sites/\">\n\tAddLanguage en .en\n\tAllowOverride All\n\tOptions Indexes MultiViews FollowSymLinks\n\tRequire all granted\n</Directory>' > /etc/apache2/users/`whoami`.conf ; echo 'AddDefaultCharset utf-8' >> /etc/apache2/httpd.conf ; sed -i '' '/LoadModule userdir_module libexec\/apache2\/mod_userdir.so/s/^#*//g' /etc/apache2/httpd.conf ; sed -i '' '/LoadModule php[0-9]_module libexec\/apache2\/libphp[0-9].so/s/^#*//g' /etc/apache2/httpd.conf ; sed -i '' '/Include \/private\/etc\/apache2\/extra\/httpd-userdir.conf/s/^#*//g' /etc/apache2/httpd.conf ; sed -i '' '/Include \/private\/etc\/apache2\/users\/\*.conf/s/^#*//g' /etc/apache2/extra/httpd-userdir.conf ; apachectl start"

† Eh bien, c'est techniquement une ligne, même si c'est vraiment très long ...

Wowfunhappy
la source
0

Voir /apple//a/57555/9058 , fondamentalement, vous devez activer manuellement le partage Web par utilisateur (avec Terminal.app).

nohillside
la source
0

Mountain Lion supprime le fichier de configuration qui donne un accès Web à votre répertoire utilisateur. Les fichiers de configuration sont dans /etc/apache2/users/. Celui qui manque est user.conf, où l'utilisateur est votre nom d'utilisateur court.

Si vous ne voulez pas jouer avec la ligne de commande, voici un Applescript que vous pouvez exécuter pour créer un fichier de configuration pour votre utilisateur. Il vous demandera votre mot de passe car il doit créer le fichier dans un répertoire au niveau du système et a besoin de privilèges élevés.

Dans votre dossier d'applications ou Launchpad, ouvrez Other > Applescript Editor. Copiez le script ci-dessous et collez-le dans la zone de texte de l'éditeur Applescript. Cliquez ensuite sur le bouton Exécuter .

set userHome to (short user name of (system info))
set configFile to "/etc/apache2/users/" & userHome & ".conf"
set configFileContents to "<Directory \"/Users/" & userHome & "/Sites/\">
    Options Indexes MultiViews
    AllowOverride None
    Order allow,deny
    Allow from all
</Directory>"

do shell script "echo '" & configFileContents & "' > " & configFile with administrator privileges
do shell script "/usr/sbin/apachectl restart" with administrator privileges

Une fois le script terminé, vous devriez pouvoir accéder à votre page Web au niveau utilisateur.

indiv
la source