it-swarm-eu.dev

Oprava 403 Zakázáno v alias adresáři s Apache

Snažím se nastavit alias tak, aby ukazoval na nějaký adresář na mém souborovém systému, který není v DocumentRootu. Teď dostanu 403 zakázanou odpověď. Toto jsou kroky: 1. upravit http.conf a přidat:

Alias /example "/Users/user/Documents/example"

pak...

<Directory "/Users/user/Documents/example">
   Options Indexes FollowSymLinks MultiViews
   AllowOverride None
   Order allow,deny
   Allow from all</Directory>

2. nastavení oprávnění s chmod v terminálu:

chmod 755 /Users/user/Documents/example

Mělo by to fungovat? místo toho mám přístup zakázán. Toto je výstup z error_log:

[Sun Jul 24 06:57:57 2011] [error] [client xx.xx.xx.xx] (13)Permission denied: access to /example denied
30
sjking

Měl jsem tento problém na OS X taky. Ukázalo se gliptak bylo správné, ale přidal jsem další podrobnosti.

Oba se pokoušíme nakonfigurovat virtuální adresář pro složku pod domovskou složkou uživatele. Myslím, že to je důvod, proč máme problém. V mém případě jsem měl následující nastavení:

  • Domovská složka je /Users/calrion.
  • Složka virtuálního adresáře je /Users/calrion/Path/to/www.
  • Je zde symbolický odkaz /Users/calrion/Path ukazující na /Volumes/Other/Users/calrion/Path.

Problémem byl uživatel a skupina _www (které Apache spouští jako na OS X) postrádal přístup k /Users/calrion a /Volumes/Other/Users/calrion.

Spuštění chmod o+x /Users/calrion a chmod o+x /Volumes/Other/Users/calrion vyřešilo problém (v OS X 10.7.4).

Pravidlo zde je, že Apache vyžaduje spuštění přístupu k all složkám v cestě, aby sloužil souborům. Bez toho získáte HTTP 403 (zakázáno).

26
Calrion

Poslední sláma;) Požadovaná místní položka v položce Adresář ...

jako

<Directory "/Users/user/Documents/example">
   Options Indexes FollowSymLinks MultiViews
   AllowOverride All
   Require local
   Order allow,deny
   Allow from all
</Directory>

pokud vše ostatní nefunguje (správný Alias, Directory Entry v httpd.conf a opravte mod/usr/grp).

mějte na paměti: pokud umístíte vaše stránky do uživatelského prostoru, uživatel Apache (běžící httpd) potřebuje přístup do vašeho domova!

13
Mirco Ellmann

To vše jsou velmi dobré odpovědi. Žádný z nich pro mě nepracoval.

Mám alias zadaný v serveru OSX ukazující na uživatelský adresář. Strávil jsem dlouho při chmoddingu a hrávání s uživatelem _www, rekurzivně přidávám spustitelná oprávnění, odinstaloval macporty a všechny druhy věcí, které se snaží dostat do práce. Snažil jsem se 777. Ne. Nevím, proč to nefungovalo.

Nakonec, Zaškrtl jsem zaškrtávací políčko "sdílená složka" v Finderu pro tuto složku a fungoval na zadané doméně s aktivním php, tak jak jsem to chtěl. :/... takže to bylo snadné.

9
greenland

Kontrola oprávnění /Users/user/Documents/, /Users/user/ (oprávnění vyšší úrovně jsou vynucena jako první ...)

/bin/su do uživatele používajícího Apache (např. www, www-data) a cat soubor v adresáři /Users/user/Documents/example. To by vás mohlo nasměrovat k povolení problémů s nastavením.

9
gliptak

Měl jsem právě tento stejný problém. Bylo zjištěno, že SE_Linux byl povolen a bezpečnostní kontext souborů v mém adresáři Aliased byl nesprávný, chybí httpd_sys_content_t. 

Kontext zabezpečení můžete zobrazit pomocí ls -Z. Pokud vaše soubory/složky nemají httpd_sys_content_t, Apache je nezveřejní! Můžete přidat správný kontext s něčím jako chcon -R --type=httpd_sys_content_t /new_html_directory. Tím se změní kontext souborů aktuálně v adresáři, ale ne všechny soubory, které jsou přidány později (pro to budete muset pracovat s semanage). Druhou možností je ponechat soubory pod/var/www.

6
sudol

Zde je to, co to pro mě stanovilo:

v /etc/Apache2/httpd.conf

<Directory />
    Options FollowSymLinks
    AllowOverride None

    # REMOVE THESE LINES
    #Order deny,allow
    #Deny from all

    # ADD THIS LINE
    Require all denied
</Directory>

Tato změna implementuje změny provedené v aktualizaci Apache z 2,2 na 2,4 . Aktualizace OSX Yosemite přinesla aktualizaci Apache s ní (PSA: pokud plánujete upgrade na Yosemite, rozpočet si týden na opravu všeho, co se zlomí).

Podivná věc je, že už mám Apache 2.4 funkční a najednou se znovu rozbije.

PSA: pokud plánujete upgrade na Yosemite, rozpočet si týden na opravu všeho, co přestane

4
edan

Po spoustu času odpad jsem opraven problém a chtěl jsem sdílet, aby ušetřil váš čas.

Všichni gentelmenové a na jiných postech mají ve svých odpovědích nějaké správné části, ale níže je součet

Ve vašem souboru "/etc/Apache2/httpd.conf":

1- změnit kořen dokumentu

Original: DocumentRoot "/Library/WebServer/Documents"
Change to: DocumentRoot "/Users/yourname/www"

2 - změna

Originál: 

<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

Změnit: 

<Directory /Users/yourname/www>
    Options FollowSymLinks Includes ExecCGI
    AllowOverride None
    Order deny,allow
    Deny from all
</Directory>

3- Změna: 

Originál: 

<Directory "/Library/WebServer/Documents">

Změnit:

<Directory "/Users/yourname/www">

4. Nakonec nemusíte tento krok potřebovat, pokud jste uživatelem večeře, to znamená nastavit správnou povolení v nové kořenové složce

chmod 755 /Users/yourname/www

Doufám, že to pomůže

3
Razmig

SELinux byl pro mě viníkem. Pokud máte tento problém na linuxovém poli a vaše alias a oprávnění k souborům jsou správná, zkuste provést "setenforce 0", aby se SELinux dostal do režimu permisivního režimu. To pro mě znamenalo trik.

0
ktbiz

Rychlé řešení:

Tyto příkazy použijte jako root v systému Linux:

find /var/www -type d -exec chmod 755 {} \;
find /var/www -type f -exec chmod 644 {} \;
0
Israelmikan

Musel jsem vrátit svůj konfigurační soubor Apache a znovu nastavit server. to bylo užitečné: https://Apple.stackexchange.com/questions/41143/how-to-revert-default-mac-Apache-install-to-original

0
TacoEater

Určitě to vypadá dobře, proveďte kontrolu zdravosti.

  • restartovali jste Apache

  • kontrolovat vlastnictví skupiny a uživatele

  • Myslím, že citace mohou být odstraněny

  • existuje něco v/Users/user/Documents/example? 

  • zkuste 777

-Sean

0
Sean Kimball