0 votos

localhost/phpmyadmin - Error 404 en MacOS High Sierra

Estoy montando un proyecto PHP en el loalhost de mi máquina. Esta parte está funcionando bien, y está cargando el index.php correctamente al visitar http://localhost . Sin embargo, visitar http://localhost/phpmyadmin me da un error HTTP 404.

Aquí están mis ajustes:

  • Trayectoria del proyecto Users/zaina-alyahya/Sites/Meetings

  • ruta de phpmyadmin Users/zaina-alyahya/Sites

  • Configuración de DocumentRoot en httpd.conf : /Users/zaina-alyahya/Sites/Meetings/public

  • Configuración de VirtualHost en httpd-vhosts.conf para /Users/zaina-alyahya/Sites/Meetings/public

    • Traté de configurar un VirtualHost para phpmyadmin también, pero no funcionó.

    • Sin embargo, he seguido los pasos de la segunda respuesta aquí . Eso funcionó, pero no parece correcto acceder a phpmyadmin a través de phpmyadmin.localhost .

¿Qué me falta para hacer localhost/phpmadmin ¿carga sin errores?

Esta es mi configuración de software:

  • MacOS High Sierra 10.13.3

  • Apache 2.4.28

  • PHPMyAdmin 4.8.0.1

0 votos

Esto es off topic IMO pero parece que la comunidad no está de acuerdo.

1voto

SEJU Puntos 14

Phpmyadmin debe estar dentro de su DocumentRoot. 'localhost/phpmyadmin' significa phpmyadmin dentro del DocumentRoot de localhost. Cambie la ruta de su DocumentRoot dentro de su httpd.conf o mueva la carpeta phpmyadmin dentro de la carpeta que ya ha configurado.

VirtualHost o DNSmasq sólo hacen accesibles ciertas carpetas a través de una dirección específica. Si no me equivoco deberían seguir residiendo dentro de su DocumentRoot.

También debe editar los permisos para el usuario y el grupo dentro de httpd.conf o establecer los permisos en el DocumentRoot en consecuencia.

Recuerde reiniciar Apache después de cambiar la configuración.

$ sudo apachectl -k restart

Actualización:

Las aplicaciones web se colocan en una carpeta determinada de su máquina. Un servidor web como Apache las sirve a la web o a su navegador. Tendrás que configurar apache y DNS para cada proyecto. Normalmente todos los directorios de las aplicaciones residen en root del documento. En cualquier caso, la conexión entre el directorio de la aplicación (en este caso su phpmyadmin, que es sólo una aplicación web) y su servidor web se hace en un archivo de configuración como httpd.conf para apache. Dependiendo de cómo haya instalado apache tendrá que configurarlo:

  • el puerto donde escuchar
  • set DocumentRoot /usr/local/var/www a su documento Root
  • cambiar la referencia de la etiqueta de abajo y establecer AllowOverride All
  • activar mod_rewrite
  • dependiendo de cómo quiera gestionar los permisos, ya sea manteniendo _www y aplique el permiso correspondiente a la carpeta de su aplicación web o, mejor, configúrelo en el archivo de configuración user YourName + Group staff
  • establecer el nombre del servidor en ServerName localhost
  • configurar la carpeta de su sitio (editar los permisos si es necesario)
  • reiniciar apache

Esto servirá todo en su máquina de desarrollo a partir de localhost, que coincide con su documento Root.

localhost/phpinfo.php abrirá el archivo phpinfo.php colocado en su documento Root localhost/phpmyadmin abrirá el índice dentro del directorio phpmyadmin

En caso de tener varios proyectos web, estarán disponibles a través del mismo procedimiento: localhost/webapp1 o localhost/webapp1/index.html etc.

La traducción a otra dirección disponible para su sistema se realiza a través de hosts virtuales, servidor dns, etc. Que traduce/conecta una URL a root de su aplicación web.

Para ello:

  • descomentar LoadModule vhost_alias_module lib/httpd/modules/mod_vhost_alias.so en /usr/local/etc/httpd/httpd.conf
  • incluye /usr/local/etc/httpd/extra/httpd-vhosts.conf
  • editar el /usr/local/etc/httpd/extra/httpd-vhosts.conf

Ten en cuenta que al configurar el host virtual perderás tu Document Root así que lo primero es volver a añadirlo o perderás la capacidad de usar localhost/phpinfo:

<VirtualHost *:80>
    DocumentRoot "Users/zaina-alyahya/Sites"
    ServerName localhost
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "Users/zaina-alyahya/Sites/webapp"
    ServerName webapp.test
</VirtualHost>

<VirtualHost *:80>
    DocumentRoot "Users/zaina-alyahya/Sites/PHPmyadmin"
    ServerName phpmyadmin
</VirtualHost>

El nombre del servidor para la aplicación web debe ser elegido por usted. Tendrá que añadirlo a su archivo de host /etc/hosts , utilizan un servidor DNS, lo que yo prefiero. Ya que el servidor OSX va a perder la funcionalidad de DNS deberías echar un vistazo a dnsmasq (simple) o mejor a BIND (funcionalidad completa). Estos programas resuelven una URL a su máquina.

Ciertas áreas podrían crear problemas:

  • en caso de que se utilice Apache: ¿se utiliza la versión de Apple? ¿Cuál es? ¿La del sistema o la del servidor MacOS? En caso de tener instalado el servidor MacOS desactiva la parte del servidor web. Lo perderás igualmente este año en caso de que decidas actualizar a la siguiente versión de MacOS. ¡Es mejor configurar todo manualmente, mucho más educativo de todos modos!
  • Configuración del DNS
  • ¡¡¡¡¡¡¡¡Permisos!!!!!!!! En caso de que no estén configurados correctamente obtendrá un 404.
  • reiniciar el servidor web después de haber cambiado su configuración.

0 votos

Gracias @SEJU. Si sigo la primera sugerencia (tener phpmyadmin dentro del DocumentRoot), ¿cómo podré acceder a la aplicación?

0 votos

Si todo está configurado correctamente deberías poder visitarlo a través de 'localhost/phpmyadmin', ya que localhost hace referencia a tu DocumentRoot y todo lo que viene después a la ubicación relativa que parte de tu DocumentRoot

0 votos

Si sigo esto (que ya lo intenté antes), el problema que surge es que cuando visito localhost/Meetings (que es mi aplicación), sólo puedo ver el directorio, y visitar localhost/Meetings/public para cargar index.php no parece una práctica correcta.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X