mac OS X Yosemite'ye yükseltildikten sonra sunucu yapılandırması tarafından reddedilen apache istemcisi


12

Bu diğer sorulara benzer görünüyor biliyorum ama Yosemite yükseltme ile apache yapılandırması ile bir şey değişmiş gibi görünüyor. hata günlüğümde "istemci sunucu yapılandırması tarafından reddedildi: /Users/douglas/Sites/testpatient.php" yazıyor

Apache sürümü: MacBook-Pro: apache2 douglas $ apachectl -v Sunucu sürümü: Apache / 2.4.9 (Unix) Sunucu oluşturuldu: Eyl 9 2014 14:48:20 douglas.conf dosyam 644 root / wheel ve aşağıdakiler:

<Directory "/Users/douglas/Sites">
   Options Indexes Multiviews
   AllowOverride None
   Order allow,deny
   Allow from all
</Directory>

benim http.conf aşağıdakilere sahiptir:

# If you wish httpd to run as a different user or group, you must run
# httpd as root initially and it will switch.
#
# User/Group: The name (or #number) of the user/group to run httpd as.
# It is usually good practice to create a dedicated user and group for
# running httpd, as with most system services.
#
User _www
Group _www

</IfModule>

...

DocumentRoot "/Library/WebServer/Documents"

#
# Each directory to which Apache has access can be configured with respect
# to which services and features are allowed and/or disabled in that
# directory (and its subdirectories).
#
# First, we configure the "default" to be a very restrictive set of
# features.
#
<Directory />
    Options FollowSymLinks
    AllowOverride None
    Order deny,allow
    Deny from all
    Satisfy All
</Directory>

...

<Directory "/Library/WebServer/Documents">
#
# Possible values for the Options directive are "None", "All",
# or any combination of:
#   Indexes Includes FollowSymLinks SymLinksifOwnerMatch ExecCGI MultiViews
#
# Note that "MultiViews" must be named *explicitly* --- "Options All"
# doesn't give it to you.
#
# The Options directive is both complicated and important.  Please see
# http://httpd.apache.org/docs/2.2/mod/core.html#options
# for more information.
#
Options Indexes FollowSymLinks MultiViews

#
# AllowOverride controls what directives may be placed in .htaccess files.
# It can be "All", "None", or any combination of the keywords:
#   Options FileInfo AuthConfig Limit
#
#AllowOverride None
AllowOverride All
#
# Controls who can get stuff from this server.
#
Order allow,deny
Allow from all
Satisfy All
</Directory>

Her şey takdir edilecektir. Önceki http.conf dosyasına geri dönmeyi denedim, ancak yüklenmesi gereken modüller kadar bir takım farklılıklar var. Bir modülü kaçırmış olmak tamamen mümkündür ama günlükte herhangi bir şikayet yoktur.


İken chrisMc 'ın cevabı çok yerinde, gelecek Stumblers da okumak isteyebilirsiniz Mac OS X Yosemite üzerinde Apache, PHP ve MySQL kurulumu .
Jason McCreary

Yanıtlar:


17

Kullanıcı .conf (douglas.conf) yerine şunu değiştirin:

Order allow,deny
Allow from all

İle:

Require all granted

Fark, apache 2.4'ün izinleri işleme biçimidir

http://httpd.apache.org/docs/2.4/upgrading.html


Httpd.conf ve douglas.conf'daki ayarları değiştirdim ancak yine de aynı hatayı alıyorum
new2code

1
Apache'yi yeniden başlatmayı unutmayın
Thomas Edwards

access_compatModül açıksa eski Sipariş / İzin Ver / Reddet hala çalışıyor olsa da, bu harika . Eski yapılandırmalarda daha uzun süre çalışmasına izin vermek yerine hatalar almam ve kurulumlarımı düzeltmem daha iyi olurdu.
Alexis Wilke

11

Ben de aynı sorunu vardı ve bunu yaparak düzeltildi:

  1. Aşağıdaki satırları bularak userdir modülünü yükleyin httpd.conf ve onu uncommenting: LoadModule userdir_module libexec/apache2/mod_userdir.so Include /private/etc/apache2/extra/httpd-userdir.conf

  2. Düzenleme ekstra / httpd-userdir.conf bulmak ve yorumsuz aşağıdaki satırı: Include /private/etc/apache2/users/*.conf

  3. Düzenleme kullanıcılar / * conf. Ekleyebilir Require localve eklemek +(veya -şöyle, seçenekler doğrultusunda tüm seçeneklerin önce karakteri): <Directory "/Users/user/Sites/"> Options +Indexes +MultiViews +FollowSymLinks +SymLinksIfOwnerMatch +ExecCGI AllowOverride All Require local Order allow,deny Allow from all </Directory>


1
Bu (tam olarak bu, başka bir şey, daha az bir şey) benim için, başka bir şey yapmadığında işe yaradı. Teşekkür!
orome

1

Aynı şeyi yaşadım, ancak birkaç gün önce güvenlik güncelleştirmesini uyguladıktan sonra Mavericks'te. Mavericks hala Apache 2.2 kullanıyor, bu yüzden chrisMc'nin bahsettiği yapılandırma sorunu değildi, ancak haklı gibi görünüyor ve bunu da değiştirmeniz gerekiyor.

Benim durumumda, daha önce eklediğim Homebrew PHP 5.4 modül hattını yorumlayarak temel sorunu çözdüm. İçinde httpd.conf:

#LoadModule php5_module /usr/local/opt/php54/libexec/apache2/libphp5.so

Ve bunun yerine daha önce yorumlamış olduğum varsayılan PHP modülünü tercih etmek:

LoadModule php5_module libexec/apache2/libphp5.so

Bu düzeltildi, ancak Homebrew sürümünün neden kırıldığına gelince, belki de derlendiği bir sistem kütüphanesinin güvenlik güncellemesinde güncellendiğini düşünüyorum. Kaçtığımda yüklü olmayan php -vbir icu4ckütüphane hakkında bir uyarı aldım .

PHP'yi yeniden derledim ve tekrar çalıştı. Benim durumumda, sadece yaptım

brew uninstall php54
brew install php54

Daha sonra Homebrew modülü tekrar etkinleştirilebilir.


1

Asla homebrew kullanmadığım için bu kılavuzu takip ettim. Kişisel gelişim için kurulum .

İlk posterin bahsettiği izinlerin sorunun bir parçası olduğunu gördüm, ancak yine de bir user.conf dosyası kullanarak kişisel kurulumla ilgili bir izin sorunum var. Bu kurulum sanal ana bilgisayarlar kullandı. Sorunu çözen homebrew'un ne yaptığını bilmiyorum. Bu benim özgün sorunu düzeltmedi, çünkü ben bir user.conf dosyası kullanarak web sunucusundaki hiçbir şeye erişemezsiniz çünkü etrafında bir çalışma olarak adlandırmak sanırım.


Müthiş! Benim için önemli olan sadece 220-221 ( # AllowOverride noneve # Require all denied) satırlarını yorumlamaktı .
MarkHu

0

In httpd.confyorumsuz:

LoadModule authz_core_module libexec/apache2/mod_authz_core.so 
LoadModule authz_host_module libexec/apache2/mod_authz_host.so 
LoadModule userdir_module libexec/apache2/mod_userdir.so 
Include /private/etc/apache2/extra/httpd-userdir.conf

Ve /etc/apache2/extra/httpd-userdir.confrahatsız edici olarak:

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

Ardından Apache'yi yeniden başlatın.


0

Yukarıdaki cevaplar stok yüklemesinde işe yarar. Değilse, yardımcı olabilecek birkaç şey:

  1. Dosya sisteminizde, klasörün tam olarak büyük S'ye sahip siteler olması gerekir (klasör adı userdir modülünde sabit olarak kodlanır, farklı olamaz) İzinleri şöyle olmalıdır:

    drwxr-xr-x   2 username staff    68 29 mar 11:26 Sites
    
  2. <Directory…>O durumda (biz ... Linux geliyorlar) dahil olmak üzere tam klasör adla aynı olması gerekir, böylece yapılandırma, bunun üzerine uygulanır.

    /etc/apache2/users/username.confDosyanın izinleri :

    -rw-r--r--  1 root  wheel  189 29 mar 11:42 username.conf
    

Bu nedenle, satırın <Directory "/Users/user/Sites/">tam olarak doğru kullanıcı adına (kullanıcı yapılandırma dosyasının adıyla eşleştiği şekilde), büyük / küçük harf içeriğine ve Sitesklasörün büyük / küçük harf büyüklüğünde olduğundan emin olun.


0

Benim durumumda, apache 2.4.27 sürümü.

Benim Değişen sonra çözüldü sorun httpd-vhosts.conf "dosyayı /etc/apache2/extra/httpd-vhosts.conf " dizinine.

itibaren

<VirtualHost *:80>
    ServerName inventory.loc
    ServerAlias www.inventory.loc
    DocumentRoot "/Users/Vagabond/Sites/inventory/public/"
    ErrorLog "/Users/Vagabond/Sites/logs/inventory.loc-error_log"
    CustomLog "/Users/Vagabond/Sites/logs/inventory.loc-access_log"
</VirtualHost>

için,

<VirtualHost *:80>
    ServerName inventory.loc
    ServerAlias www.inventory.loc
    DocumentRoot "/Users/Vagabond/Sites/inventory/public/"
    <Directory /Users/Vagabond/Sites/inventory/public/>
        Require all granted
        Options Includes FollowSymLinks
    </Directory>
    ErrorLog "/Users/Vagabond/Sites/logs/inventory.loc-error_log"
    CustomLog "/Users/Vagabond/Sites/logs/inventory.loc-access_log"
</VirtualHost>
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.