apache - ah01630 - php fpm ubuntu
Apache 2.4.6 en Ubuntu Server: Cliente denegado por la configuraciĆ³n del servidor(PHP FPM) (9)
Hoy fui actualizado al servidor Ubuntu 13.04 (Raring Ringtail) → 13.10 (Saucy Salamander).
Y mi instalación de Apache 2 está rota.
Aquí mi configuración:
Archivo error.log
[Fri Oct 18 10:48:07.237170 2013] [:notice] [pid 8292:tid 139804677900160] FastCGI: process manager initialized (pid 8292)
[Fri Oct 18 10:48:07.241185 2013] [mpm_event:notice] [pid 8289:tid 139804677900160] AH00489: Apache/2.4.6 (Ubuntu) mod_fastcgi/mod_fastcgi-SNAP-0910052141 configured -- resuming normal operations
[Fri Oct 18 10:48:07.241652 2013] [core:notice] [pid 8289:tid 139804677900160] AH00094: Command line: ''/usr/sbin/apache2''
[Fri Oct 18 10:48:28.313923 2013] [authz_core:error] [pid 8294:tid 139804573181696] [client 81.219.59.75:3536] AH01630: client denied by server configuration: /usr/lib/cgi-bin/php5-fcgi
Archivo default.conf
#EU
<VirtualHost *:80>
#ServerName
DocumentRoot /var/www/dev_stable
DirectoryIndex index.php index.html index.htm
<Directory /var/www/dev_stable>
Options Indexes FollowSymLinks MultiViews
AllowOverride all
Require all granted
</Directory>
</VirtualHost>
Archivo mods-enabled/fastcgi.conf
#<IfModule mod_fastcgi.c>
# AddHandler fastcgi-script .fcgi
# FastCgiWrapper /usr/lib/apache2/suexec
# FastCgiIpcDir /var/lib/apache2/fastcgi
#</IfModule>
<IfModule mod_fastcgi.c>
AddHandler php5-fcgi .php
Action php5-fcgi /php5-fcgi
Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /var/run/php5-fpm.sock -pass-header Authorization
</Ifmodule>
Cuando intento cargar el archivo a través del navegador, obtengo:
site_name/TEST/
Forbidden
You don''t have permission to access /php5-fcgi/TEST/index.php on this server.
¿Qué debería arreglarlo?
En apache2.conf
, reemplace o elimine <Directory /> AllowOverride None Requerir todo denegado </ Directory>, como sugiere Jan Czarny.
Por ejemplo:
<Directory />
Options FollowSymLinks
AllowOverride None
#Require all denied
Require all granted
</Directory>
Esto funcionó en Ubuntu 14.04 (Trusty Tahr).
Me encontré con este problema exacto en una nueva instalación de Apache 2.4. Después de algunas horas de buscar y probar en Google finalmente descubrí que también tenía que permitir el acceso al directorio que contiene el objetivo (inexistente) de la directiva Alias. Es decir, esto funcionó para mí:
# File: /etc/apache2/conf-available/php5-fpm.conf
<IfModule mod_fastcgi.c>
AddHandler php5-fcgi .php
Action php5-fcgi /php5-fcgi
Alias /php5-fcgi /usr/lib/cgi-bin/php5-fcgi
FastCgiExternalServer /usr/lib/cgi-bin/php5-fcgi -socket /var/run/php5-fpm.sock -pass-header Authorization
# NOTE: using ''/usr/lib/cgi-bin/php5-cgi'' here does not work,
# it doesn''t exist in the filesystem!
<Directory /usr/lib/cgi-bin>
Require all granted
</Directory>
</Ifmodule>
Me encontré con un problema similar hoy (pero con mod_wsgi
). Podría ser un problema de Apache 2.2 a 2.4. Se puede encontrar una lista completa de cambios here .
Para mí, me ayudó a agregar una <Directory>
entrada adicional para cada ruta de la que se quejaba el registro de errores y completar la sección con Require all granted
.
Entonces en tu caso podrías intentar
<Directory /usr/lib/cgi-bin/php5-fcgi>
Require all granted
Options FollowSymLinks
</Directory>
y tuve que mover mi archivo de configuración de la carpeta conf.d
a la carpeta sites-enabled
.
Con todo, eso fue lo que hizo el truco para mí, pero no garantizo que funcione en su caso también.
No creo que reemplazar "Requerir todo denegado" con "Requerir todo otorgado" en esta directiva:
<Directory>
Options FollowSymLinks
AllowOverride None
#Require all denied
Require all granted
</Directory>
como lo sugirió Jan Czarny y el usuario user3801675 es la forma más segura de resolver este problema.
Según los archivos de configuración de Apache, esa línea niega el acceso a la totalidad del sistema de archivos de su servidor. ¡Reemplazarlo de hecho podría permitir el acceso a sus carpetas de host virtuales, pero a cambio de permitir el acceso a toda su computadora también!
El enfoque de Gev Balyan parece ser el enfoque más seguro aquí. Fue la respuesta a los "problemas de acceso denegado" que me aquejaban después de configurar mi nuevo servidor Apache esta mañana.
Para aquellos de ustedes en AWS (Amazon Web Services), recuerden agregar una regla para su puerto SSL (en mi caso 443) a sus grupos de seguridad. Estaba recibiendo este error porque olvidé abrir el puerto.
3 horas de arrancarme el pelo más tarde ...
Recientemente me encontré con el mismo problema. Tuve que cambiar mis hosts virtuales de:
<VirtualHost *:80>
ServerName local.example.com
DocumentRoot /home/example/public
<Directory />
Order allow,deny
Allow from all
</Directory>
</VirtualHost>
A:
<VirtualHost *:80>
ServerName local.example.com
DocumentRoot /home/example/public
<Directory />
Options All
AllowOverride All
Require all granted
</Directory>
</VirtualHost>
Su nombre de archivo de host virtual debe ser mysite.com.conf y debe contener esta información
<VirtualHost *:80>
# The ServerName directive sets the request scheme, hostname and port that
# the server uses to identify itself. This is used when creating
# redirection URLs. In the context of virtual hosts, the ServerName
# specifies what hostname must appear in the request''s Host: header to
# match this virtual host. For the default virtual host (this file) this
# value is not decisive as it is used as a last resort host regardless.
# However, you must set it for any further virtual host explicitly.
ServerName mysite.com
ServerAlias www.mysite.com
ServerAdmin [email protected]
DocumentRoot /var/www/mysite
# Available loglevels: trace8, ..., trace1, debug, info, notice, warn,
# error, crit, alert, emerg.
# It is also possible to configure the loglevel for particular
# modules, e.g.
#LogLevel info ssl:warn
ErrorLog ${APACHE_LOG_DIR}/error.log
CustomLog ${APACHE_LOG_DIR}/access.log combined
<Directory "/var/www/mysite">
Options All
AllowOverride All
Require all granted
</Directory>
# For most configuration files from conf-available/, which are
# enabled or disabled at a global level, it is possible to
# include a line for only one particular virtual host. For example the
# following line enables the CGI configuration for this host only
# after it has been globally disabled with "a2disconf".
#Include conf-available/serve-cgi-bin.conf
</VirtualHost>
# vim: syntax=apache ts=4 sw=4 sts=4 sr noet
Tengo exactamente el mismo problema. Ejecuté un par de hosts virtuales en mi máquina local para desarrollar.
Primero, cambié /etc/apache2/conf-available/php5-fpm.conf
. Reemplacé cada
Order Deny,Allow
Deny from all
a
Require all granted
La configuración debe ser habilitada por a2enconf php5-fpm
. Hice lo mismo con las configuraciones de mi servidor virtual e hice los reemplazos.
Creo que esto no se recomienda por razones de seguridad, pero siempre que use mi servidor para fines locales solo puedo vivir con él.
Y simplemente obtuve este error porque utilicé un directorio DocumentRoot totalmente diferente.
Mi DocumentRoot principal era el /var/www/html
predeterminado y en el VirtualHost utilicé /sites/example.com
He creado un enlace en /var/www/html/example.com
(a /sites/example.com
). DocumentRoot se configuró en /var/www/html/example.com
Funcionó a las mil maravillas.