Come faccio a far funzionare nuovamente la mia directory utente per la condivisione Web?


26

Avevo abilitato la condivisione web in Lion e in un sito web http://localhost/~user, dove si usertrova la mia directory utente. Quando sono passato a Mountain Lion, la condivisione web (Apache) è rimasta abilitata e posso andare su localhost e ottenere "Funziona!" pagina Web predefinita, ma non riesco più ad accedere alla mia pagina utente. L'errore è

Vietato

Non sei autorizzato ad accedere a / ~ user / su questo server.

Come riattivare la pagina Web della mia directory utente?

Risposte:


18

Ecco come riattivare la pagina Web con la riga di comando utilizzando Terminale.

Prima copia questo e incollalo nel Terminale. Potrebbe essere necessario premere enterdopo averlo incollato per eseguirlo. Chiederà la tua password perché sta aggiungendo un file alla tua directory di sistema.

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

Quindi eseguire questo comando per riavviare il server Web:

sudo apachectl restart

Scusa, errore mio, ne hai bisogno anche per il nome del file conf. Tuttavia, dovrebbe funzionare anche $ (basename ~)
nohillside

1
Ho fatto qualcosa di leggermente diverso da questo. Grazie indiv per le informazioni che mi hanno aiutato a creare una soluzione personalizzata per la mia configurazione. Ho aggiunto il blocco "Directory" in /etc/apache2/extra/httpd-userdir.conf con un "*" al posto di "$ USER_DIR". Ciò abilita le directory degli utenti per tutti gli utenti che dispongono di una directory "Sites".
Jason

1

Ho dovuto aggiungere FollowSymLinkscome segue al mio /etc/apache2/users/username.conf:

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

( usernamedeve essere sostituito dal tuo vero nome utente)


1

Ecco un comando terminale a una riga che abiliterà il server apache integrato di macOS e ti consentirà di utilizzare la directory Sites nella cartella Utente. È compatibile con l'ultima versione di macOS al momento della stesura (Mojave) ed è stato testato per funzionare con Sierra e High Sierra. Sospetto che funzionerà anche con altre versioni: ho fatto del mio meglio per scriverlo in modo a prova di futuro.

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"

† Beh, tecnicamente è una riga, anche se è davvero molto lunga ...



0

Mountain Lion rimuove il file di configurazione che consente l'accesso Web alla directory dell'utente. I file di configurazione sono in /etc/apache2/users/. Quello mancante è user.conf, dove l'utente è il tuo nome utente breve.

Se non vuoi giocherellare con la riga di comando, ecco un Applescript che puoi eseguire per creare un file di configurazione per il tuo utente. Chiederà la tua password perché deve creare il file in una directory a livello di sistema e necessita di privilegi elevati.

Nella cartella delle applicazioni o Launchpad, apri Other > Applescript Editor. Copia lo script qui sotto e incollalo nell'area di testo dell'editor Applescript. Quindi fare clic sul pulsante Esegui .

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

Al termine dello script, dovresti essere in grado di accedere alla tua pagina web a livello di utente.

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.