Apache non funziona con la cartella Siti dell'utente su macOS 10.13 High Sierra

8

Ho seguito questa guida per impostare Apache su High Sierra: link

L'ho usato per configurarlo su Sierra.

Ma quando vado su http://localhost/~scott/ ottengo "Forbidden. Non hai il permesso di accedere a / ~ scott / su questo server".

Un suggerimento su questa domanda simile: localhost / userdir su macOS High Sierra è quello di caricare i vhost. Che ho provato, ma ho ancora "Proibito".

Qualcosa è cambiato tra Sierra e High Sierra che impedirebbe ad Apache di funzionare con le cartelle utente di Sites?

    
posta Scott Fyfe 27.09.2017 - 20:48
fonte

15 risposte

8

Questo ha funzionato per me quando ho incontrato lo stesso problema.

Controlla il file "/private/etc/apache2/extra/httpd-userdir.conf".

cambia

#Include /private/etc/apache2/users/*.conf

a

Include /private/etc/apache2/users/*.conf

e riavvia apache.

Da: link

    
risposta data 27.09.2017 - 21:51
fonte
4

Solo per approfondire la risposta di Diogo Lima.

Con l'aggiornamento ad High Sierra, Apple ha fatto delle copie delle tue precedenti impostazioni di apache e ha aggiunto un ~ precedente ai file * .conf sia nelle cartelle / etc / apache2 che in / etc / apache2 / extra. Se si utilizzano host virtuali o host ssl-virtual, sarà necessario spostare anche le versioni precedenti per tali file .conf.

mv /etc/apache2/extra/httpd-vhosts.conf~previous /etc/apache2/extra/httpd-vhosts.conf
mv /etc/apache2/extra/httpd-ssl.conf~previous /etc/apache2/extra/httpd-ssl.conf
    
risposta data 11.11.2017 - 02:18
fonte
1

Ero nella stessa situazione, a quanto pare ci sono altre righe da decommentare in httpd.conf, i vhosts non sono attivati su High Sierra. - link

    
risposta data 10.10.2017 - 08:06
fonte
1

Appena aggiornato questa mattina Usando la cartella Sites in / Users / username.

Eseguito il backup e sostituito httpd.conf, httpd-userdir.conf e https-vhosts.conf con le ~ varianti precedenti.

Ran sudo apachectl configtest e ha ottenuto l'errore PHP (PHP aggiornato a 7 in High Sierra). Modifica http.conf per avviare PHP7 e ora tutto funziona di nuovo.

    
risposta data 26.11.2017 - 15:48
fonte
1

Dopo aver provato tutti i metodi di cui sopra, se ancora ricevi "vietato" quando accedi a localhost, prova ad aggiungere virtualhost nel tuo /etc/apache2/extra/httpd-vhosts.conf

Add:

<VirtualHost *:80>
ServerName localhost
DocumentRoot /Library/WebServer/Documents/
</VirtualHost>

quindi riavvia apache.

link

funziona bene per me

    
risposta data 08.12.2017 - 16:41
fonte
0

Accidenti !! L'ho capito da solo.

Fai questi passaggi

Passaggio 1: apri il terminale ed esegui questo comando di seguito

sudo atom /etc/apache2/httpd.conf

Quindi Decommenta la riga rimuovendo il segno "#" prima di

LoadModule php7_module libexec/apache2/libphp7.so

Passaggio 2: esegui il seguente comando indicato di seguito

cd /private/etc

sudo cp php.ini.default php.ini

Passaggio 3: quindi vai alla tua directory /Library/WebServer/Documents e fai un

sudo chown -R  root yourprojectname

Torna al browser Safari e digita "http://localhost/yourprojectname"

Sei pronto per partire.

Sto usando MacOS High Sierra 10.13, è stato aggiornato ieri mattina.

    
risposta data 29.09.2017 - 14:48
fonte
0

Ho passato l'intera mattinata a capirlo, ma alla fine ha funzionato. Spero che questo possa essere utile per qualcuno.

Ho seguito una guida, ma con un leggero cambiamento.

  • Questa è la guida: link (grazie David Marcus!)
  • Questo è il mio tweak sotto la sezione Crea cartella Sites : /users/username/Sites/ , I ha aggiunto l'ultima barra per farlo funzionare per me.

Ora posso accedere alle cartelle localhost, ma ...

Prima dell'alta sicurezza era come: http://localhost/~username/smomesite.local

Ora è come: http://localhost/smomesite.local

Non è necessario più ~username .

    
risposta data 16.10.2017 - 13:06
fonte
0

Per consentire l'accesso alla directory di Sites, devi aggiungere quanto segue a /etc/apache2/httpd.conf :

<DirectoryMatch "/Users/.*/Sites">
  Require all granted
</DirectoryMatch>

La configurazione predefinita di Apache è impostata su negato su /, quindi devi consentire esplicitamente l'accesso a tutto.

    
risposta data 06.11.2017 - 15:10
fonte
0

Ho appena avuto lo stesso problema e volevo fare esattamente ciò che volevi (mantenere la radice su / Library / WebServer / Documents, ma anche consentire le cartelle degli utenti di Sites). Non sono sicuro che questo possa essere d'aiuto, ma stasera, dopo aver sbattuto per ore, guardando da una riga all'altra tutti i file .conf e chiedendomi cosa c'era di sbagliato, ho capito che il processo httpd non era in grado di leggere il mio propria directory utente. Per qualche motivo è stato impostato come 750 e l'utente _www non è in grado di leggerlo. Una volta risolto il problema eseguendo "chmod 755". sulla mia directory utente, la cartella Sites ha mostrato fino a.

Non sono sicuro di come sia stata la mia directory utente, poiché sembra che abbiano come valore predefinito 755 quando creo un nuovo utente. E avevo già controllato più volte che la mia cartella Sites era impostata su 755.

    
risposta data 10.11.2017 - 10:29
fonte
0

Ho avuto lo stesso problema. Ho decomposto le due righe seguenti (come già suggerito in un'altra risposta)

#LoadModule vhost_alias_module libexec/apache2/mod_vhost_alias.so 
#Include /private/etc/apache2/extra/httpd-vhosts.conf

Ma ho ancora lo stesso errore. Il trucco per me è stato decommentare queste righe aggiuntive nel file httpd.conf:

#LoadModule userdir_module libexec/apache2/mod_userdir.so 
#LoadModule include_module libexec/apache2/mod_include.so 
#LoadModule rewrite_module libexec/apache2/mod_rewrite.so

Spero che ti aiuti.

    
risposta data 13.11.2017 - 00:06
fonte
0

Accade che l'aggiornamento abbia spostato tutta la configurazione precedente nei file .conf ~ precedente. Se si sposta /etc/apache2/extra/httpd-userdir.conf~previous in /etc/apache2/extra/httpd-userdir.conf e /etc/apache2/extra/httpd.conf~previous in / etc / apache2 / extra / httpd.conf, dovrebbe funzionare come prima.

mv /etc/apache2/extra/httpd-userdir.conf /etc/apache2/extra/httpd-userdir.conf~high-sierra
mv /etc/apache2/httpd.conf /etc/apache2/httpd.conf~high-sierra
mv /etc/apache2/extra/httpd-userdir.conf~previous /etc/apache2/extra/httpd-userdir.conf
mv /etc/apache2/httpd.conf~previous /etc/apache2/httpd.conf
apachectl restart
    
risposta data 31.10.2017 - 19:58
fonte
0

Ho avuto lo stesso problema. La risoluzione è stata facile. Vedi la risposta pubblicata qui: link

I faced the same after I upgraded to High Sierra earlier today. I found that the following apache files were replaced with brand new versions. Fortunately for all of these files there existed a FILE~previous file in the same folder. I just copied the ~previous version back to the original ones, restarted apache and everything was fine.

In folder /etc/apache2 :

./httpd.conf
./extra/httpd-vhosts.conf
./extra/httpd-ssl.conf

Example:

cp /etc/apache2/httpd.conf~previous /etc/apache2/httpd.conf
    
risposta data 22.11.2017 - 02:33
fonte
0

Sostituisci

./httpd.conf
./extra/httpd-vhosts.conf
./extra/httpd-ssl.conf

dai precedenti ~ precedenti file.

Potresti ottenere l'errore del modulo php5 in httpd.conf, sostituire php5 con php7 e i tuoi siti dovrebbero iniziare a funzionare.

Sostituisci

LoadModule php5_module libexec/apache2/libphp5.so

Con

LoadModule php7_module libexec/apache2/libphp7.so
    
risposta data 28.11.2017 - 18:02
fonte
0

Ho appena aggiornato e ho avuto esattamente gli stessi problemi. Non uso vhosts. La soluzione per me era garantire:

In https.conf uncomment

LoadModule userdir_module libexec/apache2/mod_userdir.so

LoadModule authz_host_module libexec/apache2/mod_authz_host.so

LoadModule authz_user_module libexec/apache2/mod_authz_user.so

LoadModule authz_core_module libexec/apache2/mod_authz_core.so

e assicurati che extra/httpd-user.conf abbia la linea:

UserDir Sites
    
risposta data 20.12.2017 - 09:04
fonte
0

Possibile soluzione (dopo aver fallito con tutti i suggerimenti di cui sopra). Il problema è con il permesso della home directory. Dovrebbe essere eseguibile per gruppo / altri:

sudo chmod go + x / Users / username

dove "nome utente" deve essere sostituito con il nome utente effettivo. Dopo questo, funziona!

    
risposta data 01.02.2018 - 15:53
fonte

Leggi altre domande sui tag