¿Cómo configurar Document Root como carpeta de "Sitios" en Apache en macOS Sierra?

1

Tengo un index.html en mi carpeta /Users/igor/Sites/MySite ( igor es mi nombre de usuario en Mac). Los enlaces (por ejemplo: <a href="/page">Page</a> ) van todos a localhost/page en lugar de http://localhost/~igor/MySite/page . http://localhost informa It works! , en http://localhost/~igor/ veo todos mis archivos y carpetas.

Mi archivo /private/etc/apache2/users/igor.conf :

<Directory "/Users/igor/Sites/">
AllowOverride All
Options Indexes MultiViews FollowSymLinks
Require all granted
</Directory>  

Mi archivo /private/etc/apache2/extra/httpd-userdir.conf (sin comentarios):

UserDir Sites  
Include /private/etc/apache2/users/*.conf
<IfModule bonjour_module>
       RegisterUserSite customized-users
</IfModule>  

También escribí líneas sin comentarios en httpd.conf como se describe aquí .

Algunas líneas de mi httpd.conf :

User _www
Group _www


 <Directory />
    AllowOverride none
    Require all denied
</Directory>  



<Directory "/Library/WebServer/Documents">
    Options FollowSymLinks Multiviews
    MultiviewsMatch Any

    AllowOverride None

    Require all granted
</Directory>

httpd -V output:

Server version: Apache/2.4.23 (Unix)
Server built:   Aug  8 2016 16:31:34
Server's Module Magic Number: 20120211:61
Server loaded:  APR 1.5.2, APR-UTIL 1.5.4
Compiled using: APR 1.5.2, APR-UTIL 1.5.4
Architecture:   64-bit
Server MPM:     prefork
  threaded:     no
    forked:     yes (variable process count)
Server compiled with....
 -D APR_HAS_SENDFILE
 -D APR_HAS_MMAP
 -D APR_HAVE_IPV6 (IPv4-mapped addresses enabled)
 -D APR_USE_FLOCK_SERIALIZE
 -D APR_USE_PTHREAD_SERIALIZE
 -D SINGLE_LISTEN_UNSERIALIZED_ACCEPT
 -D APR_HAS_OTHER_CHILD
 -D AP_HAVE_RELIABLE_PIPED_LOGS
 -D DYNAMIC_MODULE_LIMIT=256
 -D HTTPD_ROOT="/usr"
 -D SUEXEC_BIN="/usr/bin/suexec"
 -D DEFAULT_PIDLOG="/private/var/run/httpd.pid"
 -D DEFAULT_SCOREBOARD="logs/apache_runtime_status"
 -D DEFAULT_ERRORLOG="logs/error_log"
 -D AP_TYPES_CONFIG_FILE="/private/etc/apache2/mime.types"
 -D SERVER_CONFIG_FILE="/private/etc/apache2/httpd.conf"

¿Cómo arreglar los enlaces para que correspondan a Sites/MySite/MyLink y no a localhost/MyLink ? Gracias.

Actualización: httpd -t -D DUMP_RUN_CFG devuelve:

[Thu Oct 13 16:55:24.277291 2016] [so:warn] [pid 46810] AH01574: module php5_module is already loaded, skipping
AH00112: Warning: DocumentRoot [/usr/docs/dummy-host.example.com] does not exist
AH00112: Warning: DocumentRoot [/usr/docs/dummy-host2.example.com] does not exist
ServerRoot: "/usr"
Main DocumentRoot: "/Library/WebServer/Documents"
Main ErrorLog: "/private/var/log/apache2/error_log"
Mutex default: dir="/private/var/run/" mechanism=default 
Mutex mpm-accept: using_defaults
PidFile: "/private/var/run/httpd.pid"
Define: DUMP_RUN_CFG
User: name="_www" id=70 not_used
Group: name="_www" id=70 not_used  
    
pregunta Igor Rusinov 13.10.2016 - 14:07

2 respuestas

1

Tienes que establecer la directiva DocumentRoot en tu httpd.conf . Primero, utilizando su editor favorito, busque la directiva DocumentRoot y agregue lo siguiente:

 DocumentRoot "/Users/igor/Sites/MySite/MyLink"

Reinicie Apache para que lea la directiva actualizada de httpd.conf

    
respondido por el Allan 13.10.2016 - 14:36
0

No creo que nada esté configurado incorrectamente. Creo que su HTML está mal. Cualquier cosa en su carpeta de Sitios que contenga un enlace como <a href="/page">page</a> SIEMPRE irá a localhost/page . <a href="page">page</a> , por otra parte, se resolverá a localhost/~igor/page como usted desea.

La barra diagonal que precede al objetivo en el primer ejemplo lo redirige a cualquier directorio establecido como DocumentRoot (por ejemplo, la carpeta que corresponde a localhost ).

    
respondido por el dr.nixon 13.10.2016 - 19:57

Lea otras preguntas en las etiquetas