Estoy tratando de establecer un entorno local en mi nuevo MacBook Air 13 ": Apache integrado con mi propio DocumentRoot
PHP y MySQL. Por lo general, actualizo /etc/hosts
solo para ejecutar mis sitios web locales con un enlace permanente:. local/example
Para referencias, generalmente comprobar:
- ¿Cómo convertir Mac OS X Lion en un servidor web?
- Habilitar Apache en Mac OS X Mountaion Lion
- Permisos de Apache
Esta vez estoy simplemente conseguir una Prohibida 403 de error cada vez que me golpeó 127.0.0.1
, localhost
o local
. Primero vi a través del terminal que tanto Apache como PHP se están ejecutando (aunque no puedo ver páginas PHP); luego actualicé todos los permisos de acuerdo con los permisos de Apache ; ahora solo estoy desesperado. Estas son las configuraciones relevantes de Apache:
/etc/hosts
( ver archivo - agregada una línea)/etc/apache2/httpd.conf
( ver archivo - actualizado elDocumentRoot
)/etc/apache2/users/joao.conf
( ver archivo - creó este archivo)/etc/apache2/extra/httpd-vhosts.conf
( ver archivo - actualizadoVirtualHost
)
Parece que Apache de alguna manera me está negando el acceso a mi DocumentRoot
(que por cierto lo es ~/Sites
). Debido a ~/Sites
que en realidad es un enlace simbólico, intenté actualizar DocumentRoot
con las siguientes rutas (todas apuntando al mismo directorio):
~/Sites
/Users/joao/Sites
/Users/joao/Dropbox/Workflow/Sites
(el directorio original )
Todavía lanzando 403 . ¿Alguna idea de cómo solucionar / depurar esto?
Actualización rápida/var/log/apache2/joao.pt-error_log
: así es como se ve mi :
[Sun Jul 07 12:50:45 2013] [error] [client 127.0.0.1] (13)Permission denied: access to / denied
[Sun Jul 07 12:50:45 2013] [error] [client 127.0.0.1] (13)Permission denied: access to /favicon.ico denied
[Sun Jul 07 12:50:45 2013] [error] [client 127.0.0.1] (13)Permission denied: access to /favicon.ico denied
[Sun Jul 07 12:50:45 2013] [error] [client 127.0.0.1] (13)Permission denied: access to /favicon.ico denied
[Sun Jul 07 12:50:47 2013] [error] [client ::1] (13)Permission denied: access to / denied
[Sun Jul 07 12:50:47 2013] [error] [client ::1] (13)Permission denied: access to / denied
[Sun Jul 07 12:50:48 2013] [error] [client ::1] (13)Permission denied: access to /favicon.ico denied
[Sun Jul 07 12:50:48 2013] [error] [client ::1] (13)Permission denied: access to /favicon.ico denied
/Sites
(en mi/
carpeta raíz ) y puse mis archivos allí, configurando las opciones de Alias y Directorio en consecuencia. Funcionó bien.Actualizo a macOSS Sierra , versión 10.12
Me enfrento al mismo problema, hice dos cosas para solucionarlo correctamente. Los siguientes son mis enfoques.
1) Verifique el archivo " /private/etc/apache2/extra/httpd-userdir.conf ". Cambio
a
2) ** Y edite su " /etc/apache2/httpd.conf"
cambio
a
Finalmente, la raíz de tu documento se verá así:
3) Reiniciar apache
Si aún enfrenta el problema, consulte Cómo configurar Apache en macOS Sierra 10.12
fuente
Generalmente soluciono esto configurando el usuario de Apache para mí en entornos locales y en máquinas donde el único usuario que usa Apache soy yo. En
/private/etc/apache2/httpd.conf
, establezcaUser
su nombre de usuario_www
, por ejemplo:->
Y luego reinicie Apache:
Pasos adicionales:
Si tiene sesiones activas, van a dar errores de permiso ya que aún son propiedad de ellos
_www
. Poseerlos:Trascendencia:
Después de esto, Apache (y PHP et al.) Se ejecutará como usted y obtendrá permiso de lectura / escritura para todos los archivos que tenga permiso de lectura / escritura. Pero dado que este es solo un entorno de desarrollo local, eso no debería ser un problema a menos que no tenga reglas para bloquear Apache en su firewall y permita que archivos cuestionables como exploradores de archivos, shells, scripts que puedan contener vulnerabilidades se ejecuten bajo Apache; en cuyo caso, cualquiera que incluya a su vecino wifi público en un café puede ingresar
http://<your IP>
y hacer lo que esos scripts le permitan hacer.De hecho, debe evitar esto independientemente de los scripts que ejecute o incluso si no configura el usuario de Apache para usted, ya que probablemente no desee que personas externas aleatorias puedan ver el contenido de su
localhost
.Prevención:
Haga que Apache escuche solo localhost. De nuevo en
httpd.conf
:->
Y reinicie Apache nuevamente:
Deshabilite Apache en el firewall de la aplicación (tenga en cuenta que es posible que ya lo haya deshabilitado si hizo clic en
Deny
si / cuando se le preguntó durante la primera vez que ejecuta Apache):System Preferences
»Security & Privacy
»Firewall
.Firewall Options
.+
botón./usr/sbin/httpd
y haga clicAdd
(sihttpd
no aparece allí, puede buscarlo en la terminalwhich httpd
)httpd
y seleccioneBlock incoming connections
.OK
.Vuelva a cargar el firewall:
Restrinja PHP a la raíz del documento. En
php.ini
:(
/var/tmp/
es para sesiones)Use las tres soluciones para asegurarse en caso de que una de ellas se desactive por alguna razón.
- Tenga en cuenta que como mi idioma activo en mi máquina no es el inglés, la redacción puede ser un poco diferente (las opciones de menú y la redacción pueden ser diferentes independientemente del idioma en varias versiones de OS X).
- Las líneas que comienzan con
$
deben ingresarse en la línea de comando (Terminal o iTerm, etc.), con el$
eliminado.fuente
Acabo de resolver mi problema estableciendo permisos no solo para el
DocumentRoot
directorio, sino también para todos sus directorios principales. Así es como lo hice .fuente
Los siguientes pasos me funcionaron en High Sierra con Apache 2.4
(Basado en el siguiente excelente tutorial: http://www.cgi101.com/book/connect/mac.html , actualizado con pasos adicionales para las diferencias de versión)
Mueva el archivo a:
Verifique que el archivo tenga permisos de ejecución:
Si no usa:
Descomente las siguientes líneas en /etc/apache2/httpd.conf
Cambie también la sección del directorio "/ Library / WebServer / CGI-Executables" a:
Luego reinicie Apache:
Casi con cada nueva versión de macOS, los cambios se perderán y tendrá que rehacer el trabajo e incluso realizar diferentes pasos para solucionarlo. Su mejor amigo son los registros de Apache ubicados en / var / log / apache2 / (/ var / log / apache2 / error_log)
fuente
Estaba usando ACL para establecer permisos, siguiendo las instrucciones en " Cómo configurar permisos de archivos y directorios para Apache en Mac OS X ", pero aún obtenía:
Luego leí " (13) Permiso denegado " (vinculado a la respuesta de João Ramos ) e intenté agregar "ejecutar" a la ACL. Eso funciono.
fuente
¡Reinicia tu computadora! Esto funcionó para mí.
Pero antes que nada, había cambiado el usuario en Apache a mí mismo (de _www), ya que es un entorno local / de prueba. Entonces, en última instancia, tiene algo que ver con los permisos.
Luego reinicie la máquina, al igual que Windows;).
fuente
OP describe un problema que surge al intentar configurar un entorno de servidor web local en una Mac, usando Apache, PHP y MySQL, con un DocumentRoot personalizado, e incluye una mención del uso de VirtualHost (vhost). OP informa que obtiene un error prohibido 403 al acceder a localhost.
Un artículo en coolestguidesontheplanet describe cómo la configuración de hosts virtuales en Apache provoca la "pérdida de host local". En otras palabras, la causa raíz del problema del OP podría ser una habilitación incompleta de vhosts.
El artículo continúa explicando cómo reparar localhost en un entorno vhost.
También explica cómo solucionar "problemas de permisos con cosas como actualizaciones y autenticación" asociados con "el uso de la carpeta Usuarios / nombre de usuario / Sitios para vhosts".
https://coolestguidesontheplanet.com/set-virtual-hosts-apache-mac-osx-10-10-yosemite/
fuente