Eu sei que isso se parece com outras perguntas, mas o Yosemite parece ter mudado algo na configuração do apache com a atualização. meu log de erros diz "cliente negado pela configuração do servidor: /Users/douglas/Sites/testpatient.php"
Versão do Apache: MacBook-Pro: apache2 douglas $ apachectl -v Versão do servidor: Apache / 2.4.9 (Unix) Servidor criado: 9 de setembro de 2014 14:48:20 meu arquivo douglas.conf é 644 root / wheel e o seguinte:
<Directory "/Users/douglas/Sites">
Options Indexes Multiviews
AllowOverride None
Order allow,deny
Allow from all
</Directory>
meu http.conf tem o seguinte:
# 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>
Qualquer coisa seria apreciada. Tentei reverter para o arquivo http.conf anterior, mas há várias diferenças quanto aos módulos que precisam ser carregados. É perfeitamente possível que eu tenha perdido um módulo, mas não há nenhuma reclamação no log.
macos
php
apache-http-server
new2code
fonte
fonte
Respostas:
No seu usuário .conf (douglas.conf) substitua:
Com:
A diferença é como o apache 2.4 lida com permissões
http://httpd.apache.org/docs/2.4/upgrading.html
fonte
access_compat
módulo ligado. Eu acho que teria sido melhor para mim obter erros e corrigir minhas configurações em vez de deixá-lo passar por mais tempo com as configurações antigas.Eu também tive o mesmo problema e o corrigi fazendo o seguinte:
Carregue o módulo userdir localizando as seguintes linhas no httpd.conf e descomentando-o:
LoadModule userdir_module libexec/apache2/mod_userdir.so Include /private/etc/apache2/extra/httpd-userdir.conf
Edite extra / httpd-userdir.conf , encontre e descomente a seguinte linha:
Include /private/etc/apache2/users/*.conf
Edite users / *. Conf , adicione
Require local
e adicione+
(ou-
) caracteres antes de todas as opções na linha de opções, da seguinte maneira:<Directory "/Users/user/Sites/"> Options +Indexes +MultiViews +FollowSymLinks +SymLinksIfOwnerMatch +ExecCGI AllowOverride All Require local Order allow,deny Allow from all </Directory>
fonte
Eu experimentei a mesma coisa, mas no Mavericks depois de aplicar a atualização de segurança de alguns dias atrás. O Mavericks ainda está usando o Apache 2.2, portanto não foi o problema de configuração que o chrisMc mencionou, embora pareça que ele esteja certo e você precise mudar isso também.
No meu caso, resolvi o problema principal comentando a linha de módulos Homebrew PHP 5.4 que eu havia adicionado anteriormente. No
httpd.conf
:E optando pelo módulo PHP padrão que eu havia comentado antes:
Isso foi corrigido, mas, por que a versão Homebrew foi quebrada, acho que talvez uma biblioteca de sistema em que foi compilada tenha sido atualizada na atualização de segurança. Quando corri
php -v
, recebi um aviso sobre umaicu4c
biblioteca que não estava carregada.Então, eu apenas recompilei o PHP e funcionou novamente. No meu caso, eu apenas fiz
Em seguida, o módulo Homebrew pode ser ativado novamente.
fonte
Como nunca usei o homebrew, acabei seguindo este guia. Configuração para desenvolvimento pessoal .
Eu vi que as permissões das quais o primeiro pôster falava eram parte do problema, mas ainda tenho um problema de permissões na configuração pessoal usando um arquivo user.conf. Essa configuração usou hosts virtuais. Não faço ideia do que o homebrew fez que resolveu o problema. Acho que chamaria isso de solução alternativa, porque não corrigiu o problema original, que é o fato de não poder acessar nada no servidor da web usando um arquivo user.conf.
fonte
# AllowOverride none
e# Require all denied
) que aparentemente foram adicionadas recentemente em Yosemite.Em
httpd.conf
comentário:E em
/etc/apache2/extra/httpd-userdir.conf
descomentar:Em seguida, reinicie o Apache.
fonte
As respostas acima funcionam, em uma instalação de estoque. Caso contrário, algumas coisas que podem ajudar:
No seu sistema de arquivos, a pasta precisa ser exatamente Sites com S maiúsculo (o nome da pasta é codificado no módulo userdir, não pode ser diferente). Suas permissões devem ser:
A
<Directory…>
configuração é aplicada em cima dela, portanto, ela precisa corresponder exatamente ao nome da pasta, incluindo o caso (estamos vindo do Linux ...).Permissões do
/etc/apache2/users/username.conf
arquivo:Portanto, verifique se a linha
<Directory "/Users/user/Sites/">
se refere exatamente à pasta correta com o nome de usuário correto (com o usuário correspondente ao nome do arquivo de configuração), caso incluído, e aSites
pasta existe exatamente como está, caso incluído.fonte
No meu caso, apache versão 2.4.27.
Problema resolvido após alterar meu arquivo httpd-vhosts.conf do diretório " /etc/apache2/extra/httpd-vhosts.conf ".
De
Para,
fonte